Module: ReflectionUtils
- Defined in:
- lib/reflection_utils.rb,
lib/reflection_utils/version.rb,
lib/reflection_utils/create_class_methods_upon_include.rb
Defined Under Namespace
Modules: CreateClassMethodsUponInclude
Constant Summary
collapse
- VERSION =
"0.2.0"
Class Method Summary
collapse
Class Method Details
.assert_parameters(proc, parameters) ⇒ Object
25
26
27
28
29
30
31
|
# File 'lib/reflection_utils.rb', line 25
def self.assert_parameters(proc, parameters)
parameters.each_with_index do |parameter, index|
raise ArgumentError, "Argument #{parameter} not found for #{proc} at #{index} index." unless has_parameter?(proc, index, parameter)
end
true
end
|
.call(callback, params = nil) ⇒ Object
13
14
15
|
# File 'lib/reflection_utils.rb', line 13
def self.call(callback, params = nil)
params.nil? ? callback.call : callback.call(params)
end
|
.get_bound_instance_method(instance:, method_name:) ⇒ Object
5
6
7
|
# File 'lib/reflection_utils.rb', line 5
def self.get_bound_instance_method(instance:, method_name:)
get_class_constant(instance: instance).instance_method(method_name).bind(instance)
end
|
.get_class_constant(instance:) ⇒ Object
9
10
11
|
# File 'lib/reflection_utils.rb', line 9
def self.get_class_constant(instance:)
Object.const_get(instance.class.name)
end
|
.has_parameter?(proc, parameter_index, parameter) ⇒ Boolean
33
34
35
|
# File 'lib/reflection_utils.rb', line 33
def self.has_parameter?(proc, parameter_index, parameter)
proc.parameters[parameter_index] == parameter
end
|
.has_parameters?(proc, parameters) ⇒ Boolean
17
18
19
20
21
22
23
|
# File 'lib/reflection_utils.rb', line 17
def self.has_parameters?(proc, parameters)
parameters.each_with_index do |parameter, index|
return false unless has_parameter?(proc, index, parameter)
end
true
end
|
.non_default_class_methods(clazz) ⇒ Object
41
42
43
|
# File 'lib/reflection_utils.rb', line 41
def self.non_default_class_methods(clazz)
clazz.methods - Object.methods
end
|
.non_default_instance_methods(instance) ⇒ Object
45
46
47
|
# File 'lib/reflection_utils.rb', line 45
def self.non_default_instance_methods(instance)
instance.methods - Object.new.methods
end
|
.non_default_methods(class_or_instance) ⇒ Object
37
38
39
|
# File 'lib/reflection_utils.rb', line 37
def self.non_default_methods(class_or_instance)
class_or_instance.is_a?(Module) ? non_default_class_methods(class_or_instance) : non_default_instance_methods(class_or_instance)
end
|