Skip to content

Instantly share code, notes, and snippets.

@kyuden
Last active August 29, 2015 14:15
Show Gist options
  • Save kyuden/09ffc3f700f76291c35c to your computer and use it in GitHub Desktop.
Save kyuden/09ffc3f700f76291c35c to your computer and use it in GitHub Desktop.
cattr_accessor vs class_attribute
[1] pry(main)> class Base
[1] pry(main)* cattr_accessor :setting2
[1] pry(main)* end
=> [:setting2]
[2] pry(main)> class Subclass < Base ; end
=> nil
[3] pry(main)> Base.setting2
=> nil
[4] pry(main)> Base.setting2 = true
=> true
[5] pry(main)> Subclass.setting2
=> true
[6] pry(main)> Subclass.setting2 = false
=> false
[7] pry(main)> Base.setting2
=> false
継承ルート一個で同じクラス変数を共有する普通のclass変数のaccessor
[8] pry(main)> class Base
[8] pry(main)* class_attribute :setting
[8] pry(main)* end
=> [:setting]
[9] pry(main)> class Subclass < Base ; end
=> nil
[10] pry(main)> Base.setting
=> nil
[11] pry(main)> Base.setting = true
=> true
[12] pry(main)> Subclass.setting
=> true
[13] pry(main)> Subclass.setting = false
=> false
[14] pry(main)> Base.setting
=> true
クラス毎のクラスインスタンス変数のaccessor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment