Ruby

メタプログラミングRuby 四日目を読んだ

特異クラス クラスインスタンス変数,クラスマクロ,アラウンドエイリアス で, 特異クラスは たぶん Role を差してやればいいと思う alias は,なんかいい方法があるんだろうか.next とか? my &old_name := &thermo; &thermo = sub {}; とか普通にできる…

メタプログラミングRuby 三日目を読んだ

Proc と lambda と instance_eval かな scope の話 さて block は全てがクロージャです. method { } で,無名メソッドが作れる 第一引数がオブジェクト($obj.$method と $method($obj) が同じ) -> でも,引数を受け取るクロージャが作れる AUTOLOAD が使え…

メタプログラミングRuby 五日目を読んだ

クラス拡張ミックスイン で Perl6 だと 普通にRole かなぁ? attr_checked メソッドを生やす add_method で適当にアクセサを作る store する場所はぶっちゃけ,独立したattribute じゃなくてもいいよね. メタプログラミングRubyposted with amazlet at 11.0…

メタプログラミングRuby 二日目を読んだ

Module#method_missing() と define_method(), Object#send() あたり.AUTOLOAD(=CANDO) と 動的定義か. multi CANDO (MyPackage, $type, $name, *%args --> Container) { ... } my $name = '&' . 'aaa'; ::<$name> = method { ... } みたく,CANDO とか動…

メタプログラミングRuby 一日目を読んだ

まとめを抜粋 オブジェクトは複数のインスタンス変数とクラスへのリンクで構成されている. オブジェクトのメソッドはオブジェクトのクラスに住んでいる(クラスから見れば,それはインスタンスメソッドと呼ばれる) クラスはClass クラスのオブジェクトである…

メタプログラミングRuby を読み始めた

Ruby の知識は全然足りない状態で読み始めた. とりあえず,色々調べながらで最初全然進めない感じですよ.調べたこと - Ruby Rakefile - test target を簡単に刺す Rakefile - default ターゲットの指定方法 gist にしようかと思ったけど,とりあえずそのま…

YAPC::Asia 2010 にいってきた

今回で二回目の参加になります前回は,@issm さんと一緒に参加したんですけど, 今回は,@hatyuki さんも居て三人で回ったりもした感じでした. それも ゆるくPerl を語る会 が出会いの場になったからですね.*1 ゆる Perl を開始してくれた id:trinity777 +…

Ruby Hacking Guide 読書会にいってきた

*ptr++ = value とかC のイディオムに慣れてない eval(String, binding) リッチだ 他の言語(Common Lisp, Scheme, Perl) との比較など VS料理長 あと二回くらいで終了するかも csnagoya 次回企画提案 読書会 技術書だけでなく,他人に本を勧めてみようみたい…

名古屋Ruby 会議01 にいってきた

http://regional.rubykaigi.org/nagoya01 http://www.ustream.tv/channel/nagoyarubykaigi01 前日に差し入れ持ってったら,委員長から直々に動画担当主任を任命された 何を言ってるかわからねーと思うが(以下略全体の感想 会場綺麗 http://www.winc-aichi.jp…

RHGを読みながらRuby1.9のソースコードを追いかける会 02 にいってきた

場所は,アートピア第五研修室 参加人数は,14人くらい? 第三章を読み終えた st_table (STring TABLE) の実装を読んだ st_table_entry->{fore, back} は,st_table->head から始まる双方向リストになっている (st_table_entry )(st_table->bins[pos])->next…

iv の格納ら辺まとめ

インスタンス変数は,先頭に"@"(アットマーク)が付いている インスタンススコープの変数. 例えば,こんな感じ. irb(main):001:0> a = 1 => 1 irb(main):002:0> class Fixnum irb(main):003:1> def hoge; @hoge; end irb(main):004:1> def hoge=(hoge); @ho…

RHGを読みながらRuby1.9のソースコードを追いかける会 にいってきた

肉々しいバーベキュウから脱出して移動 最初は時間通りに来る人が多い訳ですよ 新しい名札を作った id:dominion525++ 出席毎にシールを増やすとか? とりあえず,svn co http://svn.ruby-lang.org/repos/ruby/tags/v1_9_1_0 ruby-v1_9_1_0 とか? 参加者の半…

チャーチ数の続き

せっかくインストールしたので,IronPython スクリプトを書いてみよう. #!ipy def make_zero(): def _(f): def _(x): return x return _ return _ def add_1(n): def _(f): def _(x): return f(n(f)(x)) return _ return _ def plus(m, n): def _(f): def _…

Ruby 初心者講座の続き

ということで,もういいよね. #!/usr/bin/env ruby # -*- mode: ruby; coding: utf-8; -*- def rpn(expr) calc = Proc.new {|opr, stack| if stack.size < 2 raise "not enough argument for operand (#{opr}) with [#{stack}]" end # => when stack : [...…

Ruby 初心者レッスン課題 続き

ということで更に直す. inject (fold) があることを忘れていた. 大分短くなった.(31 lines->21 lines) #!/usr/bin/env ruby def rpn(expr) result = expr.inject([]) {|r, e| r << (%w[+ - * /].include?(e) ? calc(e, r) : e) } unless result.size == 1…

スコープ

あれ?Ruby のローカル変数のスコープってどうだっけ? ローカル変数のスコープは、宣言した位置からその変数が宣言されたブロック、 メソッド定義、またはクラス/モジュール定義 の終りまでです。寿命も そのブロックの終りまで(トップレベルのローカル変数…

Deck Builder for DM 用スクリプト

http://d.hatena.ne.jp/dmd/ さんとこのリストをCSV 化(元CSV)して, その csv を指定して,Deck Builder for Duel Masters http://www.tateyama.or.jp/~imachan/dm/ で使えるCSVを作成する. #!/usr/bin/env ruby require 'optparse' require 'csv' class T…

Redmine を試してみたよ

Trac が,Python な感じで,require 大杉.って思ったので, Rails なRedmineを試してみる.てかー.db:migration が通りません.で,Iconv.open("utf-8", "utf-8").open が駄目模様. /usr/lib/iconv/utf-8%utf-8.so みたいなのが無いのです.(Sparc Sol8)…

Proxy

よくあるnet/httpを使うフリーソフトとかダウンロードして使ってると, いっつも,Net::HTTP::Proxy とか追加して面倒なので, Net::HTTP.new とか書換えて, ENV 見てくれるようにした方が楽なんじゃね? とか今さら気付いた.ってか,もうあるんじゃね?ht…

AWS (Amazon Web Service)

http://amazon-ecs.rubyforge.org/を試そうと思っていろいろやってみた.とりあえずインストールできたんですけど, proxy 配下なので,proxy 通すようにパッチを当てようとしてみて途中.http://rtfm.jp/~tota/diary/20070912.html#p02このパッチだとproxy…

send

controller の action のメソッド名になにげなく send とか書いたら 変になっちゃいました.Object#send を上書きしちゃったのですな. Ruby に慣れてないのが丸わかりのメソッド名でした.http://www.ruby-lang.org/ja/man/?cmd=view;name=Object