Defines a MethodObject class which facilitates basic setup for Kent Beck's "method object".
- Facilitates basic method object pattern setup. You only need to supply an instance
callmethod. - Accepts a list of arguments which are mapped to required keyword arguments.
- Disallows calling
newon the resulting MethodObject class instance.
gem 'method_man', require: 'method_object'- Ruby >= 2.1
require 'method_object'
class MakeArbitraryArray < MethodObject
attrs(:first_name, :last_name, :message)
def call
[fullname, message, 42]
end
def fullname
"#{first_name} #{last_name}"
end
end
MakeArbitraryArray.call(
first_name: 'John',
last_name: 'Smith',
message: 'Hi',
)
=> ["John Smith", 'Hi', 42]