_J Blog

学んだ事のまとめやメモなどが中心です

ruby

Ruby の aws-sdk を使って色々操作する-その1

最近、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 #=> …

Rubyでベンチマークの平均などとれるモジュールをかいてみた

練習がてらに作ってみました。 下記がコードです。 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の速度計測

遅くなるとは聞いていたが、どんなもんか興味で単純な関数呼び出しでのベンチマークをしてみた。 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 # クラスメソッドは…

SQLite3::ReadOnlyException のエラー

ちょっとサイト作ってるときに、さっきまで普通に動作していたのに、 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つの配列をハッシュに変換するワンライナー

最近、ちょっとRubyを書いていて使った、 2つの配列をそれぞれ対応するキーと値の ハッシュに変換するときのやりかたをメモ。 hash = Hash[keys.zip vals] もしくは hash = Hash[*([keys, vals].transpose.flatten)] です。※2011/11/15追記 上の方はkeyesbe…