Module: ShouldaMatchmakers::Generator::ActiveRecord::ModelMatcherGeneratorHelper
- Included in:
- FactoryGenerator, ModelMatcherGenerator
- Defined in:
- lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb
Instance Method Summary collapse
- #filter_active_record_class_names_with_config_options(app_active_record_class_names, generator) ⇒ Object
- #filter_active_record_class_names_with_exclude_option(app_active_record_class_names, exclude_option_active_record_class_names) ⇒ Object
- #filter_active_record_class_names_with_generator_exclude_and_config_options(app_active_record_class_names, generator_exclude_and_config_options_active_record_class_names, generator) ⇒ Object
- #filter_active_record_class_names_with_generator_include_and_config_options(app_active_record_class_names, generator_include_and_config_options_active_record_class_names, generator) ⇒ Object
- #filter_active_record_class_names_with_include_option(app_active_record_class_names, include_option_active_record_class_names) ⇒ Object
- #filter_app_active_record_descendants_names(generator, generator_options, app_active_record_class_names) ⇒ Object
- #get_app_active_record_descendants_names ⇒ Object
- #load_application ⇒ Object
- #save_generate(class_name, generator) ⇒ Object
Instance Method Details
#filter_active_record_class_names_with_config_options(app_active_record_class_names, generator) ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb', line 87 def (app_active_record_class_names, generator) if generator == "model" config_included_option_active_record_class_names = ::ShouldaMatchmakers.configuration.active_record_class_names_included config_excluded_option_active_record_class_names = ::ShouldaMatchmakers.configuration.active_record_class_names_excluded else config_included_option_active_record_class_names = ::ShouldaMatchmakers.configuration.active_record_model_class_names_for_factories_included config_excluded_option_active_record_class_names = ::ShouldaMatchmakers.configuration.active_record_model_class_names_for_factories_excluded end if config_included_option_active_record_class_names.present? filter_active_record_class_names_with_include_option(app_active_record_class_names, config_included_option_active_record_class_names).uniq.sort elsif config_excluded_option_active_record_class_names.present? filter_active_record_class_names_with_exclude_option(app_active_record_class_names, config_excluded_option_active_record_class_names).uniq.sort else [] end end |
#filter_active_record_class_names_with_exclude_option(app_active_record_class_names, exclude_option_active_record_class_names) ⇒ Object
64 65 66 |
# File 'lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb', line 64 def filter_active_record_class_names_with_exclude_option(app_active_record_class_names, exclude_option_active_record_class_names) app_active_record_class_names.map.reject { |app_class_name| exclude_option_active_record_class_names.include? app_class_name }.uniq.sort end |
#filter_active_record_class_names_with_generator_exclude_and_config_options(app_active_record_class_names, generator_exclude_and_config_options_active_record_class_names, generator) ⇒ Object
78 79 80 81 82 83 84 85 |
# File 'lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb', line 78 def (app_active_record_class_names, , generator) selected_active_record_model_names = (app_active_record_class_names, generator) if selected_active_record_model_names.present? filter_active_record_class_names_with_exclude_option(selected_active_record_model_names, ).uniq.sort else filter_active_record_class_names_with_exclude_option(app_active_record_class_names, ).uniq.sort end end |
#filter_active_record_class_names_with_generator_include_and_config_options(app_active_record_class_names, generator_include_and_config_options_active_record_class_names, generator) ⇒ Object
68 69 70 71 72 73 74 75 76 |
# File 'lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb', line 68 def (app_active_record_class_names, , generator) selected_app_active_record_class_names = (app_active_record_class_names, generator) if selected_app_active_record_class_names.present? selected_app_active_record_class_names + filter_active_record_class_names_with_include_option(app_active_record_class_names, ).uniq.sort else filter_active_record_class_names_with_include_option(app_active_record_class_names, ).uniq.sort end end |
#filter_active_record_class_names_with_include_option(app_active_record_class_names, include_option_active_record_class_names) ⇒ Object
60 61 62 |
# File 'lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb', line 60 def filter_active_record_class_names_with_include_option(app_active_record_class_names, include_option_active_record_class_names) app_active_record_class_names.map.select { |app_class_name| include_option_active_record_class_names.include? app_class_name }.uniq.sort end |
#filter_app_active_record_descendants_names(generator, generator_options, app_active_record_class_names) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb', line 30 def filter_app_active_record_descendants_names(generator, , app_active_record_class_names) generator_include_option_active_record_class_names = .fetch('include') generator_exclude_option_active_record_class_names = .fetch('exclude') = .fetch('include_and_config') = .fetch('exclude_and_config') if generator_include_option_active_record_class_names.present? filter_active_record_class_names_with_include_option(app_active_record_class_names, generator_include_option_active_record_class_names) elsif generator_exclude_option_active_record_class_names.present? filter_active_record_class_names_with_exclude_option(app_active_record_class_names, generator_exclude_option_active_record_class_names) elsif .present? (app_active_record_class_names, , generator) elsif .present? (app_active_record_class_names, , generator) else selected_app_active_record_class_names = (app_active_record_class_names, generator) if selected_app_active_record_class_names.present? selected_app_active_record_class_names else app_active_record_class_names.uniq.sort end end end |
#get_app_active_record_descendants_names ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb', line 10 def get_app_active_record_descendants_names if defined?(::ActiveRecord::Base) ::ActiveRecord::Base.descendants.map(&:name) else [] end end |
#load_application ⇒ Object
6 7 8 |
# File 'lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb', line 6 def load_application Rails.application.try(:eager_load!) end |
#save_generate(class_name, generator) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb', line 18 def save_generate(class_name, generator) begin yield rescue => e if generator == "model" puts "Cannot create model spec for #{ class_name }. Reason #{ e. }" else puts "Cannot create factory for #{ class_name }. Reason #{ e. }" end end end |