Module: CopyMethod::Utils

Included in:
MethodCopier
Defined in:
lib/copy_method/utils.rb

Class Method Summary collapse

Class Method Details

.activesupport_concern?(thing) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
23
24
# File 'lib/copy_method/utils.rb', line 20

def activesupport_concern?(thing)
  return false unless defined?(ActiveSupport::Concern)

  looks_like_module?(thing) && thing.kind_of?(ActiveSupport::Concern)
end

.assert_module!(thing, parameter_name = :thing) ⇒ Module, Class

Parameters:

  • thing (Module, Class)
  • parameter_name (Symbol) (defaults to: :thing)

Returns:

  • (Module, Class)

Raises:

  • (ArgumentError)

    if thing is not a module



14
15
16
17
18
# File 'lib/copy_method/utils.rb', line 14

def assert_module!(thing, parameter_name = :thing)
  raise TypeError, "#{parameter_name}: #{thing.inspect} is not a `Module`" unless thing.is_a?(Module)

  return thing
end

.looks_like_module?(object) ⇒ Boolean

Parameters:

  • object (Module, Object)

Returns:

  • (Boolean)


6
7
8
# File 'lib/copy_method/utils.rb', line 6

def looks_like_module?(object)
  object.is_a?(::Module) && ( object.class == ::Module || object.ancestors.include?(Module) )
end