Module: Modifiers

Defined in:
lib/modifiers.rb,
lib/modifiers/query.rb,
lib/modifiers/command.rb,
lib/modifiers/version.rb,
lib/modifiers/memoized.rb,
lib/modifiers/deprecated.rb,
lib/modifiers/modification.rb,
lib/modifiers/define_modifier.rb,
lib/modifiers/method_invocation.rb

Defined Under Namespace

Classes: MethodInvocation, Modification

Constant Summary collapse

VERSION =
'0.0.2'

Class Method Summary collapse

Class Method Details

.define_modifier(name, &block) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/modifiers/define_modifier.rb', line 4

def define_modifier(name, &block)
  define_method(name) do |sym|
    mod = Modification.new(klass: self, method: sym)
    define_method(sym) { |*args| mod.call(self, *args, &block) }
    send(mod.original_visibility, sym)
  end
end