Module: Tins::FromModule

Includes:
ParameterizedModule
Included in:
Module
Defined in:
lib/tins/dslkit.rb

Instance Method Summary collapse

Methods included from ParameterizedModule

#parameterize_for

Instance Method Details

#parameterize(opts = {}) ⇒ Object



535
536
537
538
539
540
541
542
543
544
545
546
547
# File 'lib/tins/dslkit.rb', line 535

def parameterize(opts = {})
  modul = opts[:module] or raise ArgumentError, 'option :module is required'
  import_methods = Array(opts[:methods])
  result = modul.dup
  remove_methods = modul.instance_methods.map(&:to_sym) - import_methods.map(&:to_sym)
  remove_methods.each do |m|
    begin
      result.__send__ :remove_method, m
    rescue NameError
    end
  end
  result
end