class EacRubyUtils::CommonConcern::ModuleSetup
Attributes
a_module[R]
common_concern[R]
Public Class Methods
new(common_concern, a_module)
click to toggle source
# File lib/eac_ruby_utils/common_concern/module_setup.rb, line 14 def initialize(common_concern, a_module) @common_concern = common_concern @a_module = a_module end
Public Instance Methods
run()
click to toggle source
# File lib/eac_ruby_utils/common_concern/module_setup.rb, line 19 def run a_module.extend(::ActiveSupport::Concern) include_or_prepend(:included, :include) include_or_prepend(:prepended, :prepend) end
Private Instance Methods
a_module_method_args(module_method)
click to toggle source
# File lib/eac_ruby_utils/common_concern/module_setup.rb, line 34 def a_module_method_args(module_method) method_arity = a_module.method(module_method).arity method_arity = -method_arity - 1 if method_arity.negative? method_arity.times.map { |_n| a_module } end
include_or_prepend(module_method, class_setup_method)
click to toggle source
# File lib/eac_ruby_utils/common_concern/module_setup.rb, line 27 def include_or_prepend(module_method, class_setup_method) setup = self a_module.send(module_method, *a_module_method_args(module_method)) do ::EacRubyUtils::CommonConcern::ClassSetup.new(setup, self, class_setup_method).run end end