Skip to content

Instantly share code, notes, and snippets.

@makaroni4
Created February 20, 2012 17:21
Show Gist options
  • Save makaroni4/1870182 to your computer and use it in GitHub Desktop.
Save makaroni4/1870182 to your computer and use it in GitHub Desktop.
Add method when set variable using monkey patching
class Module
def fields_callbacks(fields)
fields.each do |field, value|
class_eval do
alias :"old_#{field}=" :"#{field}="
define_method("#{field}=") do |v|
value.each { |method| send(method) }
send("old_#{field}=", v)
end
end
end
end
end
class Human
attr_accessor :name
fields_callbacks :name => [:tadaaam]
private
def tadaaam
puts "TADAAAAM"
end
end
dude = Human.new
dude.name = "Jack" # => "TADAAAAM"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment