心はいつもAirPucci (空元気でもいいから)

毎日がPucciを着ているような気分

attr_accessorでRuby文法を噛み締める

   


作りたいwebアプリがあって、プログラムやろう!となって現在にいたってる訳です。
Railsでやると早いというので初めてみたのが9月の終わり。確かにはやかった。で、なんとか作りたいものを作り出しているのですが、ここにきてRailsのメソッド類よりもRubyの文法というか言語アーキテクチャにちゃんと向き合いたいと思うようになりました。
偉いぞ自分。プログラム始めてある程度経過すると言語仕様に向き合いたいと人が思うようになるのはなぜなのでしょう?ただ書いて動けば楽しいしいいんじゃない?別に。とはならない。みんな、そう。
キチンと正しく動くことを確信したい=そういうサービスを提供したいっていうプロ意識でしょうか。
Railsでとっととかければいいやーを脱却し、Rubyを噛み締めだしています。がんばれー
20140115-222229.jpg

で、早速。
Rubyのアクセッサメソッドにattr_accessorというのがあって引数をシンボルで書けばメソッドを作ってくれてインスタンス変数にアクセスできるのがあって、

 
class Book
 attr_accessor :title, :price
 def initialize(title, price)
  @title = title
  @price = price
 end 
end

Rubyリファレンスによるとattr_accessorはModuleで定義されている。
attr_accessorの引数としてシンボルで

 :ranranruby

とかくと、ranranrubyという名前の@ranranrubyというインスタンス変数にアクセスできるメソッドが勝手に作られるのと同じになる。

 
class Book
 attr_accessor :title 
end 

 
class Book
 def title 
  @title 
 end
 def title=(val) 
  @title = val
 end 
end

と同じ。
なぜ引数をシンボルの形で一意にすべきなのかとか気になり、Rubyでattr_accessorを実装しているところを見たいと思うのですが、どこでみれるのかわからず。
実装を見たいと思いつつ、先に進むことにします。 実装は見ていないですが、言語仕様はここhttp://www.ruby-doc.org/core-2.0/にあることがわかった。

 - テクニカル

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

no image
ToDoの管理方法

東大生はノートがきれいだとか、、 きれいに書いている暇があったら、頭に書いて覚え …

初めてのRuby2章「配列とハッシュ」

Railsだってgemの一種!ってことで、Rubyの文法からちゃんとやりたいです …

no image
wordpressのサーバー移行したい

本当に自分の備忘録として。 サーバー移行したいなと考えています。 同時に、Wor …

no image
accepts_nested_attributes_for

everydayRailsやっていて、 phoneモデルのテストのところで ac …

no image
RailsTutorial4.0を高速で復習する。6.5章。

演習1問目。 リスト6.20の、メールアドレスを小文字に変換するコードに対するテ …

no image
RailsTutorial4.0を高速で復習する。5.2章。

5.2SassとAsset Pipeline、です。 ここは読み物系です。読んで …

no image
データベースのリファクタリング?

ruby on rails3プリケーションプログラミングの本の内容をruby2. …

WordPressの管理画面真っ白問題に対処しました

WordPressの自作テンプレを作ったはいいものの、管理画面が真っ白になって投 …

no image
「Follow me」バッジのつけ方。

ブログの横についている「Follow me」バッジ。いろんな方がつけているのを見 …

HerokuにRailsアプリをdeployする

Railsプロジェクトというよりも、Railsアプリっていうほうが正んでしょうか …