読者です 読者をやめる 読者になる 読者になる

Ansibleのgemモジュールはuser_installがデフォルトになっている

gem - Manage Ruby gems — Ansible Documentation ドキュメントを見るとuser_installがdefaultでyesなことがわかると思う。何故この話題を取り上げるとかというとデフォルトの状態でgemモジュールを使ってインストールするとgem listには表示されるが実体が…

Ruby2.2以降でjson gem 1.8.1がインストールできない件の対応

結論 json 1.8.2以降を使用する 上記IssueでRuby2.2対応は1.8.2含まれたことがわかる。 表示されるエラー 恐らくrb_new_strの引数の数が変わった為エラーになっていると推測するが、Ruby2.2から変更になったという確かなソースはまだ見つけていない。 Instal…

Rails4.2 MinitestをRSpecに変更する

Railsプロジェクトを新規作成する際下記オプションを使用するとMinitestを除いたRailsプロジェクトが作成される。 $ rails new hoge -Tプロジェクト開始後途中でMinitestからRSpecに変更したくなった場合は何をすればいいのか? テストコードの移植等には触…

Rails4.2からNokogiriに依存するようになってた

Rails4.1からRails4.2にバージョン上げようとGemfile修正してbundle update叩いたらNokogiriのインストールでこけた。 確かにNokogiriをインストール準備はしてないから落ちるのはわかるんだけどいつから依存するようになったの?答えは4.2から。HTMLサニタ…

RVMのrvmrcはruby-version,ruby-gemsetに変更

久々にRVMをアップデートしてrvmrc作ったらWARNINGでた。 You are using '.rvmrc', it requires trusting, it is slower and it is not compatible with other ruby managers, you can switch to '.ruby-version' using 'rvm rvmrc to [.]ruby-version' rvmr…

Google chart toolsをRubyで使うためのwrapper

Google chart toolsを使いたくてwrapperを探していたらgooglechartsというgemに出会って GETパラメータに値渡してリクエストするだけでグラフが作成される!と喜んでいたのですが Google chart toolsのdocumentと色々違うので悩んでいたのですね。 https://g…

Ruby2.0系では多くのマジックコメントが不要に

[Ruby]Ruby2.0系では多くのマジックコメントが不要に Ruby2.0.0がリリースされてはや二ヶ月私の開発環境も2.0.0で動いておりますが大切な新機能を見落としておりました。 default UTF-8 encoding: 多くのマジックコメントが不要に http://www.ruby-lang.org/…

Ruby2.0.0-p0でRails3.2.12を動かすとModel#dupで落ちる

Railsのissuesに4ヶ月前に挙がっていた。3.2.13には適応されているので3.2.13を使うようにした。 https://github.com/rails/rails/pull/8405

FactoryGirlのTraits知らんかったいいな

TraitsTraits allow you to group attributes together and then apply them to any factory. factory :user, aliases: [:author] factory :story do title "My awesome story" author trait :published do published true end trait :unpublished do publis…

RSpecでTime.nowを起点にしたテストを書く時Timecopを使うと便利かも

たとえば現在時刻から3日前だったらこうなるべきみたいのをテストを書いてて 処理は3.days.agoとかだった場合に普通に書いてあると日数がたつとテストが通らなくなる。 https://github.com/travisjeffery/timecop そんな時は、Timecopでテストの時は時間を指…

Magick::Image.read #=> arrayなんでarrayなんだっけなって

はい An array containing 0 or more Image objects. If the file is a multi-image file such as an animated GIF or a Photoshop PSD file with multiple layers, the array contains an Image object for each image or layer in the file. RMagick 2.12.…

acts_as_listで例えばユーザ毎に並び順を保持する時

ユーザ毎にpositionを管理する例えばUser 1 - * Bookmarksみたいなとき関係あるところだけ書くと class User < ActiveRecord::Base has_many :bookmarks, order: 'position' end class Bookmark < ActiveRecord::Base belongs_to :user acts_as_list scope: …

ruby-buildでインストールできるRuby一覧を更新する

以前導入したrbenv+ruby-buildだが新しいRubyのバージョンをインストールするときインストール可能なリストを更新する方法がわからなかったので調べた。 以前の記事:rbenv+ruby-build+rbenv-gemsetのセットアップ - chulip.org 結論からいうとruby-buildが…

WindowsでNativeExtensionを入れるためにDevelopment-Kitを入れる

なんかDevKitを入れろと言われています。 Windows.Ruby.native extensions......... Installing json (1.7.5) Gem::InstallError: The 'json' native gem requires installed build tools. Please update your PATH to include build tools or download the …

capistrano-extで複数の環境にdeployする設定を書く

Gemfile gem 'capistrano-ext'config/deploy.rb # 追記 require "capistrano/ext/multistage"環境用の設定ファイルを格納するディレクトリ $ mkdir -p config/deployconfig/deploy/stage.rbを作ったらcap stage deployみたいな感じで環境のデプロイできる。 …

rbenv+ruby-build+rbenv-gemsetのセットアップ

手元の環境ではRVMをまだ使っているのだが別に構築する機会があったので今更rbenvを。 rbenv https://github.com/sstephenson/rbenv 手順はGithubのREADME通り $ cd $ git clone git://github.com/sstephenson/rbenv.git .rbenv $ echo 'export PATH="$HOME/…

FactoryGirlでカラム名typeのデータをセットできない

1.2.4で起きた。下記URLにある通りなので備忘録 Model with the column "type" breaks factory · Issue #43 · thoughtbot/factory_girl · GitHub f.add_attribute :type, type https://github.com/thoughtbot/factory_girl/issues/43

Ruby Association Certified Ruby Programmer Silver合格しました

タイトルすごい長いですけど要するにRuby技術者認定試験Silverですね。 不合格だったら受験したことを黒歴史にしようと思っていたのですが、受かったので。 75点以上で合格なんですけど90点でした。 公式ガイドの模擬問題みたいなの解いた段階ではぎりぎりア…

Rcovでコードカバレッジ

ソースコードがどの程度テストされているかみたいな物を見ることができる カバレッジ第一ってのはあんまり…っていう話は聞くので参考程度に。まあ使った事無いので使ってみたって話 環境 Rails2系 RSpec 1.3.2 RSpec-rails 1.3.4 Rcov 0.9.11(gem installし…

factory_girlでのparent指定と関連の定義

今更factory_girl v1.3.3の話factory_girlでデータ定義していくときに少しだけ値が違うみたいな時は 継承してdefineできる #-*- coding: utf-8 -*- Factory.define :madoka do |f| f.first_name 'kaname' f.last_name 'madoka' end Factory.define(:homura, …

rakとかackとかで半角カナを検索する

文字コードはUTF-8Google先生に聞いたらでてきたはでてきたんだけど一部記号とか対象になっていたのでメモ。 $ ack "(?:\xEF\xBD[\xA7-\xBF]|\xEF\xBE[\x80-\x9F])" ## または $ rak "(?:\xEF\xBD[\xA7-\xBF]|\xEF\xBE[\x80-\x9F])"参考サイト Unicode対応 …

ref.vimでRubyのリファレンスを見る

ref.vimというプラグインがあるのは知っていたんだけど使ってなかった。 ブラウザからリファレンスを見る機会が多いなと思っていたので試してみた。ref.vimからRubyのリファレンスを見るときにはrefeというリファレンスマニュアル検索ツールを使える refe Ru…

Ruby1.8.6と1.8.7のHash[*key_and_value]の挙動について

Ruby1.8.6でsassがodd number of arguments for Hash (ArgumentError)ってエラー吐いて動かないので調べた。 生成するハッシュのkey,valueに配列が含まれる場合1.8.6だとこのエラーになる。1.8.7は動く Ruby1.8.6リファレンス http://doc.okkez.net/static/1…

RVMの最新のリリースバージョンでエラーが出た

Mac OS X 10.7の話 $ rvm get latest $ rvm --version #=> rvm 1.6.25 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/] rvm useを実行するたびにエラーが出るようになった $ rvm use 1.9.2 Using /Users/arcright/.rvm/gems…

RubyKaigi2011 3日目参加…して…きた

寝坊して最後の基調講演しか聞けませんでした!!! 振子とPGと百年の言語 / まつもとゆきひろ氏 無駄にハードルを上げないでほしい肩書きコレクター 1997 ネットワーク応用通信研究所フェロー 2007 楽天 技術研究所 フェロー 2009 松江市名誉市民 島根大学 …

RubyKaigi2011 2日目参加してきた

今日も一日大ホール。少し遅れて最初のセッションの途中から参加 安全なプログラムの作り方 / 西山和広氏 脆弱性があってもパーミッションによって被害を抑えられる 正規表現の^ $と\A \z(\Z)を使い分ける ^ : 行頭 $ : 行末 \A : 文字列の先頭 \z : 文字列…

RubyKaigi2011 1日目参加してきた

今日は1日大ホールにいて闇Rubykaigi最後までみて帰宅 メモを少しまとめてつらつらと 開会の辞 / 高橋征義氏 最高のRuby会議になるように プログラムについて / 笹田耕一氏 これまでのRuby会議の振り返り 今回応募倍率は1.6倍!! Ruby会議はRuby本体に関する…

RSpecでテストするときにfactory_girlを使う

fixturesが担っていたテストデータのところにfactory_girlを使うイメージ? 複数テーブルにまたがるデータを定義するときにfixturesより格段にやりやすいみたい。 その利点はまだ実感できてないけどとりあえず使い方 環境 Rails3,bundle全盛だけどRails2の話…

RSpecのSubjectについて

subjectを使うとsubjectの値がitのレシーバになる為、共通のレシーバについてテストを書くときに便利 # -*- config: utf-8 -*- require 'rspec' describe 'homu' do before do @homu = "hoge" end subject { @homu } it { should == "hoge" } it { should be…

Ruby1.9.2からはrequireの$LOAD_PATHにカレントディレクトリが含まれない

覚えていると全く問題ないんだけどど忘れすると混乱するのでメモ とりあえず明示的にカレントディレクトリのを読むようにした # -*- coding: utf-8 -*- require './hoge'

RubyKaigi2011に参加します

いまさらながらにチケット買ってみた

rvmrcを使うと便利

RVMを使っていてプロジェクトごとにRubyやGemsetを頻繁に切り替えるような場合は便利 cdでRAILS_ROOTに移動したとき指定したバージョンに自動的に切り替えてくれるRAILS_ROOTに.rvmrcってファイルを作って、使いたいバージョンを書いとく # example rvm 1.9.…

Mac OSX10.6のRVM上でSQLite3に接続できない

RVMでGemset切って必要なGem入れてまでを一気にやったらなんかSQLite3に接続できない? # Error on Mac OS X 10.6.6 RVM@ruby-1.9.2-p0 /Users/arcright/.rvm/gems/ruby-1.9.2-p0@hoge/gems/sqlite3-1.3.3/lib/sqlite3/sqlite3_native.bundle: [BUG] Segment…

メタプログラミングRuby読みます!

買ったのにかばんの中にいれっぱなしで忘れていたのでこれから読む メタプログラミングRuby作者: Paolo Perrotta,角征典出版社/メーカー: アスキー・メディアワークス発売日: 2010/08/28メディア: 大型本購入: 14人 クリック: 481回この商品を含むブログ (10…

Rubyで正規表現を使う

"aaa,bbb,ccc" =~/(.*),(.*),(.*)/ # MatchDataオブジェクトが$~で取れる $~ => #<MatchData "aaa,bbb,ccc" 1:"aaa" 2:"bbb" 3:"ccc"> $& =>"aaa,bbb,ccc" # $&も含めたArrayを返す $~.to_a => ["aaa,bbb,ccc", "aaa", "bbb", "ccc"] # $&抜きのArray $~.captures => ["aaa", "bbb", "ccc"] # なんか個別にとっ</matchdata>…

CentOSにRVMでRuby1.9.2を入れようとしたらエラーになった

Ruby1.9.2がリリースされたので早速入れてみようと思いCentOSのRVMでインストールしてみるとエラーが。 $ rvm install ruby-1.9.2-head info: Installing Ruby from source to: /home/arcright/.rvm/rubies/ruby-1.9.2-head info: Downloading source from h…

RVMのGemsetを使って複数のGemを管理する

RVMのGemsetを使うと同じRubyのバージョンに対していくつものGemを管理できる。 使い方 # gemset作成 rvm gemset create hoge # 使用する rvm gemset use hoge # 一覧 rvm gemset list hoge fuga # 現在使ってるもの rvm gemset name hoge # こんな感じでも…

誰でもできるTwitterBotの作り方購入しました

プログラミング言語に触ったことがなくてTwitterBotに興味もった人にはいいかもしれない(俺は表紙買い) 少しでも触ったことがあれば購入する必要なくて立ち読みでことが済むレベル 誰でもできるTwitter Botの作り方―人気キャラにつぶやかせる作者: 鏑家経済…

VALUEDOMAINのDDSN用スクリプト

ちゃんと動いてると思う。もっと綺麗に書きたいよなー ※1日回してみたけどまともに動いてなかった直さないと(グローバルIP取得ができなかったときの考慮が抜けてた。) ルータからグローバルIPを取得しようとしている途中 #!/usr/bin/env ruby require 'net/h…

Rakeにタスクを追加する

Railsの場合だけどRAILS_ROOT/lib/tasksに*.rakeファイルつくると追加できる # hogehoge.rake desc "setumei" task :task_no_namae do puts "syori" end # rakeタスク一覧 rake -T # 実行 rake task_no_namae

RubytterとOAuthでtwitterに投稿

アクセストークンの取得まではほぼ下記サイトと同じです。ありがとうございます TwitterのbotをOAuthに対応させる - しばそんノート Rubytterでポストする時はOAuthRubytterを利用すればoauthを使ってポストできる #!/usr/bin/env ruby require 'rubygems' r…

RVMで複数バージョンのRubyを使う

# githubから入れた方がいいのかもしれない sudo gem install rvm # install rvm-install # shellの設定ファイルに書く(bashrcとかzshrcとか) [[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvmrvmコマンドでいろいろできるようになってる …

Macのirbで日本語入力ができないのでreadlineを入れなおす

MacにRubyが標準搭載されているがreadlineのせいでirbで日本語入力できないので入れなおした。 readline sudo port install readline Ruby configure時にreadlineのパスを指定 ./configure --with-readline-dir=/opt/local

irb,script/consoleでシンタックスハイライトと補完を行う

wirbleというものを使うとirbやconsoleで補完やシンタックスハイライトができるそう。 sudo gem install wirble ~/.irbrc require 'rubygems' require 'wirble' Wirble.init Wirble.colorize irbを使ってみると色がついてるし補完も聞くようになってる >> [1…

TemplateError in exception_notifier/_environment.rhtml

今日少し詰まったところ。actionmailerで例外が発生したときにこんなエラー出たら恐らくこれ。Ruby 1.8.6のpatchlevel ActionView::TemplateError (flag after width) on line #3 of /vendor/plugins/exception_notification/views/exception_notifier/_envi…

Ubuntu9.10にRailsのインストールをする

以前の9.04の環境構築の改訂版なので多少はマシになっているハズ とりあえずブラウザでlocalhost:3000がみれるまでとしているdbとかはスルー 過去の記事:Ubuntu 9.04にRuby on Railsインストール - WapBox インストールする環境 Ubuntu 9.10 VirtualBox上で…

配列の要素を変数に代入する

a,b,c,*d = [1,2,3,4,5,6,7] a #=> 1 b #=> 2 c #=> 3 d #=> [4,5,6,7]

Hamlでブロックの引数を書くとき

erbだと|との間にスペースがあいている物をみることがあるけどhamlだとエラーになる -# 間違い - @hoge.each | h | = h.name -# 正しい - @hoge.each |h| = h.name該当の行のエラー syntax error, unexpected ';', expecting '|'

SinatraでRailsっぽいhtml_escape

helperに追加してあげればいい helpers do include Rack::Utils alias_method :h, :escape_html end 参考サイト http://www.sinatrarb.com/faq.html#escape_html

プログラミング言語 Ruby読了

プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (129件) を見るプログラミング言語 Ruby(…