lab19: init
This commit is contained in:
19
lab19/eval/class-eval-example.rb
Normal file
19
lab19/eval/class-eval-example.rb
Normal file
@@ -0,0 +1,19 @@
|
||||
class Class
|
||||
def my_attr_accessor(*args)
|
||||
args.each do |prop|
|
||||
# Creating the getter
|
||||
self.class_eval("def #{prop}; @#{prop}; end")
|
||||
# Creating the setter
|
||||
self.class_eval("def #{prop}=(v); @#{prop}=v; end")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class Musician
|
||||
my_attr_accessor :name, :genre, :instrument
|
||||
end
|
||||
|
||||
m = Musician.new
|
||||
m.name = "Norah Jones"
|
||||
puts m.name
|
||||
|
||||
Reference in New Issue
Block a user