class SidekiqAdhocJob::Utils::ClassInspector
Attributes
klass_name[R]
klass_obj[R]
method_parameters[R]
Public Class Methods
new(klass_name)
click to toggle source
# File lib/sidekiq_adhoc_job/utils/class_inspector.rb, line 7 def initialize(klass_name) @klass_name = klass_name @klass_obj = klass_name.new @method_parameters = {} end
Public Instance Methods
has_rest_parameter?(method_name)
click to toggle source
# File lib/sidekiq_adhoc_job/utils/class_inspector.rb, line 46 def has_rest_parameter?(method_name) !!parameters(method_name)[:rest] end
klass_method(method)
click to toggle source
# File lib/sidekiq_adhoc_job/utils/class_inspector.rb, line 50 def klass_method(method) return method if method.owner == klass_name klass_method(method.super_method) end
optional_kw_parameters(method_name)
click to toggle source
# File lib/sidekiq_adhoc_job/utils/class_inspector.rb, line 42 def optional_kw_parameters(method_name) parameters(method_name)[:key] || [] end
optional_parameters(method_name)
click to toggle source
# File lib/sidekiq_adhoc_job/utils/class_inspector.rb, line 34 def optional_parameters(method_name) parameters(method_name)[:opt] || [] end
parameters(method_name)
click to toggle source
# File lib/sidekiq_adhoc_job/utils/class_inspector.rb, line 13 def parameters(method_name) return method_parameters[method_name] if method_parameters[method_name] klass_method = klass_method(klass_obj.method(method_name)) params = klass_method .parameters .group_by { |type, _| type } .inject({}) do |acc, (type, params)| acc[type] = params.map(&:last) acc end method_parameters[method_name] = params params end
required_kw_parameters(method_name)
click to toggle source
# File lib/sidekiq_adhoc_job/utils/class_inspector.rb, line 38 def required_kw_parameters(method_name) parameters(method_name)[:keyreq] || [] end
required_parameters(method_name)
click to toggle source
# File lib/sidekiq_adhoc_job/utils/class_inspector.rb, line 30 def required_parameters(method_name) parameters(method_name)[:req] || [] end