心はいつも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

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

  関連記事

HerokuにRailsアプリをdeployする

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

no image
Mac OS Xでftp × Cyberduck

WordPressにプラグインを入れたくてダウンロードしてきました。 そういえば …

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

9.3.2サンプルのユーザー、です。 Faker gemで、実際にありそうなユー …

RailsTutorial4.0を高速で復習する。11章。

第11章ユーザーをフォローする、です。ようやく最終章。1週間でできるつもりが3週 …

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

3.3.2タイトルのテストをパスさせる。です。 ひとまず、静的ページをhtmlの …

SublimeText2をMacにインストールしてターミナルから起動できるようにする。

Windowsには秀丸っていう超優秀なテクストエディタがあって、無料でも使えるの …

no image
RailsTutorial4.0を高速で復習する。5.6章。演習3問目。

5章最後の演習、3問目です。 リスト5.38に示すように、元のヘルパーメソッドに …

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

3.2章は最初のテストです。 Railsチュートリアルは、アプリケーションの振る …

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

10.3.2マイクロポストを作成する、です。 テストを書く micropostの …

実機なしでRetina 3.5インチのスクリーンショットを撮る

iPhoneアプリ公開時に2種類の画像登録が必要です。 1つ目はアイコン。アプリ …