Class: EacRubyUtils::ActsAsInstanceMethod

Inherits:
Object
  • Object
show all
Defined in:
lib/eac_ruby_utils/acts_as_instance_method.rb

Direct Known Subclasses

MethodClass::Setup

Instance Method Summary collapse

Instance Method Details

#default_sender_moduleModule

Returns:



42
43
44
# File 'lib/eac_ruby_utils/acts_as_instance_method.rb', line 42

def default_sender_module
  method_class.module_parent
end

#method_nameString

Returns:



32
33
34
# File 'lib/eac_ruby_utils/acts_as_instance_method.rb', line 32

def method_name
  "#{method_class.name.demodulize.underscore.variableize}#{method_name_mark}"
end

#method_name_markSymbol

Returns:

  • (Symbol)


37
38
39
# File 'lib/eac_ruby_utils/acts_as_instance_method.rb', line 37

def method_name_mark
  options[OPTION_NAME_MARK] || NAME_MARK_NONE
end

#setup(sender_module = nil) ⇒ self

Parameters:

  • sender_module (Module, nil) (defaults to: nil)

Returns:

  • (self)


21
22
23
24
25
26
27
28
29
# File 'lib/eac_ruby_utils/acts_as_instance_method.rb', line 21

def setup(sender_module = nil)
  sender_module ||= default_sender_module
  the_setup = self
  sender_module.define_method(method_name) do |*args, &block|
    the_setup.method_class.new(self, *args, &block).result
  end

  self
end