module ShouldaMatchmakers::Model::ActiveRecord::Matchmaker::Associations
Public Instance Methods
association_matcher_tests(association_type)
click to toggle source
# File lib/model/active_record/matchmakers/associations.rb, line 8 def association_matcher_tests(association_type) association_type_instances = @app_class_name.constantize.reflect_on_all_associations(association_type.to_sym) if association_type_instances.present? generate_association_matcher_tests(association_type, association_type_instances) else [] end end
Private Instance Methods
generate_association_matcher_tests(association_type, association_type_instances)
click to toggle source
# File lib/model/active_record/matchmakers/associations.rb, line 20 def generate_association_matcher_tests(association_type, association_type_instances) association_tests = [] association_type_instances = association_type_instances.map{ |ati| { association_class_name: ati.name, association_options: ati.options } } association_type_instances.each do |association_type_instance| association_test = generate_association_test_single_line(association_type, association_type_instance) if association_test.length > @working_generated_code_line_length association_test = generate_association_test_multiple_lines(association_type, association_type_instance) end association_tests = append_element(association_test, association_tests) end format_tests(association_tests) end
generate_association_test_multiple_lines(association_type, association_type_instance)
click to toggle source
# File lib/model/active_record/matchmakers/associations.rb, line 40 def generate_association_test_multiple_lines(association_type, association_type_instance) association_matcher = association_type.sub("belongs", "belong").sub("has", "have") association_test = " it do\n is_expected.to #{ association_matcher }(:#{ association_type_instance[:association_class_name].to_s })" association_options_string = get_options_string(association_type_instance[:association_options]) association_options_string = association_options_string.gsub(".", ".\n ") association_test.concat(association_options_string + "\n end") end
generate_association_test_single_line(association_type, association_type_instance)
click to toggle source
# File lib/model/active_record/matchmakers/associations.rb, line 33 def generate_association_test_single_line(association_type, association_type_instance) association_matcher = association_type.sub("belongs", "belong").sub("has", "have") association_test = " it { is_expected.to #{ association_matcher }(:#{ association_type_instance[:association_class_name].to_s })" association_options_string = get_options_string(association_type_instance[:association_options]) association_test.concat(association_options_string + " }") end