Skip to content

Instantly share code, notes, and snippets.

@christopherslee
Last active December 17, 2015 00:29
Show Gist options
  • Save christopherslee/5521810 to your computer and use it in GitHub Desktop.
Save christopherslee/5521810 to your computer and use it in GitHub Desktop.
Introduction to Metaprogramming: Lesson 4
class Customer
attr_reader :id, :datasource
def initialize(id, datasource)
@id = id
@datasource = datasource
end
def method_missing(methodname, *args, &block)
super unless @datasource.respond_to? "get_#{methodname}_value"
value = datasource.send("get_#{methodname}_value", id)
"#{methodname.capitalize}: #{value}"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment