Module: DefineMethods

Defined in:
lib/define_methods.rb,
lib/define_methods/base.rb,
lib/define_methods/version.rb

Defined Under Namespace

Classes: Base

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call(*method_names, &does) ⇒ Object



21
22
23
# File 'lib/define_methods.rb', line 21

def call(*method_names, &does)
  each(&does).new(*method_names)
end

.each(&does) ⇒ Object



17
18
19
# File 'lib/define_methods.rb', line 17

def each(&does)
  Base.each(&does)
end

.included(base) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/define_methods.rb', line 25

def included(base)
  return if base.respond_to? :[]

  class << base
    alias_method :[], :new
  end
end

Instance Method Details

#define_methods(*method_names, &block) ⇒ Object



5
6
7
8
# File 'lib/define_methods.rb', line 5

def define_methods(*method_names, &block)
  method_names.map { |name| define_method(name, block) }
              .tap { |names| defined_methods.push(*names).uniq! }
end