Rubyでたまにしか使わないけど便利なメソッドメモ
備忘のため。随時追加していく。
Ruby
# フィールドをもつモックオブジェクトを作る Struct.new(:name, :tel).new('hogeo', '090xxxxxxxx') # => #<struct name="hogeo", tel="090xxxxxxxx"> # irbでeach回して処理した後、そのリストを出力させたくない list.each do |row| # 何かしらの処理 end; 0 # ここで ; 0 入れる。 # getter/setterがないインスタンス変数にアクセス obj.instance_variable_defined?('@hoge') obj.instance_variable_get('@hoge') obj.instance_variable_set('@hoge', 'hogehoge') # 余計な改行コードを chomp で消す fr = File.open('ids.txt', 'r') line = fr.gets # => "0000a432-67cb-4b07-8bba-58780616f6c7\n" line = fr.gets.chomp # => "0000a5bd-cf86-4eda-be5e-0b81dafa5cd0" fr.close
Rails
# 引数の文字列で指定した名前で定数を探す '::MyApp::User'.constantize # => MyApp::User(id: integer, first_name: string, last_name: # ハッシュにシンボルでも文字列でもアクセスできるように hash = { hoge: 'fuga' }.with_indifferent_access hash[:hoge] #=> "fuga" hash['hoge'] #=> "fuga" # モデルやフィールドの日本語名を取得 def t_ar(model, attr = false) if attr return model.human_attribute_name(attr) else return model.model_name.human end end # ハッシュの一部をフィルターする filter = ActionDispatch::Http::ParameterFilter.new(['email', 'password']) filterd_params = filter.filter(params) # 生SELECT文を書く con = ActiveRecord::Base.connection result = con.select_all('SELECT name FROM users') result.to_a
ワンライナー
# yaml文法チェック cat foo.yml | ruby -r yaml -e 'YAML.load STDIN'
# クエリ文字列をURLエンコード require 'cgi' query.split('&').map{|kv| kv.split("=").map{|_kv| CGI.escape(_kv) }.join("=") }.join('&')