module ActiveMocker::MockCreator::ModulesConstants
Public Instance Methods
constants()
click to toggle source
# File lib/active_mocker/mock_creator/modules_constants.rb, line 22 def constants class_introspector.get_class.constants.map do |v| c = class_introspector.get_class.const_get(v) next if [Module, Class].include?(c.class) const = if /\A#</ =~ c.inspect Inspectable.new("ActiveMocker::UNREPRESENTABLE_CONST_VALUE") else c end [v, const] end.compact.sort end
modules()
click to toggle source
# File lib/active_mocker/mock_creator/modules_constants.rb, line 13 def modules @modules ||= begin { included: get_module_by_reference(:included_modules), extended: get_module_by_reference(:extended_modules), } end end
Private Instance Methods
get_module_by_reference(type)
click to toggle source
# File lib/active_mocker/mock_creator/modules_constants.rb, line 50 def get_module_by_reference(type) isolated_module_names = reject_local_const(class_introspector.public_send(type)).map(&:referenced_name) real_module_names = get_real_module(type).map(&:name).compact isolated_module_names.map do |isolated_name| real_name = real_module_names.detect do |rmn| real_parts = rmn.split("::") total_parts_count = active_record_model.name.split("::").count + isolated_name.split("::").count [ real_parts.include?(active_record_model.name), real_parts.include?(isolated_name), (total_parts_count == real_parts.count) ].all? end real_name ? real_name : isolated_name end end
get_real_module(type)
click to toggle source
# File lib/active_mocker/mock_creator/modules_constants.rb, line 42 def get_real_module(type) if type == :extended_modules active_record_model.singleton_class.included_modules else active_record_model.included_modules end end
reject_local_const(source)
click to toggle source
# File lib/active_mocker/mock_creator/modules_constants.rb, line 36 def reject_local_const(source) source.reject do |n| class_introspector.locally_defined_constants.values.include?(n) end end