Module: CherryPick

Defined in:
lib/cherry_pick.rb,
lib/cherry_pick/version.rb

Constant Summary collapse

VERSION =
"0.0.2"

Instance Method Summary collapse

Instance Method Details

#cherry_pick(*method_symbols, klass) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/cherry_pick.rb', line 3

def cherry_pick(*method_symbols, klass)
  klass = klass.dup

  klass.instance_methods.each do |method|
    unless method_symbols.include?(method)
      klass.send(:remove_method, method)
    end
  end

  include klass
end

#class_cherry_pick(*method_symbols, klass) ⇒ Object



15
16
17
18
19
# File 'lib/cherry_pick.rb', line 15

def class_cherry_pick(*method_symbols, klass)
  method_symbols.each do |method_symbol|
    meta_class.send(:define_method, method_symbol) { klass.method(method_symbol).call }
  end
end