Skip to content

Instantly share code, notes, and snippets.

@iorionda
Last active August 29, 2015 13:58
Show Gist options
  • Select an option

  • Save iorionda/10229373 to your computer and use it in GitHub Desktop.

Select an option

Save iorionda/10229373 to your computer and use it in GitHub Desktop.
attr の使い方
irb(main):001:0>class Foo
irb(main):002:1> attr :bar, true
irb(main):003:1>
irb(main):004:1* def initialize(bar)
irb(main):005:2> @bar = bar
irb(main):006:2> end
irb(main):007:1> end
=> :initialize
irb(main):008:0> foo = Foo.new("Hello")
=> #<Foo:0x007faf228f0830 @bar="Hello">
irb(main):009:0> foo.bar
=> "Hello"
irb(main):010:0> foo.bar = "Goodbye"
=> "Goodbye"
irb(main):011:0> p foo.bar
"Goodbye"
=> "Goodbye"
irb(main):012:0> class Bar
irb(main):013:1> attr :baz
irb(main):014:1>
irb(main):015:1* def initialize(baz)
irb(main):016:2> @baz = baz
irb(main):017:2> end
irb(main):018:1> end
=> :initialize
irb(main):019:0> bar = Bar.new("Hello")
=> #<Bar:0x007faf22878268 @buz="Hello">
irb(main):020:0> p bar.baz
"Hello"
=> "Hello"
irb(main):021:0> bar.baz = "Goodbye"
NoMethodError: undefined method `baz=' for #<Bar:0x007faf22878268 @buz="Hello">
from (irb):21
from /Users/ONDA/.rbenv/versions/2.1.0/bin/irb:11:in `<main>'
irb(main):022:0>
# メソッドの生え方
[1] 2.0.0-p247(main)> class Foo
[1] 2.0.0-p247(main)* attr :bar, true
[1] 2.0.0-p247(main)*
[1] 2.0.0-p247(main)* def initialize(bar)
[1] 2.0.0-p247(main)* @bar = bar
[1] 2.0.0-p247(main)* end
[1] 2.0.0-p247(main)* end
=> nil
[2] 2.0.0-p247(main)> ls Foo
Foo#methods: bar bar=
[3] 2.0.0-p247(main)> class Bar
[3] 2.0.0-p247(main)* attr :baz
[3] 2.0.0-p247(main)*
[3] 2.0.0-p247(main)* def initialize(baz)
[3] 2.0.0-p247(main)* @baz = baz
[3] 2.0.0-p247(main)* end
[3] 2.0.0-p247(main)* end
=> nil
[4] 2.0.0-p247(main)> ls Bar
Bar#methods: baz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment