shoulda_matchmakers 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +21 -0
  4. data/lib/controller/action_controller/action_controller_controller_sm_model.rb +53 -0
  5. data/lib/controller/action_controller/action_controller_controller_sm_model_helper.rb +73 -0
  6. data/lib/controller/action_controller/matchmakers/callbacks.rb +56 -0
  7. data/lib/controller/action_controller/matchmakers/filter_param.rb +69 -0
  8. data/lib/controller/action_controller/matchmakers/permit.rb +510 -0
  9. data/lib/controller/action_controller/matchmakers/redirect_to.rb +126 -0
  10. data/lib/controller/action_controller/matchmakers/render_template.rb +198 -0
  11. data/lib/controller/action_controller/matchmakers/render_with_layout.rb +72 -0
  12. data/lib/controller/action_controller/matchmakers/rescue_from.rb +96 -0
  13. data/lib/controller/action_controller/matchmakers/respond_with.rb +71 -0
  14. data/lib/controller/action_controller/matchmakers/route.rb +586 -0
  15. data/lib/controller/action_controller/matchmakers/set_flash.rb +136 -0
  16. data/lib/controller/action_controller/matchmakers/set_session.rb +115 -0
  17. data/lib/controller/action_controller/permitted_params_definition.rb +60 -0
  18. data/lib/generators/shoulda_matchmakers/controller_matcher_generator.rb +87 -0
  19. data/lib/generators/shoulda_matchmakers/controller_matcher_generator_helper.rb +92 -0
  20. data/lib/generators/shoulda_matchmakers/factory_generator.rb +86 -0
  21. data/lib/generators/shoulda_matchmakers/install_generator.rb +10 -0
  22. data/lib/generators/shoulda_matchmakers/model_matcher_generator.rb +87 -0
  23. data/lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb +107 -0
  24. data/lib/model/active_record/active_record_model_sm_model.rb +50 -0
  25. data/lib/model/active_record/active_record_model_sm_model_helper.rb +206 -0
  26. data/lib/model/active_record/factory_sm_model.rb +28 -0
  27. data/lib/model/active_record/factory_sm_model_helper.rb +124 -0
  28. data/lib/model/active_record/matchmakers/accept_nested_attributes_for.rb +66 -0
  29. data/lib/model/active_record/matchmakers/allow_value.rb +137 -0
  30. data/lib/model/active_record/matchmakers/associations.rb +52 -0
  31. data/lib/model/active_record/matchmakers/define_enum_for.rb +53 -0
  32. data/lib/model/active_record/matchmakers/delegate_method.rb +101 -0
  33. data/lib/model/active_record/matchmakers/have_db_column.rb +33 -0
  34. data/lib/model/active_record/matchmakers/have_db_index.rb +39 -0
  35. data/lib/model/active_record/matchmakers/have_readonly_attribute.rb +32 -0
  36. data/lib/model/active_record/matchmakers/have_secure_password.rb +32 -0
  37. data/lib/model/active_record/matchmakers/serialize.rb +67 -0
  38. data/lib/model/active_record/matchmakers/validations.rb +169 -0
  39. data/lib/model/active_record/options_definition.rb +160 -0
  40. data/lib/shoulda_matchmakers.rb +48 -0
  41. data/lib/shoulda_matchmakers/version.rb +3 -0
  42. data/lib/support/command_line_interface.rb +100 -0
  43. data/lib/support/controller_generator.rb +198 -0
  44. data/lib/support/indefinite_article.rb +70 -0
  45. data/lib/support/to_discard/belong_to.rb +94 -0
  46. data/lib/support/to_discard/have_and_belong_to_many.rb +83 -0
  47. data/lib/support/to_discard/have_many.rb +96 -0
  48. data/lib/support/to_discard/have_one.rb +98 -0
  49. data/lib/support/to_discard/permit_refactor.rb +270 -0
  50. data/lib/support/to_discard/render_template_new.rb +204 -0
  51. data/lib/support/to_discard/render_template_reconstruction.rb +188 -0
  52. data/lib/support/to_discard/use_around_action.rb +20 -0
  53. data/lib/support/to_discard/use_before_action.rb +20 -0
  54. data/lib/support/to_discard/validate_absence_of.rb +16 -0
  55. data/lib/support/to_discard/validate_acceptance_of.rb +16 -0
  56. data/lib/support/to_discard/validate_confirmation_of.rb +16 -0
  57. data/lib/support/to_discard/validate_exclusion_of.rb +145 -0
  58. data/lib/support/to_discard/validate_inclusion_of.rb +94 -0
  59. data/lib/support/to_discard/validate_length_of.rb +16 -0
  60. data/lib/support/to_discard/validate_numericality_of.rb +16 -0
  61. data/lib/support/to_discard/validate_presence_of.rb +16 -0
  62. data/lib/support/to_discard/validate_uniqueness_of.rb +16 -0
  63. data/lib/support/to_discard/validation_old.rb +37 -0
  64. data/lib/support/to_discard/validations.rb +41 -0
  65. data/lib/support/to_discard/validations_conditional.rb +146 -0
  66. data/lib/support/trace_debug_lines.txt +319 -0
  67. data/lib/support/util.rb +15 -0
  68. data/lib/templates/controller/action_controller/controller_spec_template.haml +146 -0
  69. data/lib/templates/factory/active_record/factory_template.haml +13 -0
  70. data/lib/templates/model/active_record/model_spec_template.haml +233 -0
  71. data/lib/templates/shoulda_matchmakers.rb +112 -0
  72. metadata +263 -0
@@ -0,0 +1,13 @@
1
+ = "FactoryGirl.define do"
2
+ = "\n"
3
+
4
+ = " factory :#{ @active_record_model_factory_sm_model.app_class_name.demodulize.underscore }, class: #{ @active_record_model_factory_sm_model.app_class_name } do"
5
+ - factory_attributes = @active_record_model_factory_sm_model.factory_attributes
6
+ - if factory_attributes.present?
7
+ = factory_attributes
8
+ - else
9
+ = "\n"
10
+ = " end"
11
+
12
+ = "\n"
13
+ = "end"
@@ -0,0 +1,233 @@
1
+ = "RSpec.describe #{ @active_record_model_sm_model.app_class_name }, type: :model, shoulda_matchmakers: true do"
2
+
3
+ - belong_to_matcher_tests = @active_record_model_sm_model.association_matcher_tests("belongs_to")
4
+ - have_one_matcher_tests = @active_record_model_sm_model.association_matcher_tests("has_one")
5
+ - have_many_matcher_tests = @active_record_model_sm_model.association_matcher_tests("has_many")
6
+ - have_and_belong_to_many_matcher_tests = @active_record_model_sm_model.association_matcher_tests("has_and_belongs_to_many")
7
+
8
+ - if belong_to_matcher_tests.present? || have_one_matcher_tests.present? || have_many_matcher_tests.present? || |
9
+ have_and_belong_to_many_matcher_tests.present? |
10
+ = "\n"
11
+ \# ------------------------------------------------------------------------------------------------
12
+ \# #### Associations
13
+
14
+ - if belong_to_matcher_tests.present?
15
+ \#
16
+ \# ##### belongs_to
17
+ \#
18
+ = belong_to_matcher_tests
19
+ = "\n"
20
+
21
+ - if have_one_matcher_tests.present?
22
+ \#
23
+ \# ##### has_one
24
+ \#
25
+ = have_one_matcher_tests
26
+ = "\n"
27
+
28
+ - if have_many_matcher_tests.present?
29
+ \#
30
+ \# ##### has_many
31
+ \#
32
+ = have_many_matcher_tests
33
+ = "\n"
34
+
35
+ - if have_and_belong_to_many_matcher_tests.present?
36
+ \#
37
+ \# ##### has_and_belongs_to_many
38
+ \#
39
+ = have_and_belong_to_many_matcher_tests
40
+ = "\n"
41
+
42
+
43
+ - accept_nested_attributes_for_matcher_tests = @active_record_model_sm_model.accept_nested_attributes_for_matcher_tests
44
+ - have_readonly_attribute_matcher_tests = @active_record_model_sm_model.have_readonly_attribute_matcher_tests
45
+ - have_secure_password_matcher_tests = @active_record_model_sm_model.have_secure_password_matcher_tests
46
+
47
+ - if accept_nested_attributes_for_matcher_tests.present? || have_readonly_attribute_matcher_tests.present? || |
48
+ have_secure_password_matcher_tests.present? |
49
+ = "\n"
50
+ \# ------------------------------------------------------------------------------------------------
51
+ \# #### Attributes
52
+
53
+ - if accept_nested_attributes_for_matcher_tests.present?
54
+ \#
55
+ \# ##### accept_nested_attributes_for
56
+ \#
57
+ = accept_nested_attributes_for_matcher_tests
58
+ = "\n"
59
+
60
+ - if have_readonly_attribute_matcher_tests.present?
61
+ \#
62
+ \# ##### have_readonly_attribute
63
+ \#
64
+ = have_readonly_attribute_matcher_tests
65
+ = "\n"
66
+
67
+ - if have_secure_password_matcher_tests.present?
68
+ \#
69
+ \# ##### have_secure_password
70
+ \#
71
+ = have_secure_password_matcher_tests
72
+ = "\n"
73
+
74
+
75
+ - have_db_column_matcher_tests = @active_record_model_sm_model.have_db_column_matcher_tests
76
+ - have_db_index_matcher_tests = @active_record_model_sm_model.have_db_index_matcher_tests
77
+
78
+ - if have_db_column_matcher_tests.present? || have_db_index_matcher_tests.present?
79
+ = "\n"
80
+ \# ------------------------------------------------------------------------------------------------
81
+ \# #### Database
82
+
83
+ - if have_db_column_matcher_tests.present?
84
+ \#
85
+ \# ##### columns
86
+ \#
87
+ = have_db_column_matcher_tests
88
+ = "\n"
89
+
90
+ - if have_db_index_matcher_tests.present?
91
+ \#
92
+ \# ##### indexes
93
+ \#
94
+ = have_db_index_matcher_tests
95
+ = "\n"
96
+
97
+
98
+ - if ShouldaMatchmakers.configuration.include_enums
99
+ - define_enum_for_matcher_tests = @active_record_model_sm_model.define_enum_for_matcher_tests || ""
100
+ - serialize_matcher_tests = @active_record_model_sm_model.serialize_matcher_tests
101
+
102
+ - if define_enum_for_matcher_tests.present? || serialize_matcher_tests.present?
103
+ = "\n"
104
+ \# ------------------------------------------------------------------------------------------------
105
+ \# #### Enums & Serialize
106
+
107
+ - if define_enum_for_matcher_tests.present?
108
+ \#
109
+ \# ##### enums
110
+ \#
111
+ = define_enum_for_matcher_tests
112
+ = "\n"
113
+
114
+ - if serialize_matcher_tests.present?
115
+ \#
116
+ \# ##### serialize
117
+ \#
118
+ = serialize_matcher_tests
119
+ = "\n"
120
+
121
+
122
+ - delegate_method_matcher_tests = @active_record_model_sm_model.delegate_method_matcher_tests
123
+
124
+ - if delegate_method_matcher_tests.present?
125
+ = "\n"
126
+ \# ------------------------------------------------------------------------------------------------
127
+ \# #### Methods
128
+
129
+ - if delegate_method_matcher_tests.present?
130
+ \#
131
+ \# ##### delegate_method
132
+ \#
133
+ = delegate_method_matcher_tests
134
+ = "\n"
135
+
136
+
137
+ - allow_value_matcher_tests = @active_record_model_sm_model.allow_value_matcher_tests
138
+ - validate_absence_of_matcher_tests = @active_record_model_sm_model.validator_matcher_tests(::ActiveModel::Validations::AbsenceValidator)
139
+ - validate_acceptance_of_matcher_tests = @active_record_model_sm_model.validator_matcher_tests(::ActiveModel::Validations::AcceptanceValidator)
140
+ - validate_confirmation_of_matcher_tests = @active_record_model_sm_model.validator_matcher_tests(::ActiveModel::Validations::ConfirmationValidator)
141
+ - validate_exclusion_of_matcher_tests = @active_record_model_sm_model.validator_matcher_tests(::ActiveModel::Validations::ExclusionValidator)
142
+ - validate_inclusion_of_matcher_tests = @active_record_model_sm_model.validator_matcher_tests(::ActiveModel::Validations::InclusionValidator)
143
+ - validate_length_of_matcher_tests = @active_record_model_sm_model.validator_matcher_tests(::ActiveModel::Validations::LengthValidator)
144
+ - validate_numericality_of_matcher_tests = @active_record_model_sm_model.validator_matcher_tests(::ActiveModel::Validations::NumericalityValidator)
145
+ - validate_presence_of_matcher_tests = @active_record_model_sm_model.validator_matcher_tests(::ActiveRecord::Validations::PresenceValidator)
146
+ - validate_uniqueness_of_matcher_tests = @active_record_model_sm_model.validator_matcher_tests(::ActiveRecord::Validations::UniquenessValidator)
147
+
148
+ - if allow_value_matcher_tests.present? || validate_absence_of_matcher_tests.present? || |
149
+ validate_acceptance_of_matcher_tests.present? || validate_confirmation_of_matcher_tests.present? || |
150
+ validate_exclusion_of_matcher_tests.present? || validate_inclusion_of_matcher_tests.present? || |
151
+ validate_length_of_matcher_tests.present? || validate_numericality_of_matcher_tests.present? || |
152
+ validate_presence_of_matcher_tests.present? || validate_uniqueness_of_matcher_tests.present? |
153
+ = "\n"
154
+ \# ------------------------------------------------------------------------------------------------
155
+ \# #### Validations
156
+
157
+ - if allow_value_matcher_tests.present?
158
+ \#
159
+ \# ##### allow_value
160
+ \#
161
+ \# Remove the 'x' from 'xit' once values are entered.
162
+ \# If your allowed values are only a single value, use: 'is_expected.to allow_value' (singular)
163
+ = allow_value_matcher_tests
164
+ = "\n"
165
+
166
+ - if validate_absence_of_matcher_tests.present?
167
+ \#
168
+ \# ##### validate_absence_of
169
+ \#
170
+ = validate_absence_of_matcher_tests
171
+ = "\n"
172
+
173
+ - if validate_acceptance_of_matcher_tests.present?
174
+ \#
175
+ \# ##### validate_acceptance_of
176
+ \#
177
+ = validate_acceptance_of_matcher_tests
178
+ = "\n"
179
+
180
+ - if validate_confirmation_of_matcher_tests.present?
181
+ \#
182
+ \# ##### validate_confirmation_of
183
+ \#
184
+ = validate_confirmation_of_matcher_tests
185
+ = "\n"
186
+
187
+ - if validate_exclusion_of_matcher_tests.present?
188
+ \#
189
+ \# ##### validate_exclusion_of
190
+ \#
191
+ = validate_exclusion_of_matcher_tests
192
+ = "\n"
193
+
194
+ - if validate_inclusion_of_matcher_tests.present?
195
+ \#
196
+ \# ##### validate_inclusion_of
197
+ \#
198
+ = validate_inclusion_of_matcher_tests
199
+ = "\n"
200
+
201
+ - if validate_length_of_matcher_tests.present?
202
+ \#
203
+ \# ##### validate_length_of
204
+ \#
205
+ = validate_length_of_matcher_tests
206
+ = "\n"
207
+
208
+ - if validate_numericality_of_matcher_tests.present?
209
+ \#
210
+ \# ##### validate_numericality_of
211
+ \#
212
+ = validate_numericality_of_matcher_tests
213
+ = "\n"
214
+
215
+ - if validate_presence_of_matcher_tests.present?
216
+ \#
217
+ \# ##### validate_presence_of
218
+ \#
219
+ = validate_presence_of_matcher_tests
220
+ = "\n"
221
+
222
+ - if validate_uniqueness_of_matcher_tests.present?
223
+ \#
224
+ \# ##### validate_uniqueness_of
225
+ \#
226
+ \# It is recommended that you review the caveat for the 'validate_uniqueness_of' matcher here:
227
+ \# https://github.com/thoughtbot/shoulda-matchers/blob/master/lib/shoulda/matchers/active_record/validate_uniqueness_of_matcher.rb
228
+ \#
229
+ = validate_uniqueness_of_matcher_tests
230
+ = "\n"
231
+
232
+
233
+ = "end"
@@ -0,0 +1,112 @@
1
+ if defined?(ShouldaMatchmakers) && Rails.env.test?
2
+
3
+ ShouldaMatchmakers.configure do |config|
4
+
5
+ ## MODELS
6
+
7
+ # Path for ActiveRecord model generated test files
8
+ # Default is 'spec/shoulda_matchmakers/models' so as not to overwrite your existing tests
9
+ #
10
+ # config.active_record_model_tests_path = 'spec/shoulda_matchmakers/models/active_record'
11
+
12
+ # Class names of ActiveRecord models to INCLUDE in the generation of tests.
13
+ # Configuration value should be an array of String (include namespaces)
14
+ # Example: %w(Driver License Vehicle::Car Vehicle::Bus)
15
+ #
16
+ # By default, ShouldaMatchmakers model test generator includes all ActiveRecord::Base.descendants
17
+ # If values are set for this option AND the 'config.active_record_class_names_excluded' option,
18
+ # this option will be applied and the '_excluded' option will be ignored.
19
+ #
20
+ # config.active_record_class_names_included = %w()
21
+
22
+ # Class names of ActiveRecord models to EXCLUDE from the generation of tests.
23
+ # Configuration value should be an array of String (include namespaces)
24
+ # Example: %w(Driver Vehicle::Car)
25
+ #
26
+ # By default, ShouldaMatchmakers model test generator excludes no ActiveRecord::Base.descendants
27
+ # If values are set for this option and the 'config.active_record_class_names_included' option,
28
+ # the '_included' option will be applied and this option will be ignored.
29
+ #
30
+ # config.active_record_class_names_excluded = %w()
31
+
32
+
33
+ ## CONTROLLERS
34
+
35
+ # Path for ActionController controller generated test files
36
+ # Default is 'spec/shoulda_matchmakers/controllers' so as not to overwrite your existing tests
37
+ #
38
+ # config.action_controller_controller_tests_path = 'spec/shoulda_matchmakers/controllers/action_controller'
39
+
40
+ # Names of ActionController controllers to INCLUDE in the generation of tests.
41
+ # Configuration value should be an array of String (include namespaces)
42
+ # Example: %w(DriversController LicensesController Vehicle::CarsController Vehicle::BusesController)
43
+ #
44
+ # By default, ShouldaMatchmakers controller test generator includes all ActionController::Base.descendants.
45
+ # If values are set for this option AND the 'config.action_controller_controller_names_excluded' option,
46
+ # this option will be applied and the '_excluded' option will be ignored.
47
+ #
48
+ # config.action_controller_controller_names_included = %w()
49
+
50
+ # Names of ActionController controllers to EXCLUDE from the generation of tests.
51
+ # Configuration value should be an array of String (include namespaces)
52
+ # Example: %w(DriversController Vehicle::CarsController)
53
+ #
54
+ # By default, ShouldaMatchmakers controller test generator excludes no ActionController::Base.descendants.
55
+ # If values are set for this option AND the 'config.action_controller_controller_names_included' option,
56
+ # the '_included' option will be applied and this option will be ignored.
57
+ #
58
+ # config.action_controller_controller_names_excluded = %w()
59
+
60
+
61
+ ## FACTORIES
62
+
63
+ # Path for ActiveRecord model generated factory files
64
+ # Default is 'spec/shoulda_matchmakers/factories' so as not to overwrite your existing factories
65
+ #
66
+ # config.active_record_model_factories_path = 'spec/shoulda_matchmakers/factories/active_record'
67
+
68
+ # Class names of ActiveRecord models to INCLUDE in the generation of factories.
69
+ # Configuration value should be an array of String (include namespaces)
70
+ # Example: %w(Driver License Vehicle::Car Vehicle::Bus)
71
+ #
72
+ # By default, the ShouldaMatchmakers factory generator includes all ActiveRecord::Base.descendants.
73
+ # If values are set for this option AND the 'config.active_record_models_for_factories_excluded'
74
+ # option, this option will be applied and the '_excluded' option will be ignored.
75
+ #
76
+ # config.active_record_model_class_names_for_factories_included = %w()
77
+
78
+ # Class names of ActiveRecord models to EXCLUDE from the generation of factories.
79
+ # Configuration value should be an array of String (include namespaces)
80
+ # Example: %w(Driver Vehicle::Car)
81
+ #
82
+ # By default, the ShouldaMatchmakers factory generator excludes no ActiveRecord::Base.descendants.
83
+ # If values are set for this option AND the 'config.active_record_models_for_factories_included'
84
+ # option, the '_included' option will be applied and this option will be ignored.
85
+ #
86
+ # config.active_record_model_class_names_for_factories_excluded = %w()
87
+
88
+
89
+ ## SHOULDA MATCHMAKERS SETTINGS
90
+
91
+ # Enables generation of tests for enums (Rails 4.0+).
92
+ # If your version is below Rails 4, set this option to false.
93
+ # Default sets this option to true.
94
+ #
95
+ # config.include_enums = true
96
+
97
+ # Preferred length of generated code lines
98
+ # Wherever possible, generated code lines will be broken into multiple lines to keep lines under
99
+ # your preferred length.
100
+ # The default value is '100' characters.
101
+ #
102
+ # Note: Due to the fact that tests and factories are generated dynamically, lead spacing/tabbing
103
+ # for each generated line of code is difficult to predict. Therefore, your preferred line length
104
+ # may, at times, be exceeded as a result of this varying indentation. It may also be exceeded if
105
+ # there is an inability to break a line further, either due to syntax rules or for the preservation
106
+ # of readability. If line length is critical, account for this variation in the value you choose.
107
+ #
108
+ # config.preferred_generated_code_line_length = 100
109
+
110
+ end
111
+
112
+ end
metadata ADDED
@@ -0,0 +1,263 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shoulda_matchmakers
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Tim Edwards
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-12-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: shoulda-matchers
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.1.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 3.1.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: rails
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '4.2'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 4.2.7
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '4.2'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 4.2.7
53
+ - !ruby/object:Gem::Dependency
54
+ name: haml
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '4.0'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 4.0.7
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '4.0'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 4.0.7
73
+ - !ruby/object:Gem::Dependency
74
+ name: haml-rails
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: 0.9.0
80
+ type: :runtime
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: 0.9.0
87
+ - !ruby/object:Gem::Dependency
88
+ name: spin_to_win
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: 0.1.2
94
+ type: :runtime
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: 0.1.2
101
+ - !ruby/object:Gem::Dependency
102
+ name: pg
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - "~>"
106
+ - !ruby/object:Gem::Version
107
+ version: '0.18'
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 0.18.4
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.18'
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 0.18.4
121
+ - !ruby/object:Gem::Dependency
122
+ name: generator_spec
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ type: :development
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ - !ruby/object:Gem::Dependency
136
+ name: rspec-rails
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '3.5'
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 3.5.2
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '3.5'
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 3.5.2
155
+ description: |2
156
+ Shoulda Matchmakers generates regression specs for existing ActiveRecord models and ActionController controllers
157
+ using Shoulda Matchers. It generates specs for model validations, associations, nested attributes, enum definitions,
158
+ attribute serialization, database columns and database indexes as well as controller REST routes, and
159
+ before/after/around actions/filters. It can also generate FactoryGirl factories containing the minimum attributes
160
+ required for the factory to create a valid object.
161
+
162
+ Shoulda Matchmakers is based on the Regressor gem by Erwin Schens.
163
+ email:
164
+ - appomatix.software@gmail.com
165
+ executables: []
166
+ extensions: []
167
+ extra_rdoc_files: []
168
+ files:
169
+ - MIT-LICENSE
170
+ - Rakefile
171
+ - lib/controller/action_controller/action_controller_controller_sm_model.rb
172
+ - lib/controller/action_controller/action_controller_controller_sm_model_helper.rb
173
+ - lib/controller/action_controller/matchmakers/callbacks.rb
174
+ - lib/controller/action_controller/matchmakers/filter_param.rb
175
+ - lib/controller/action_controller/matchmakers/permit.rb
176
+ - lib/controller/action_controller/matchmakers/redirect_to.rb
177
+ - lib/controller/action_controller/matchmakers/render_template.rb
178
+ - lib/controller/action_controller/matchmakers/render_with_layout.rb
179
+ - lib/controller/action_controller/matchmakers/rescue_from.rb
180
+ - lib/controller/action_controller/matchmakers/respond_with.rb
181
+ - lib/controller/action_controller/matchmakers/route.rb
182
+ - lib/controller/action_controller/matchmakers/set_flash.rb
183
+ - lib/controller/action_controller/matchmakers/set_session.rb
184
+ - lib/controller/action_controller/permitted_params_definition.rb
185
+ - lib/generators/shoulda_matchmakers/controller_matcher_generator.rb
186
+ - lib/generators/shoulda_matchmakers/controller_matcher_generator_helper.rb
187
+ - lib/generators/shoulda_matchmakers/factory_generator.rb
188
+ - lib/generators/shoulda_matchmakers/install_generator.rb
189
+ - lib/generators/shoulda_matchmakers/model_matcher_generator.rb
190
+ - lib/generators/shoulda_matchmakers/model_matcher_generator_helper.rb
191
+ - lib/model/active_record/active_record_model_sm_model.rb
192
+ - lib/model/active_record/active_record_model_sm_model_helper.rb
193
+ - lib/model/active_record/factory_sm_model.rb
194
+ - lib/model/active_record/factory_sm_model_helper.rb
195
+ - lib/model/active_record/matchmakers/accept_nested_attributes_for.rb
196
+ - lib/model/active_record/matchmakers/allow_value.rb
197
+ - lib/model/active_record/matchmakers/associations.rb
198
+ - lib/model/active_record/matchmakers/define_enum_for.rb
199
+ - lib/model/active_record/matchmakers/delegate_method.rb
200
+ - lib/model/active_record/matchmakers/have_db_column.rb
201
+ - lib/model/active_record/matchmakers/have_db_index.rb
202
+ - lib/model/active_record/matchmakers/have_readonly_attribute.rb
203
+ - lib/model/active_record/matchmakers/have_secure_password.rb
204
+ - lib/model/active_record/matchmakers/serialize.rb
205
+ - lib/model/active_record/matchmakers/validations.rb
206
+ - lib/model/active_record/options_definition.rb
207
+ - lib/shoulda_matchmakers.rb
208
+ - lib/shoulda_matchmakers/version.rb
209
+ - lib/support/command_line_interface.rb
210
+ - lib/support/controller_generator.rb
211
+ - lib/support/indefinite_article.rb
212
+ - lib/support/to_discard/belong_to.rb
213
+ - lib/support/to_discard/have_and_belong_to_many.rb
214
+ - lib/support/to_discard/have_many.rb
215
+ - lib/support/to_discard/have_one.rb
216
+ - lib/support/to_discard/permit_refactor.rb
217
+ - lib/support/to_discard/render_template_new.rb
218
+ - lib/support/to_discard/render_template_reconstruction.rb
219
+ - lib/support/to_discard/use_around_action.rb
220
+ - lib/support/to_discard/use_before_action.rb
221
+ - lib/support/to_discard/validate_absence_of.rb
222
+ - lib/support/to_discard/validate_acceptance_of.rb
223
+ - lib/support/to_discard/validate_confirmation_of.rb
224
+ - lib/support/to_discard/validate_exclusion_of.rb
225
+ - lib/support/to_discard/validate_inclusion_of.rb
226
+ - lib/support/to_discard/validate_length_of.rb
227
+ - lib/support/to_discard/validate_numericality_of.rb
228
+ - lib/support/to_discard/validate_presence_of.rb
229
+ - lib/support/to_discard/validate_uniqueness_of.rb
230
+ - lib/support/to_discard/validation_old.rb
231
+ - lib/support/to_discard/validations.rb
232
+ - lib/support/to_discard/validations_conditional.rb
233
+ - lib/support/trace_debug_lines.txt
234
+ - lib/support/util.rb
235
+ - lib/templates/controller/action_controller/controller_spec_template.haml
236
+ - lib/templates/factory/active_record/factory_template.haml
237
+ - lib/templates/model/active_record/model_spec_template.haml
238
+ - lib/templates/shoulda_matchmakers.rb
239
+ homepage: https://github.com/app-o-matix/shoulda_matchmakers
240
+ licenses:
241
+ - MIT
242
+ metadata: {}
243
+ post_install_message:
244
+ rdoc_options: []
245
+ require_paths:
246
+ - lib
247
+ required_ruby_version: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - ">="
250
+ - !ruby/object:Gem::Version
251
+ version: '0'
252
+ required_rubygems_version: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ version: '0'
257
+ requirements: []
258
+ rubyforge_project:
259
+ rubygems_version: 2.6.8
260
+ signing_key:
261
+ specification_version: 4
262
+ summary: Generates regression specs using Shoulda Matchers
263
+ test_files: []