shoulda-matchers 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. data/.gitignore +11 -0
  2. data/.travis.yml +13 -0
  3. data/Appraisals +4 -6
  4. data/CONTRIBUTING.md +38 -0
  5. data/Gemfile +8 -5
  6. data/Gemfile.lock +77 -41
  7. data/NEWS.md +32 -0
  8. data/README.md +84 -0
  9. data/Rakefile +5 -36
  10. data/features/rails_integration.feature +88 -0
  11. data/features/step_definitions/rails_steps.rb +111 -0
  12. data/features/support/env.rb +5 -0
  13. data/gemfiles/3.0.gemfile +14 -0
  14. data/gemfiles/3.0.gemfile.lock +142 -0
  15. data/gemfiles/3.1.gemfile +16 -0
  16. data/gemfiles/3.1.gemfile.lock +164 -0
  17. data/lib/shoulda/matchers/action_controller/assign_to_matcher.rb +6 -9
  18. data/lib/shoulda/matchers/action_controller/filter_param_matcher.rb +1 -3
  19. data/lib/shoulda/matchers/action_controller/redirect_to_matcher.rb +10 -6
  20. data/lib/shoulda/matchers/action_controller/render_template_matcher.rb +1 -4
  21. data/lib/shoulda/matchers/action_controller/render_with_layout_matcher.rb +6 -6
  22. data/lib/shoulda/matchers/action_controller/respond_with_content_type_matcher.rb +11 -10
  23. data/lib/shoulda/matchers/action_controller/respond_with_matcher.rb +0 -2
  24. data/lib/shoulda/matchers/action_controller/route_matcher.rb +17 -14
  25. data/lib/shoulda/matchers/action_controller/set_session_matcher.rb +24 -16
  26. data/lib/shoulda/matchers/action_controller/set_the_flash_matcher.rb +52 -15
  27. data/lib/shoulda/matchers/action_mailer.rb +1 -1
  28. data/lib/shoulda/matchers/action_mailer/{have_sent_email.rb → have_sent_email_matcher.rb} +37 -21
  29. data/lib/shoulda/matchers/active_model.rb +1 -0
  30. data/lib/shoulda/matchers/active_model/allow_mass_assignment_of_matcher.rb +9 -10
  31. data/lib/shoulda/matchers/active_model/allow_value_matcher.rb +60 -33
  32. data/lib/shoulda/matchers/active_model/ensure_length_of_matcher.rb +0 -1
  33. data/lib/shoulda/matchers/active_model/helpers.rb +13 -9
  34. data/lib/shoulda/matchers/active_model/validate_confirmation_of_matcher.rb +63 -0
  35. data/lib/shoulda/matchers/active_model/validate_numericality_of_matcher.rb +38 -8
  36. data/lib/shoulda/matchers/active_model/validation_matcher.rb +1 -5
  37. data/lib/shoulda/matchers/active_record.rb +3 -1
  38. data/lib/shoulda/matchers/active_record/accept_nested_attributes_for_matcher.rb +127 -0
  39. data/lib/shoulda/matchers/active_record/association_matcher.rb +19 -7
  40. data/lib/shoulda/matchers/active_record/have_db_column_matcher.rb +20 -5
  41. data/lib/shoulda/matchers/active_record/have_db_index_matcher.rb +4 -10
  42. data/lib/shoulda/matchers/active_record/have_readonly_attribute_matcher.rb +3 -7
  43. data/lib/shoulda/matchers/active_record/query_the_database_matcher.rb +107 -0
  44. data/lib/shoulda/matchers/active_record/serialize_matcher.rb +111 -0
  45. data/lib/shoulda/matchers/integrations/rspec.rb +0 -1
  46. data/lib/shoulda/matchers/version.rb +1 -1
  47. data/shoulda-matchers.gemspec +30 -0
  48. data/spec/fixtures/addresses.yml +3 -0
  49. data/spec/fixtures/friendships.yml +0 -0
  50. data/spec/fixtures/posts.yml +5 -0
  51. data/spec/fixtures/products.yml +0 -0
  52. data/spec/fixtures/taggings.yml +0 -0
  53. data/spec/fixtures/tags.yml +9 -0
  54. data/spec/fixtures/users.yml +6 -0
  55. data/spec/shoulda/action_controller/assign_to_matcher_spec.rb +61 -0
  56. data/spec/shoulda/action_controller/filter_param_matcher_spec.rb +20 -0
  57. data/spec/shoulda/action_controller/redirect_to_matcher_spec.rb +40 -0
  58. data/spec/shoulda/action_controller/render_template_matcher_spec.rb +69 -0
  59. data/spec/shoulda/action_controller/render_with_layout_matcher_spec.rb +47 -0
  60. data/spec/shoulda/action_controller/respond_with_content_type_matcher_spec.rb +28 -0
  61. data/spec/shoulda/action_controller/respond_with_matcher_spec.rb +83 -0
  62. data/spec/shoulda/action_controller/route_matcher_spec.rb +65 -0
  63. data/spec/shoulda/action_controller/set_session_matcher_spec.rb +46 -0
  64. data/spec/shoulda/action_controller/set_the_flash_matcher_spec.rb +124 -0
  65. data/spec/shoulda/action_mailer/have_sent_email_spec.rb +293 -0
  66. data/spec/shoulda/active_model/allow_mass_assignment_of_matcher_spec.rb +95 -0
  67. data/spec/shoulda/active_model/allow_value_matcher_spec.rb +91 -0
  68. data/spec/shoulda/active_model/ensure_exclusion_of_matcher_spec.rb +57 -0
  69. data/spec/shoulda/active_model/ensure_inclusion_of_matcher_spec.rb +71 -0
  70. data/spec/shoulda/active_model/ensure_length_of_matcher_spec.rb +125 -0
  71. data/spec/shoulda/active_model/helpers_spec.rb +100 -0
  72. data/spec/shoulda/active_model/validate_acceptance_of_matcher_spec.rb +43 -0
  73. data/spec/shoulda/active_model/validate_confirmation_of_matcher_spec.rb +48 -0
  74. data/spec/shoulda/active_model/validate_format_of_matcher_spec.rb +38 -0
  75. data/spec/shoulda/active_model/validate_numericality_of_matcher_spec.rb +62 -0
  76. data/spec/shoulda/active_model/validate_presence_of_matcher_spec.rb +121 -0
  77. data/spec/shoulda/active_model/validate_uniqueness_of_matcher_spec.rb +143 -0
  78. data/spec/shoulda/active_record/accept_nested_attributes_for_matcher_spec.rb +84 -0
  79. data/spec/shoulda/active_record/association_matcher_spec.rb +449 -0
  80. data/spec/shoulda/active_record/have_db_column_matcher_spec.rb +185 -0
  81. data/spec/shoulda/active_record/have_db_index_matcher_spec.rb +88 -0
  82. data/spec/shoulda/active_record/have_readonly_attributes_matcher_spec.rb +46 -0
  83. data/spec/shoulda/active_record/query_the_database_matcher_spec.rb +45 -0
  84. data/spec/shoulda/active_record/serialize_matcher_spec.rb +81 -0
  85. data/spec/spec_helper.rb +31 -0
  86. data/spec/support/model_builder.rb +149 -0
  87. metadata +211 -60
  88. data/CONTRIBUTION_GUIDELINES.rdoc +0 -10
  89. data/README.rdoc +0 -80
@@ -0,0 +1,31 @@
1
+ # Create Rails environment based on the version given from Appraisal
2
+ TESTAPP_ROOT = File.join(File.dirname(__FILE__), '..', 'tmp', 'aruba', 'testapp')
3
+ FileUtils.rm_rf(TESTAPP_ROOT) if File.exists?(TESTAPP_ROOT)
4
+ `rails new #{TESTAPP_ROOT}`
5
+
6
+ ENV['RAILS_ENV'] = 'test'
7
+ ENV['BUNDLE_GEMFILE'] ||= TESTAPP_ROOT + '/Gemfile'
8
+
9
+ require "#{TESTAPP_ROOT}/config/environment"
10
+ require 'rspec'
11
+ require 'bourne'
12
+ require 'shoulda-matchers'
13
+ require 'rspec/rails'
14
+
15
+ PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..')).freeze
16
+
17
+ $LOAD_PATH << File.join(PROJECT_ROOT, 'lib')
18
+
19
+ Dir[File.join(PROJECT_ROOT, 'spec', 'support', '**', '*.rb')].each { |file| require(file) }
20
+
21
+ # Run the migrations
22
+ ActiveRecord::Migration.verbose = false
23
+ ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate")
24
+
25
+ RSpec.configure do |config|
26
+ config.mock_with :mocha
27
+ config.include Shoulda::Matchers::ActionController,
28
+ :example_group => { :file_path => /action_controller/ }
29
+ config.include Shoulda::Matchers::ActionMailer,
30
+ :example_group => { :file_path => /action_mailer/ }
31
+ end
@@ -0,0 +1,149 @@
1
+ module ModelBuilder
2
+ TMP_VIEW_PATH =
3
+ File.expand_path(File.join(TESTAPP_ROOT, 'tmp', 'views')).freeze
4
+
5
+ def self.included(example_group)
6
+ example_group.class_eval do
7
+ before do
8
+ @created_tables ||= []
9
+ end
10
+
11
+ after do
12
+ teardown_defined_constants
13
+ end
14
+ end
15
+ end
16
+
17
+ def create_table(table_name, options = {}, &block)
18
+ connection = ActiveRecord::Base.connection
19
+
20
+ begin
21
+ connection.execute("DROP TABLE IF EXISTS #{table_name}")
22
+ connection.create_table(table_name, options, &block)
23
+ @created_tables << table_name
24
+ connection
25
+ rescue Exception => e
26
+ connection.execute("DROP TABLE IF EXISTS #{table_name}")
27
+ raise e
28
+ end
29
+ end
30
+
31
+ def define_constant(class_name, base = Object, &block)
32
+ class_name = class_name.to_s.camelize
33
+
34
+ Class.new(base).tap do |constant_class|
35
+ Object.const_set(class_name, constant_class)
36
+ constant_class.unloadable
37
+
38
+ if block_given?
39
+ constant_class.class_eval(&block)
40
+ end
41
+
42
+ if constant_class.respond_to?(:reset_column_information)
43
+ constant_class.reset_column_information
44
+ end
45
+ end
46
+ end
47
+
48
+ def define_model_class(class_name, &block)
49
+ define_constant(class_name, ActiveRecord::Base, &block)
50
+ end
51
+
52
+ def define_active_model_class(class_name, options = {}, &block)
53
+ define_constant(class_name, Object) do
54
+ include ActiveModel::Validations
55
+
56
+ options[:accessors].each do |column|
57
+ attr_accessor column.to_sym
58
+ end
59
+
60
+ if block_given?
61
+ class_eval(&block)
62
+ end
63
+ end
64
+ end
65
+
66
+ def define_model(name, columns = {}, &block)
67
+ class_name = name.to_s.pluralize.classify
68
+ table_name = class_name.tableize
69
+
70
+ create_table(table_name) do |table|
71
+ columns.each do |name, type|
72
+ table.column name, type
73
+ end
74
+ end
75
+
76
+ define_model_class(class_name, &block)
77
+ end
78
+
79
+ def define_mailer(name, paths, &block)
80
+ class_name = name.to_s.pluralize.classify
81
+ define_constant(class_name, ActionMailer::Base, &block)
82
+ end
83
+
84
+ def define_controller(class_name, &block)
85
+ class_name = class_name.to_s
86
+ class_name << 'Controller' unless class_name =~ /Controller$/
87
+ define_constant(class_name, ActionController::Base, &block)
88
+ end
89
+
90
+ def define_routes(&block)
91
+ Rails.application.routes.draw(&block)
92
+ @routes = Rails.application.routes
93
+ class << self
94
+ include ActionDispatch::Assertions
95
+ end
96
+ end
97
+
98
+ def build_response(opts = {}, &block)
99
+ action = opts[:action] || 'example'
100
+ partial = opts[:partial] || '_partial'
101
+ klass = define_controller('Examples')
102
+ block ||= lambda { render :nothing => true }
103
+ klass.class_eval { layout false; define_method(action, &block) }
104
+ define_routes do
105
+ match 'examples', :to => "examples##{action}"
106
+ end
107
+
108
+ create_view("examples/#{action}.html.erb", "abc")
109
+ create_view("examples/#{partial}.html.erb", "partial")
110
+ klass.view_paths = [TMP_VIEW_PATH]
111
+
112
+ @controller = klass.new
113
+ @request = ActionController::TestRequest.new
114
+ @response = ActionController::TestResponse.new
115
+
116
+ class << self
117
+ include ActionController::TestCase::Behavior
118
+ end
119
+ @routes = Rails.application.routes
120
+
121
+ get action
122
+
123
+ @controller
124
+ end
125
+
126
+ def create_view(path, contents)
127
+ full_path = File.join(TMP_VIEW_PATH, path)
128
+ FileUtils.mkdir_p(File.dirname(full_path))
129
+ File.open(full_path, 'w') { |file| file.write(contents) }
130
+ end
131
+
132
+ def teardown_defined_constants
133
+ ActiveSupport::Dependencies.clear
134
+
135
+ connection = ActiveRecord::Base.connection
136
+
137
+ @created_tables.each do |table_name|
138
+ connection.execute("DROP TABLE IF EXISTS #{table_name}")
139
+ end
140
+
141
+ FileUtils.rm_rf(TMP_VIEW_PATH)
142
+
143
+ Rails.application.reload_routes!
144
+ end
145
+ end
146
+
147
+ RSpec.configure do |config|
148
+ config.include ModelBuilder
149
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shoulda-matchers
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 0
10
- version: 1.0.0
10
+ version: 1.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tammer Saleh
@@ -20,106 +20,178 @@ autorequire:
20
20
  bindir: bin
21
21
  cert_chain: []
22
22
 
23
- date: 2011-11-01 00:00:00 -04:00
24
- default_executable:
23
+ date: 2012-04-13 00:00:00 Z
25
24
  dependencies:
26
25
  - !ruby/object:Gem::Dependency
27
- name: mocha
26
+ name: activesupport
27
+ version_requirements: &id001 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ hash: 7
33
+ segments:
34
+ - 3
35
+ - 0
36
+ - 0
37
+ version: 3.0.0
38
+ type: :runtime
28
39
  prerelease: false
29
- requirement: &id001 !ruby/object:Gem::Requirement
40
+ requirement: *id001
41
+ - !ruby/object:Gem::Dependency
42
+ name: appraisal
43
+ version_requirements: &id002 !ruby/object:Gem::Requirement
30
44
  none: false
31
45
  requirements:
32
46
  - - ~>
33
47
  - !ruby/object:Gem::Version
34
- hash: 47
48
+ hash: 15
35
49
  segments:
36
50
  - 0
37
- - 9
38
- - 10
39
- version: 0.9.10
51
+ - 4
52
+ - 0
53
+ version: 0.4.0
40
54
  type: :development
41
- version_requirements: *id001
55
+ prerelease: false
56
+ requirement: *id002
42
57
  - !ruby/object:Gem::Dependency
43
- name: rspec-rails
58
+ name: aruba
59
+ version_requirements: &id003 !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ type: :development
44
69
  prerelease: false
45
- requirement: &id002 !ruby/object:Gem::Requirement
70
+ requirement: *id003
71
+ - !ruby/object:Gem::Dependency
72
+ name: bourne
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
46
74
  none: false
47
75
  requirements:
48
76
  - - ~>
49
77
  - !ruby/object:Gem::Version
50
- hash: 62196361
78
+ hash: 23
51
79
  segments:
80
+ - 1
81
+ - 1
52
82
  - 2
53
- - 6
83
+ version: 1.1.2
84
+ type: :development
85
+ prerelease: false
86
+ requirement: *id004
87
+ - !ruby/object:Gem::Dependency
88
+ name: bundler
89
+ version_requirements: &id005 !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ hash: 19
95
+ segments:
54
96
  - 1
55
- - beta
56
97
  - 1
57
- version: 2.6.1.beta1
98
+ - 0
99
+ version: 1.1.0
58
100
  type: :development
59
- version_requirements: *id002
101
+ prerelease: false
102
+ requirement: *id005
60
103
  - !ruby/object:Gem::Dependency
61
104
  name: cucumber
105
+ version_requirements: &id006 !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ hash: 1
111
+ segments:
112
+ - 1
113
+ - 1
114
+ - 9
115
+ version: 1.1.9
116
+ type: :development
62
117
  prerelease: false
63
- requirement: &id003 !ruby/object:Gem::Requirement
118
+ requirement: *id006
119
+ - !ruby/object:Gem::Dependency
120
+ name: rails
121
+ version_requirements: &id007 !ruby/object:Gem::Requirement
64
122
  none: false
65
123
  requirements:
66
124
  - - ~>
67
125
  - !ruby/object:Gem::Version
68
- hash: 55
126
+ hash: 7
69
127
  segments:
128
+ - 3
70
129
  - 0
71
- - 10
72
- - 0
73
- version: 0.10.0
130
+ version: "3.0"
74
131
  type: :development
75
- version_requirements: *id003
76
- - !ruby/object:Gem::Dependency
77
- name: appraisal
78
132
  prerelease: false
79
- requirement: &id004 !ruby/object:Gem::Requirement
133
+ requirement: *id007
134
+ - !ruby/object:Gem::Dependency
135
+ name: rake
136
+ version_requirements: &id008 !ruby/object:Gem::Requirement
80
137
  none: false
81
138
  requirements:
82
139
  - - ~>
83
140
  - !ruby/object:Gem::Version
84
- hash: 27
141
+ hash: 63
85
142
  segments:
86
143
  - 0
87
- - 3
88
- - 4
89
- version: 0.3.4
144
+ - 9
145
+ - 2
146
+ version: 0.9.2
90
147
  type: :development
91
- version_requirements: *id004
92
- - !ruby/object:Gem::Dependency
93
- name: aruba
94
148
  prerelease: false
95
- requirement: &id005 !ruby/object:Gem::Requirement
149
+ requirement: *id008
150
+ - !ruby/object:Gem::Dependency
151
+ name: rspec-rails
152
+ version_requirements: &id009 !ruby/object:Gem::Requirement
96
153
  none: false
97
154
  requirements:
98
- - - ">="
155
+ - - ~>
99
156
  - !ruby/object:Gem::Version
100
- hash: 3
157
+ hash: 21
101
158
  segments:
102
- - 0
103
- version: "0"
159
+ - 2
160
+ - 6
161
+ - 1
162
+ version: 2.6.1
104
163
  type: :development
105
- version_requirements: *id005
164
+ prerelease: false
165
+ requirement: *id009
106
166
  description: Making tests easy on the fingers and eyes
107
167
  email: support@thoughtbot.com
108
168
  executables: []
109
169
 
110
170
  extensions: []
111
171
 
112
- extra_rdoc_files:
113
- - README.rdoc
114
- - CONTRIBUTION_GUIDELINES.rdoc
172
+ extra_rdoc_files: []
173
+
115
174
  files:
175
+ - .gitignore
176
+ - .travis.yml
116
177
  - Appraisals
117
- - CONTRIBUTION_GUIDELINES.rdoc
178
+ - CONTRIBUTING.md
118
179
  - Gemfile
119
180
  - Gemfile.lock
120
181
  - MIT-LICENSE
182
+ - NEWS.md
183
+ - README.md
121
184
  - Rakefile
122
- - README.rdoc
185
+ - features/rails_integration.feature
186
+ - features/step_definitions/rails_steps.rb
187
+ - features/support/env.rb
188
+ - gemfiles/3.0.gemfile
189
+ - gemfiles/3.0.gemfile.lock
190
+ - gemfiles/3.1.gemfile
191
+ - gemfiles/3.1.gemfile.lock
192
+ - lib/shoulda-matchers.rb
193
+ - lib/shoulda/matchers.rb
194
+ - lib/shoulda/matchers/action_controller.rb
123
195
  - lib/shoulda/matchers/action_controller/assign_to_matcher.rb
124
196
  - lib/shoulda/matchers/action_controller/filter_param_matcher.rb
125
197
  - lib/shoulda/matchers/action_controller/redirect_to_matcher.rb
@@ -130,9 +202,9 @@ files:
130
202
  - lib/shoulda/matchers/action_controller/route_matcher.rb
131
203
  - lib/shoulda/matchers/action_controller/set_session_matcher.rb
132
204
  - lib/shoulda/matchers/action_controller/set_the_flash_matcher.rb
133
- - lib/shoulda/matchers/action_controller.rb
134
- - lib/shoulda/matchers/action_mailer/have_sent_email.rb
135
205
  - lib/shoulda/matchers/action_mailer.rb
206
+ - lib/shoulda/matchers/action_mailer/have_sent_email_matcher.rb
207
+ - lib/shoulda/matchers/active_model.rb
136
208
  - lib/shoulda/matchers/active_model/allow_mass_assignment_of_matcher.rb
137
209
  - lib/shoulda/matchers/active_model/allow_value_matcher.rb
138
210
  - lib/shoulda/matchers/active_model/ensure_exclusion_of_matcher.rb
@@ -140,32 +212,70 @@ files:
140
212
  - lib/shoulda/matchers/active_model/ensure_length_of_matcher.rb
141
213
  - lib/shoulda/matchers/active_model/helpers.rb
142
214
  - lib/shoulda/matchers/active_model/validate_acceptance_of_matcher.rb
215
+ - lib/shoulda/matchers/active_model/validate_confirmation_of_matcher.rb
143
216
  - lib/shoulda/matchers/active_model/validate_format_of_matcher.rb
144
217
  - lib/shoulda/matchers/active_model/validate_numericality_of_matcher.rb
145
218
  - lib/shoulda/matchers/active_model/validate_presence_of_matcher.rb
146
219
  - lib/shoulda/matchers/active_model/validate_uniqueness_of_matcher.rb
147
220
  - lib/shoulda/matchers/active_model/validation_matcher.rb
148
- - lib/shoulda/matchers/active_model.rb
221
+ - lib/shoulda/matchers/active_record.rb
222
+ - lib/shoulda/matchers/active_record/accept_nested_attributes_for_matcher.rb
149
223
  - lib/shoulda/matchers/active_record/association_matcher.rb
150
224
  - lib/shoulda/matchers/active_record/have_db_column_matcher.rb
151
225
  - lib/shoulda/matchers/active_record/have_db_index_matcher.rb
152
226
  - lib/shoulda/matchers/active_record/have_readonly_attribute_matcher.rb
153
- - lib/shoulda/matchers/active_record.rb
227
+ - lib/shoulda/matchers/active_record/query_the_database_matcher.rb
228
+ - lib/shoulda/matchers/active_record/serialize_matcher.rb
154
229
  - lib/shoulda/matchers/assertion_error.rb
155
230
  - lib/shoulda/matchers/integrations/rspec.rb
156
231
  - lib/shoulda/matchers/integrations/test_unit.rb
157
232
  - lib/shoulda/matchers/version.rb
158
- - lib/shoulda/matchers.rb
159
- - lib/shoulda-matchers.rb
160
- has_rdoc: true
233
+ - shoulda-matchers.gemspec
234
+ - spec/fixtures/addresses.yml
235
+ - spec/fixtures/friendships.yml
236
+ - spec/fixtures/posts.yml
237
+ - spec/fixtures/products.yml
238
+ - spec/fixtures/taggings.yml
239
+ - spec/fixtures/tags.yml
240
+ - spec/fixtures/users.yml
241
+ - spec/shoulda/action_controller/assign_to_matcher_spec.rb
242
+ - spec/shoulda/action_controller/filter_param_matcher_spec.rb
243
+ - spec/shoulda/action_controller/redirect_to_matcher_spec.rb
244
+ - spec/shoulda/action_controller/render_template_matcher_spec.rb
245
+ - spec/shoulda/action_controller/render_with_layout_matcher_spec.rb
246
+ - spec/shoulda/action_controller/respond_with_content_type_matcher_spec.rb
247
+ - spec/shoulda/action_controller/respond_with_matcher_spec.rb
248
+ - spec/shoulda/action_controller/route_matcher_spec.rb
249
+ - spec/shoulda/action_controller/set_session_matcher_spec.rb
250
+ - spec/shoulda/action_controller/set_the_flash_matcher_spec.rb
251
+ - spec/shoulda/action_mailer/have_sent_email_spec.rb
252
+ - spec/shoulda/active_model/allow_mass_assignment_of_matcher_spec.rb
253
+ - spec/shoulda/active_model/allow_value_matcher_spec.rb
254
+ - spec/shoulda/active_model/ensure_exclusion_of_matcher_spec.rb
255
+ - spec/shoulda/active_model/ensure_inclusion_of_matcher_spec.rb
256
+ - spec/shoulda/active_model/ensure_length_of_matcher_spec.rb
257
+ - spec/shoulda/active_model/helpers_spec.rb
258
+ - spec/shoulda/active_model/validate_acceptance_of_matcher_spec.rb
259
+ - spec/shoulda/active_model/validate_confirmation_of_matcher_spec.rb
260
+ - spec/shoulda/active_model/validate_format_of_matcher_spec.rb
261
+ - spec/shoulda/active_model/validate_numericality_of_matcher_spec.rb
262
+ - spec/shoulda/active_model/validate_presence_of_matcher_spec.rb
263
+ - spec/shoulda/active_model/validate_uniqueness_of_matcher_spec.rb
264
+ - spec/shoulda/active_record/accept_nested_attributes_for_matcher_spec.rb
265
+ - spec/shoulda/active_record/association_matcher_spec.rb
266
+ - spec/shoulda/active_record/have_db_column_matcher_spec.rb
267
+ - spec/shoulda/active_record/have_db_index_matcher_spec.rb
268
+ - spec/shoulda/active_record/have_readonly_attributes_matcher_spec.rb
269
+ - spec/shoulda/active_record/query_the_database_matcher_spec.rb
270
+ - spec/shoulda/active_record/serialize_matcher_spec.rb
271
+ - spec/spec_helper.rb
272
+ - spec/support/model_builder.rb
161
273
  homepage: http://thoughtbot.com/community/
162
274
  licenses: []
163
275
 
164
276
  post_install_message:
165
- rdoc_options:
166
- - --line-numbers
167
- - --main
168
- - README.rdoc
277
+ rdoc_options: []
278
+
169
279
  require_paths:
170
280
  - lib
171
281
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -189,9 +299,50 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
299
  requirements: []
190
300
 
191
301
  rubyforge_project:
192
- rubygems_version: 1.6.2
302
+ rubygems_version: 1.8.21
193
303
  signing_key:
194
304
  specification_version: 3
195
305
  summary: Making tests easy on the fingers and eyes
196
- test_files: []
197
-
306
+ test_files:
307
+ - features/rails_integration.feature
308
+ - features/step_definitions/rails_steps.rb
309
+ - features/support/env.rb
310
+ - spec/fixtures/addresses.yml
311
+ - spec/fixtures/friendships.yml
312
+ - spec/fixtures/posts.yml
313
+ - spec/fixtures/products.yml
314
+ - spec/fixtures/taggings.yml
315
+ - spec/fixtures/tags.yml
316
+ - spec/fixtures/users.yml
317
+ - spec/shoulda/action_controller/assign_to_matcher_spec.rb
318
+ - spec/shoulda/action_controller/filter_param_matcher_spec.rb
319
+ - spec/shoulda/action_controller/redirect_to_matcher_spec.rb
320
+ - spec/shoulda/action_controller/render_template_matcher_spec.rb
321
+ - spec/shoulda/action_controller/render_with_layout_matcher_spec.rb
322
+ - spec/shoulda/action_controller/respond_with_content_type_matcher_spec.rb
323
+ - spec/shoulda/action_controller/respond_with_matcher_spec.rb
324
+ - spec/shoulda/action_controller/route_matcher_spec.rb
325
+ - spec/shoulda/action_controller/set_session_matcher_spec.rb
326
+ - spec/shoulda/action_controller/set_the_flash_matcher_spec.rb
327
+ - spec/shoulda/action_mailer/have_sent_email_spec.rb
328
+ - spec/shoulda/active_model/allow_mass_assignment_of_matcher_spec.rb
329
+ - spec/shoulda/active_model/allow_value_matcher_spec.rb
330
+ - spec/shoulda/active_model/ensure_exclusion_of_matcher_spec.rb
331
+ - spec/shoulda/active_model/ensure_inclusion_of_matcher_spec.rb
332
+ - spec/shoulda/active_model/ensure_length_of_matcher_spec.rb
333
+ - spec/shoulda/active_model/helpers_spec.rb
334
+ - spec/shoulda/active_model/validate_acceptance_of_matcher_spec.rb
335
+ - spec/shoulda/active_model/validate_confirmation_of_matcher_spec.rb
336
+ - spec/shoulda/active_model/validate_format_of_matcher_spec.rb
337
+ - spec/shoulda/active_model/validate_numericality_of_matcher_spec.rb
338
+ - spec/shoulda/active_model/validate_presence_of_matcher_spec.rb
339
+ - spec/shoulda/active_model/validate_uniqueness_of_matcher_spec.rb
340
+ - spec/shoulda/active_record/accept_nested_attributes_for_matcher_spec.rb
341
+ - spec/shoulda/active_record/association_matcher_spec.rb
342
+ - spec/shoulda/active_record/have_db_column_matcher_spec.rb
343
+ - spec/shoulda/active_record/have_db_index_matcher_spec.rb
344
+ - spec/shoulda/active_record/have_readonly_attributes_matcher_spec.rb
345
+ - spec/shoulda/active_record/query_the_database_matcher_spec.rb
346
+ - spec/shoulda/active_record/serialize_matcher_spec.rb
347
+ - spec/spec_helper.rb
348
+ - spec/support/model_builder.rb