ruby
最近、AWS を触っています。 私は Ruby を使いがちなので、Ruby の aws-sdk をつかって 様々な操作をする事が多いです。その中でいくつか決まった書き方をする事が多いので、少しづつやり方をまとめておきます。■自らのEC2インスタンス情報を取得する(EBSのV…
クラスインスタンス変数、モジュール変数に対して、 attr_reader, attr_accessor などのアクセサでアクセスする方法 ※利用頻度が低い!って話はおいておいて・・・ class TestClass @var = 0 class << self attr_accessor :var end end p TestClass.var #=> …
練習がてらに作ってみました。 下記がコードです。 require 'benchmark' class BBenchmark def self.measure(n=1, &b) res = [] Benchmark.benchmark( ' ' * 7 +Benchmark::CAPTION, 7, Benchmark::FORMAT, #1.8.x では Benchmark::FMTSTR 'total:', 'avg:' …
遅くなるとは聞いていたが、どんなもんか興味で単純な関数呼び出しでのベンチマークをしてみた。 method_missing と 通常呼び出しの検証結果 user system total real 通常呼び出し 0.000000 0.000000 0.000000 0.000029 method_missing 0.000000 0.000000 0.…
気になったので、調べてみた module Hoge module Moge class Test # クラスインスタンス変数 @hoge= ->{ p 'called!!'; 'aaaa'}.call # 特異メソッド def self.get p @hoge end # インスタンスメソッド def get p @hoge end end end end # クラスメソッドは…
ちょっとサイト作ってるときに、さっきまで普通に動作していたのに、 rake db:migrate:reset を実行して、ブラウザから確認しようと思ったら、SQLite3::ReadOnlyException : attempt to write a readonly databaseとの文字が。調べてみると、どうやらパーミ…
作成したインスタンスのみメソッド追加するやり方がわからなくて、 試してみたのでメモ下記ソースコードは Test クラスのインスタンスの a に対して、 特異メソッドを追加してみたサンプルです。 class Test def hoge p 'pp' end end a = Test.new a.hoge #=…
最近、ちょっとRubyを書いていて使った、 2つの配列をそれぞれ対応するキーと値の ハッシュに変換するときのやりかたをメモ。 hash = Hash[keys.zip vals] もしくは hash = Hash[*([keys, vals].transpose.flatten)] です。※2011/11/15追記 上の方はkeyesbe…