maeshimaの日記

メモ書きです

ruby

RVM tips

Ruby Freaks Lounge:第40回 RVM(Ruby Version Manager)による環境構築(2)|gihyo.jp … 技術評論社]を読んだまとめ。 rvmのアップデート rvm update --head rvm reload 複数のrubyでプログラムを実行 rvm ruby hoge でインストール済みの全てのrubyでhog…

継承したメソッドでの定数探索は親から行われる

てっきり子のNAMEが使われると思ってた class Parent NAME = "parent" def name NAME end end class Child < Parent NAME = "child" end child = Child.new puts child.name # => parent

Array#compact

nilを取り除いた配列を返すメソッド。時々しか使わないので「名前なんだっけ?」となる

defined?メソッド

defined?メソッドを使ってるコードを初めて見た。クラス/メソッドの定義 - Rubyリファレンスマニュアル

Proc#arity

引数の数を可変長で受け取れる場合の規則を覚えるのがめんどい Procオブジェクトの引数の数を返します。self が引数の数 を可変長で受け取れる場合 -(最低限必要な数+1)を返します。

Rackの復習

Ruby Freaks Lounge:第23回 Rackとは何か(1)Rackの生まれた背景|gihyo.jp … 技術評論社 Ruby Freaks Lounge:第24回 Rackとは何か(2)Rackの使い方|gihyo.jp … 技術評論社を読み直してのメモ。 Rackアプリケーションに必要なこと 下記を満たすオブジェ…

eventmachine

EventMachine: Get Excited By Scalable Non-Blocking I/Oを読んで。なんか注目されてるっぽいけどどんなライブラリなのかよくわかってないので調べた。eventmachine @ GitHub eventmachineとは Ruby/EventMachineはシングルスレッドで高速に動作するネット…

railsでselectタグを出力するヘルパー

メモ option include_blank trueなら空白のoptionタグが作られる prompt 値が空白のoptionで表示される文字列を指定。include_blankとは共存できないっぽい index 出力結果のindexを指定できる disabled disabled optionを出力する select 利用例 select("po…

FileUtils.cpとFile#writeどっちが速いか

require "benchmark" require "fileutils" file_name = "30M.txt" open(file_name) do |src_file| Benchmark.bm do |x| x.report("cp") do FileUtils.cp(file_name, "30M_cp.txt") end x.report("write") do open("30M_write.txt", "w") do |dst_file| dst_f…

Dir.globとDir[]の違い

受け付ける引数が異なる。Dir.globは 省略可能な第二引数に、File.fnmatchのフラグを付けることが出来る ブロックを撮ることが出来る Dir.[]は 複数個のワイルドカードを受け付ける File.fnmatchのフラグ File.fnmatchはファイル名がワイルドカードにマッチ…

IO#reopen(io)

自身を指定された io に繋ぎ換えます。

Array#max, Array#min

知らなかったのでメモ irb(main):001:0> [1, 100, 2, 1000].max => 1000 irb(main):002:0> [1, 100, 2, 1000].min => 1 irb(main):003:0> [-1, 100, 2, 1000].min => -1

srandメソッド

このメソッドを使うと、毎回同じランダムデータの連続を生成することが出来る。 srand([seed]) rand の乱数の種を設定し、古い初期値を返します (ただし最初だけは0を返します)。初期値が省略された時には現在の時刻やプロセスID、srand を呼び出した回数、…

URI::Generic::find_proxy

open-uriをrequireすると追加されるメソッド。デフォルトのURIになくてちょっとはまったのでメモ

括弧つけないといけないとき

yield :title || "fuga" だと:titleと"fuga"両方ともyieldの引数として判断されるので"fuga"が使われることは決してない。 yield(:title) || "fuga" のように括弧が必要