1 #!/usr/local/bin/ruby
2 # encoding: utf-8
3 class Module
4 private
5 def attr_r(*arg)
6 arg.each do |key|
7 class_eval <<-EOS
8 def #{key}
9 @#{key}
10 end
11 EOS
12 end
13 end
14 end
15
16 class Book
17 attr_r :isbn, :price
18 def initialize(isbn, price)
19 @isbn, @price = isbn, Float(price)
20 end
21 end
22
23 b = Book.new(123, '10.45')
24 p b.isbn
25 p b.price
26 # >> 123
27 # >> 10.45
1 #!/usr/local/bin/ruby
2 # encoding: utf-8
3 class Module
4 private
5 def attr_r(*arg)
6 arg.each do |key|
7 define_method("#{key}") do
8 eval "@#{key}"
9 end
10 end
11 end
12 end
13
14 class Book
15 attr_r :isbn, :price
16 def initialize(isbn, price)
17 @isbn, @price = isbn, Float(price)
18 end
19 end
20
21 b = Book.new(123, '10.45')
22 p b.isbn
23 p b.price
24 # >> 123
25 # >> 10.45
No comments:
Post a Comment