Ruby

ClassにあってObjectにないもの

mitsu@garlic$ ruby -e 'p Class.methods - Object.methods' ["nesting"] mitsu@garlic$

特異クラスはインスタンス生成できるの?

mitsu@garlic$ cat hoge.rb class C end c1 = C.new def c1.hoge puts "hello world!\n" end C1 = c1.class c2 = C1.new # c2.hoge <= undefined method `hoge' for #<C:0x8076220> (NoMethodError) puts C.object_id puts C1.object_id mitsu@garlic$ ruby hoge.rb 67350</c:0x8076220>…

モジュールの練習

モジュールのインスタンス変数名がぶつかったときどっちが勝つのか? module Mod1 def initialize @modval = 123 end def print_mval1 puts @modval end end module Mod2 def initialize @modval = 456 end def print_mval2 puts @modval end end class Cls …

the ruby way中

「第5章 RubyにおけるOOPと動的型操作」読み中。これまでのところ、技巧的にはRubyレシピブックとかなり重複している気がしていて、「便利なクラスを覚えたなぁ」ということは無いのだけど、Rubyの根底に流れるポリシーが染み込んでくるようで嬉しい。特に5…

text_fieldのvalue(datetime)のフォーマット

<% @journal.datetime = Time.now unless @journal.datetime %> <%= text_field 'journal', "datetime" %></p> こんなviewを書いて@journal.datetime有り/無しを試してみると。 あり 2007-11-01 00:00:00 なし Sat Dec 08 23:43:40 +0900 2007ちなみに、debugで…

vim-ruby

メモったつもりが忘れてた… % sudo gem install vim-ruby % which ruby /usr/local/bin/ruby % cd /usr/local/bin % sudo vim-ruby-install.rb

Yahooから株価情報を取得 #2

書き直した。正規表現の%記法である%rを使ってみた。 require 'net/http' require 'kconv' class YahooInfo @@regexes = { :name=> '<td nowrap>&nbsp;<b>(.*?)</b>', :exchange=> '</b>&nbsp;<b>【</b>(.*?):<b>', :price=> '取引値<br>.*?<b>(.*?)</b>', :volume=> '<td nowrap>出来高<br>(.*?)</td>', :capital=> '<td nowrap>時価総</td></b>…

yahoo株価情報から情報取得

株価情報を取ってきたかったので適当に頑張ってみる。 試行錯誤しながら進めてたので改めてみるとDRYでないなぁ。後できれいにしよう(regrep_strという名前も…)。 require 'net/http' require 'kconv' class YahooInfo def get(code) Net::HTTP.version_1_…

シンプルなDSL

もう、これでいいや。後は実際に必要になったら使いやすいように検討する方向で。 class Dsl def define(&block) self.instance_eval(&block) end def print_name puts 'my name is hogehoge!\n' end def print_age puts 'i am hogeteen!\n' end end dsl = D…

インストールメモ

新しいOSにcygwin+rubyをインストールしたので、それ以降のインストールについてメモ。 gem ダウンロード(http://rubyforge.org/frs/download.php/17190/rubygems-0.9.2.xxx)&解凍後、 $ ruby setup.rb : : Successfully built RubyGem Name: sources Versi…

まずDSLの勉強を…

青木さんのruby添削などでDSLの実装例が載っているが、限りなくシンプルなものを…、ということで以下のサイトを見つけた。後で読みます。読んでみた()。といっても英語はほとんど読んでない。読むの遅いし眠いので。 # The guts of life force within Dwemth…