Ruby
何も代入していないけれどもw class Man def age=(value) p "I am #{value}years old" end end Man.new.age = 3 # => "I am 3years old" Rubyをまたやることになりそうなのでリハビリ中。
class Human def say p "hello" end end p Man.instance_methods(false) # => [:say, :age=] 任意のクラスが include しているモジュール一覧を表示 p Array.included_modules # => [Enumerable, Kernel]
# rename.rb # ex. hoge.png => hoge@2x.png require 'pathname' require 'fileutils' Dir.entries('.').each do |entry| if Pathname(entry).extname == '.png' FileUtils.mv entry , Pathname(entry).sub_ext('@2x.png') end end
ローカル変数 hoge インスタンス変数 @hoge クラス変数 @@hoge グローバル変数 $hoge
Vagrantは VirtualBox をCUI からつかえるようにするツール 方法 VirtualBoxをダウンロードしてインストール https://www.virtualbox.org/wiki/Downloads Vagrant をダウンロードしてインストール http://www.vagrantup.com/downloads.html インストールでき…
simpleapp.rb class Hoge def call(env) [200, {"Content-Type" => "text/plain"}, ["Hello, world!"] ] end end simpleapp.ru require './simpleapp' run Hoge.new 起動すると Rails でおなじみの WEBrickが起動する. ポート番号は 9292 $ gem install rack…
Threadを1つ th = Thread.fork do p 33 end th.join Threadを複数 count = 3 count.times.map do |i| Thread.fork do p i end end.each(&:join) Process pid = fork do p 'Process fork' end exitpid, status = *Process.waitpid2(pid) Fiber Fiber とはThre…
require 'json/pure' h = {'dog'=> 'bow', 'cat'=> 'meow'} puts JSON.pretty_generate(h)
そろそろワンライナーに手を出そうと思いましてメモです. ファイル 1.png, ....を hoge1.png, ... にリネームする. $ ruby -e '(1..5).each { |i| system "mv #{i}.png hoge#{i}.png" }' ファイル1.png, ... を 一括で 100x60 にサイズ変換する $ ruby -e '(1…
rubyの場合 # 1.jpg => pict1.jpg に変更 Dir.foreach('.') do |f| if f =~ /.*jpg/ puts f system "mv #{f} pict#{f}" end end shellの場合 1.jpg => pict1.jpg に変換. {}にfindの値が入る. {}は -I{}で指定している. $ find * -print0 -type f | xargs -0…
a = [1,2,3, 4,5,6, 7,8,9, 10] res = [] while a.size > 0 res << a.slice!(0, 3) end p res # => [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
iphone アプリのビルドとテストフライトの配布をコマンドラインで行なってくれる shenzhen という gemがあります。 日本語情報が見当たらなかったので、記事にしてみました。ちょっとしたハマりポイントがいくつかありました。 ちなみに shenzhen という名称…
後ろから4つとって、作成日を今日から1日ずつずらす。 >> Post.last(4).each_with_index{|p, index| p.created_at = index.days.ago; p.save }
1.9.1 :052 > Post.where('name like "%hoge%"') こっちでもよい 1.9.1 :008 > User.where('user_name like ?', "%hoge%" )
rails runner (one liner) で無理やり条件分岐 spring rails runner "if true; p 'true'; else; p 'false' end;" セミコロンをつけていくだけだが、なかなか苦しい。(汗 ruby script の場合は -e が必要 ruby -e " if true; p 4; else; p 3 end;"
In ruby on rails read_attribute and write_attribute can use both symbol and string as arguments.If you use attributes method you can use only string as argument.via: http://blog.eiel.info/blog/2012/12/17/read-attribute-activerecord/
This is memorandum about Ruby's Array class' instance methods. Take some notes for my understand. I still haven' store them.Manipulate to tail push: add to tail pop: remove from tail Manipulate to head unshift: add to head shift: remove fr…
こんなエラー Could not find a JavaScript runtime . See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)node.js入れて, therubyracerと execjsをGemfileから消して bundle updateしたら治りまし…
viewでcontent_forメソッドを使用すればよい。multi_layout.html.erb (layout) <%= yield :extend_menu %> <%= yield %> <%= yield 'extend_menu' %>multi.html.erb (view) 文字列とシンボルは区別される。 <% content_for :extend_menu do %> header <% end…
Method#source_location が便利だと @ikm さんに教わったので使ってみた。method(:method_name).source_location とすると, メソッドを定義しているファイル名と行数を返してくれる。 #hoge.rb require './fuga' def mel; end p method(:mel).source_locatio…
ブロック引数 なのに、インデントができていないこと が原因 以下の例で発生する。 = form_for @book do |f| # ブロック引数 -# この行でインデントなし以下のエラーが全て発生する。 syntax error, unexpected ')' unterminated string meets end of filesy…
いわゆる Railsの基本理念の1つ CoC (Convention over Configuration, 設定より規約) の規約部分です。Railsではファイル名、クラス名などを規約通りに書かないと動きません。(そして rails vim でも Rcontroller book とかやって怒られる。ただしくは Rcont…
Rails で AbstractController::DoubleRenderError が出た時の対処法。 2回render しちゃってるので、 and return をつけて、終了させる。 redirect_to(...) and returnエラーメッセージに書いてあります。親切。
string 文字列型。 text テキスト(不定長文字列)型。 integer 整数型。 float 浮動小数点数型。 decimal 固定長整数型。 datetime 日時型。 timestamp タイムスタンプ型。 time 時刻型。 date 日付型。 binary バイナリ文字列型。 boolean 真偽値型。 refe…
メタプロより。 inc = Proc.new { |x| x+1} p inc.class p inc.call(33) dec = lambda { |x| x-1} p dec.class p dec.call(33) def fuga(&the_proc) the_proc end mul = fuga{|x, y| x*y} p mul.class p mul.call(4,5) 結果 Proc 34 Proc 32 Proc 203番目の…
Ruby の正規表現のゆるふわなまとめです。 ^ 行頭 $ 行末 \d 数字 \w 数字と英数字とアンダーバー \s 空白文字 \A 文字列の先頭にマッチ \z 文字列の末尾にマッチ \Z 文字列の末尾にマッチ. ただし末尾が改行ならばその前の文字にマッチ ### 後方参照 $1, $2…
Ruby でコードを書くときに、ハッシュの値を取り出して配列に入れたい時が多々あります。 例えば、こんなふうに。 h = {:key1 => "dog", :key2 => "cat", :key3 => "rat"} a = [] h.each { |key, val| a << val } p a # => ["dog", "cat", "rat"]自前で配列…
git merge: 指定したブランチの変更点を現在のブランチにマージする。 例. ブランチ hoge の変更点を適用 # git merge hoge (git)-[master] Updating b158f90..6a3d8c4 Fast-forward README | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) create…
:R controller と view の入れ替え gf カーソル位置のモデルに飛ぶ :bn 前のバッファに戻る。gfで飛んでから戻るとき使う。 以下の機能は、Rmodel で補完ができます。 model名などは単数形、複数形は区別されます。 Rmodel model名 modelに飛ぶ Rcontroller …
今日、Yokohama.rb 第14回に行って来ました。 この会に参加するのは今回で、5回目になります。 今回、私は、主に もくもくルームで、Rails のチュートリアルをやっていました。 デフォルトの英語から、ja.yml を書いて、日本語化とかですね。 途中、@sakairy…