conversations 0.0.1

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 (87) hide show
  1. data/.gitignore +8 -0
  2. data/CHANGELOG.md +7 -0
  3. data/Gemfile +17 -0
  4. data/Gemfile.lock +146 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.md +55 -0
  7. data/Rakefile +32 -0
  8. data/TODO.md +4 -0
  9. data/app/assets/javascripts/conversations.js +5 -0
  10. data/app/assets/javascripts/jquery.tokeninput.js +860 -0
  11. data/app/assets/stylesheets/conversations.css +4 -0
  12. data/app/assets/stylesheets/token-input-facebook.css +122 -0
  13. data/app/assets/stylesheets/token-input-mac.css +204 -0
  14. data/app/assets/stylesheets/token-input.css +113 -0
  15. data/app/controllers/conversations/conversations_controller.rb +26 -0
  16. data/app/controllers/conversations/messages_controller.rb +17 -0
  17. data/app/controllers/conversations/user_conversations_controller.rb +28 -0
  18. data/app/models/conversations/conversation.rb +19 -0
  19. data/app/models/conversations/message.rb +11 -0
  20. data/app/models/conversations/user_conversation.rb +22 -0
  21. data/app/views/conversations/conversations/new.html.erb +19 -0
  22. data/app/views/conversations/user_conversations/index.html.erb +17 -0
  23. data/app/views/conversations/user_conversations/show.html.erb +35 -0
  24. data/config/routes.rb +12 -0
  25. data/conversations.gemspec +33 -0
  26. data/lib/conversations.rb +19 -0
  27. data/lib/conversations/engine.rb +29 -0
  28. data/lib/conversations/models/conversationalist.rb +22 -0
  29. data/lib/conversations/version.rb +3 -0
  30. data/lib/generators/conversations/conversations_generator.rb +20 -0
  31. data/lib/generators/conversations/templates/20120105153739_create_conversations.rb +9 -0
  32. data/lib/generators/conversations/templates/20120105153800_create_user_conversations.rb +12 -0
  33. data/lib/generators/conversations/templates/20120105153812_create_messages.rb +11 -0
  34. data/lib/tasks/conversations_tasks.rake +4 -0
  35. data/spec/dummy/Rakefile +7 -0
  36. data/spec/dummy/app/assets/javascripts/application.js +10 -0
  37. data/spec/dummy/app/assets/stylesheets/application.css +24 -0
  38. data/spec/dummy/app/controllers/application_controller.rb +13 -0
  39. data/spec/dummy/app/controllers/users_controller.rb +44 -0
  40. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  41. data/spec/dummy/app/mailers/.gitkeep +0 -0
  42. data/spec/dummy/app/models/.gitkeep +0 -0
  43. data/spec/dummy/app/models/user.rb +7 -0
  44. data/spec/dummy/app/views/layouts/application.html.erb +15 -0
  45. data/spec/dummy/app/views/users/_form.html.erb +5 -0
  46. data/spec/dummy/app/views/users/edit.html.erb +3 -0
  47. data/spec/dummy/app/views/users/index.html.erb +7 -0
  48. data/spec/dummy/app/views/users/new.html.erb +3 -0
  49. data/spec/dummy/app/views/users/show.html.erb +13 -0
  50. data/spec/dummy/config.ru +4 -0
  51. data/spec/dummy/config/application.rb +45 -0
  52. data/spec/dummy/config/boot.rb +10 -0
  53. data/spec/dummy/config/database.yml +25 -0
  54. data/spec/dummy/config/environment.rb +5 -0
  55. data/spec/dummy/config/environments/development.rb +37 -0
  56. data/spec/dummy/config/environments/production.rb +60 -0
  57. data/spec/dummy/config/environments/test.rb +39 -0
  58. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  59. data/spec/dummy/config/initializers/inflections.rb +10 -0
  60. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  61. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  62. data/spec/dummy/config/initializers/session_store.rb +8 -0
  63. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  64. data/spec/dummy/config/locales/en.yml +5 -0
  65. data/spec/dummy/config/routes.rb +69 -0
  66. data/spec/dummy/db/migrate/20120105152859_create_users.rb +9 -0
  67. data/spec/dummy/db/migrate/20120105153739_create_conversations.rb +9 -0
  68. data/spec/dummy/db/migrate/20120105153800_create_user_conversations.rb +12 -0
  69. data/spec/dummy/db/migrate/20120105153812_create_messages.rb +11 -0
  70. data/spec/dummy/db/schema.rb +45 -0
  71. data/spec/dummy/db/seeds.rb +12 -0
  72. data/spec/dummy/lib/assets/.gitkeep +0 -0
  73. data/spec/dummy/log/.gitkeep +0 -0
  74. data/spec/dummy/public/404.html +26 -0
  75. data/spec/dummy/public/422.html +26 -0
  76. data/spec/dummy/public/500.html +26 -0
  77. data/spec/dummy/public/favicon.ico +0 -0
  78. data/spec/dummy/script/rails +6 -0
  79. data/spec/factories.rb +29 -0
  80. data/spec/integration/conversations_controller_spec.rb +54 -0
  81. data/spec/integration/messages_controller_spec.rb +37 -0
  82. data/spec/integration/user_conversations_controller_spec.rb +51 -0
  83. data/spec/models/conversation_spec.rb +28 -0
  84. data/spec/models/message_spec.rb +23 -0
  85. data/spec/models/user_conversation_spec.rb +18 -0
  86. data/spec/spec_helper.rb +42 -0
  87. metadata +300 -0
@@ -0,0 +1,42 @@
1
+ # Configure Rails Envinronment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require 'simplecov'
5
+ SimpleCov.start
6
+
7
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
8
+ require "rspec/rails"
9
+
10
+ require 'factory_girl'
11
+ FactoryGirl.find_definitions
12
+
13
+ ActionMailer::Base.delivery_method = :test
14
+ ActionMailer::Base.perform_deliveries = true
15
+ ActionMailer::Base.default_url_options[:host] = "test.com"
16
+
17
+ Rails.backtrace_cleaner.remove_silencers!
18
+
19
+ # Configure capybara for integration testing
20
+ require "capybara/rails"
21
+ Capybara.default_driver = :rack_test
22
+ Capybara.default_selector = :css
23
+
24
+ # Run any available migration
25
+ ActiveRecord::Migrator.migrate File.expand_path("../dummy/db/migrate/", __FILE__)
26
+
27
+ # Load support files
28
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
29
+
30
+ require 'capybara/rspec'
31
+ RSpec.configure do |config|
32
+ # Remove this line if you don't want RSpec's should and should_not
33
+ # methods or matchers
34
+ require 'rspec/expectations'
35
+ config.include RSpec::Matchers
36
+
37
+ # == Mock Framework
38
+ config.mock_with :rspec
39
+
40
+ # Use transactional fixtures
41
+ config.use_transactional_fixtures = true
42
+ end
metadata ADDED
@@ -0,0 +1,300 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: conversations
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Patrick Bartels
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &70164230071100 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.1.3
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70164230071100
25
+ - !ruby/object:Gem::Dependency
26
+ name: jquery-rails
27
+ requirement: &70164230070440 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.19
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70164230070440
36
+ - !ruby/object:Gem::Dependency
37
+ name: sqlite3
38
+ requirement: &70164230069860 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: '1.3'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70164230069860
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec-rails
49
+ requirement: &70164230067860 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '2.8'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70164230067860
58
+ - !ruby/object:Gem::Dependency
59
+ name: capybara
60
+ requirement: &70164230064280 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: '1.1'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70164230064280
69
+ - !ruby/object:Gem::Dependency
70
+ name: factory_girl_rails
71
+ requirement: &70164230058160 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: '1.4'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70164230058160
80
+ - !ruby/object:Gem::Dependency
81
+ name: simplecov
82
+ requirement: &70164230042400 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: '0.5'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70164230042400
91
+ description: Description of Conversations.
92
+ email:
93
+ - patrick@bartels.ug
94
+ executables: []
95
+ extensions: []
96
+ extra_rdoc_files: []
97
+ files:
98
+ - .gitignore
99
+ - CHANGELOG.md
100
+ - Gemfile
101
+ - Gemfile.lock
102
+ - MIT-LICENSE
103
+ - README.md
104
+ - Rakefile
105
+ - TODO.md
106
+ - app/assets/javascripts/conversations.js
107
+ - app/assets/javascripts/jquery.tokeninput.js
108
+ - app/assets/stylesheets/conversations.css
109
+ - app/assets/stylesheets/token-input-facebook.css
110
+ - app/assets/stylesheets/token-input-mac.css
111
+ - app/assets/stylesheets/token-input.css
112
+ - app/controllers/conversations/conversations_controller.rb
113
+ - app/controllers/conversations/messages_controller.rb
114
+ - app/controllers/conversations/user_conversations_controller.rb
115
+ - app/models/conversations/conversation.rb
116
+ - app/models/conversations/message.rb
117
+ - app/models/conversations/user_conversation.rb
118
+ - app/views/conversations/conversations/new.html.erb
119
+ - app/views/conversations/user_conversations/index.html.erb
120
+ - app/views/conversations/user_conversations/show.html.erb
121
+ - config/routes.rb
122
+ - conversations.gemspec
123
+ - lib/conversations.rb
124
+ - lib/conversations/engine.rb
125
+ - lib/conversations/models/conversationalist.rb
126
+ - lib/conversations/version.rb
127
+ - lib/generators/conversations/conversations_generator.rb
128
+ - lib/generators/conversations/templates/20120105153739_create_conversations.rb
129
+ - lib/generators/conversations/templates/20120105153800_create_user_conversations.rb
130
+ - lib/generators/conversations/templates/20120105153812_create_messages.rb
131
+ - lib/tasks/conversations_tasks.rake
132
+ - spec/dummy/Rakefile
133
+ - spec/dummy/app/assets/javascripts/application.js
134
+ - spec/dummy/app/assets/stylesheets/application.css
135
+ - spec/dummy/app/controllers/application_controller.rb
136
+ - spec/dummy/app/controllers/users_controller.rb
137
+ - spec/dummy/app/helpers/application_helper.rb
138
+ - spec/dummy/app/mailers/.gitkeep
139
+ - spec/dummy/app/models/.gitkeep
140
+ - spec/dummy/app/models/user.rb
141
+ - spec/dummy/app/views/layouts/application.html.erb
142
+ - spec/dummy/app/views/users/_form.html.erb
143
+ - spec/dummy/app/views/users/edit.html.erb
144
+ - spec/dummy/app/views/users/index.html.erb
145
+ - spec/dummy/app/views/users/new.html.erb
146
+ - spec/dummy/app/views/users/show.html.erb
147
+ - spec/dummy/config.ru
148
+ - spec/dummy/config/application.rb
149
+ - spec/dummy/config/boot.rb
150
+ - spec/dummy/config/database.yml
151
+ - spec/dummy/config/environment.rb
152
+ - spec/dummy/config/environments/development.rb
153
+ - spec/dummy/config/environments/production.rb
154
+ - spec/dummy/config/environments/test.rb
155
+ - spec/dummy/config/initializers/backtrace_silencers.rb
156
+ - spec/dummy/config/initializers/inflections.rb
157
+ - spec/dummy/config/initializers/mime_types.rb
158
+ - spec/dummy/config/initializers/secret_token.rb
159
+ - spec/dummy/config/initializers/session_store.rb
160
+ - spec/dummy/config/initializers/wrap_parameters.rb
161
+ - spec/dummy/config/locales/en.yml
162
+ - spec/dummy/config/routes.rb
163
+ - spec/dummy/db/migrate/20120105152859_create_users.rb
164
+ - spec/dummy/db/migrate/20120105153739_create_conversations.rb
165
+ - spec/dummy/db/migrate/20120105153800_create_user_conversations.rb
166
+ - spec/dummy/db/migrate/20120105153812_create_messages.rb
167
+ - spec/dummy/db/schema.rb
168
+ - spec/dummy/db/seeds.rb
169
+ - spec/dummy/lib/assets/.gitkeep
170
+ - spec/dummy/log/.gitkeep
171
+ - spec/dummy/public/404.html
172
+ - spec/dummy/public/422.html
173
+ - spec/dummy/public/500.html
174
+ - spec/dummy/public/favicon.ico
175
+ - spec/dummy/script/rails
176
+ - spec/dummy/tmp/cache/assets/C27/170/sprockets%2F83744541a24e1538820380796e4ff15d
177
+ - spec/dummy/tmp/cache/assets/C76/D50/sprockets%2F0054db58c022790a7cfe1707951c4174
178
+ - spec/dummy/tmp/cache/assets/C83/FA0/sprockets%2Fa9436e4d6d71333c9f795012334d541f
179
+ - spec/dummy/tmp/cache/assets/CFC/650/sprockets%2Fcff565cc229ddbdc8569993173476934
180
+ - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
181
+ - spec/dummy/tmp/cache/assets/D42/000/sprockets%2F5fc02e435f28fb252d5ea7497e51d09b
182
+ - spec/dummy/tmp/cache/assets/D4C/6E0/sprockets%2Fb429dd47159551efee05dbc5cc974844
183
+ - spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4
184
+ - spec/dummy/tmp/cache/assets/D57/F50/sprockets%2F8d4399f6c71cbf646df08990e65ccd15
185
+ - spec/dummy/tmp/cache/assets/D64/840/sprockets%2Fe0642c431bf1f9afad5c1a137fd78208
186
+ - spec/dummy/tmp/cache/assets/D6A/CF0/sprockets%2Fab2a826b592d3468e5a4b931e806cbeb
187
+ - spec/dummy/tmp/cache/assets/D7C/CB0/sprockets%2F33bdf8e66f71a70868e4b66a3c7c46fa
188
+ - spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384
189
+ - spec/dummy/tmp/cache/assets/D9E/560/sprockets%2F8bafdbe094b2f61573dd29e6aa832a38
190
+ - spec/dummy/tmp/cache/assets/DA0/7A0/sprockets%2F4fe1d4e977a573baef1d656af4160cf1
191
+ - spec/dummy/tmp/cache/assets/DA2/C00/sprockets%2F6dc2ad478abc0584c9ed3c526445dd8c
192
+ - spec/dummy/tmp/cache/assets/DCB/450/sprockets%2F66802caadec728e8e6e81dc3d52d1bd1
193
+ - spec/dummy/tmp/cache/assets/E04/190/sprockets%2F2c2adeb5d6d36e73453eef1af9cfe672
194
+ - spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
195
+ - spec/dummy/tmp/cache/assets/E63/4A0/sprockets%2F3e69b379dccbfb7f64f43efabe0d43da
196
+ - spec/factories.rb
197
+ - spec/integration/conversations_controller_spec.rb
198
+ - spec/integration/messages_controller_spec.rb
199
+ - spec/integration/user_conversations_controller_spec.rb
200
+ - spec/models/conversation_spec.rb
201
+ - spec/models/message_spec.rb
202
+ - spec/models/user_conversation_spec.rb
203
+ - spec/spec_helper.rb
204
+ homepage: https://github.com/roughneck/conversations
205
+ licenses: []
206
+ post_install_message:
207
+ rdoc_options: []
208
+ require_paths:
209
+ - lib
210
+ required_ruby_version: !ruby/object:Gem::Requirement
211
+ none: false
212
+ requirements:
213
+ - - ! '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ required_rubygems_version: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ requirements: []
223
+ rubyforge_project: conversations
224
+ rubygems_version: 1.8.10
225
+ signing_key:
226
+ specification_version: 3
227
+ summary: Summary of Conversations.
228
+ test_files:
229
+ - spec/dummy/Rakefile
230
+ - spec/dummy/app/assets/javascripts/application.js
231
+ - spec/dummy/app/assets/stylesheets/application.css
232
+ - spec/dummy/app/controllers/application_controller.rb
233
+ - spec/dummy/app/controllers/users_controller.rb
234
+ - spec/dummy/app/helpers/application_helper.rb
235
+ - spec/dummy/app/mailers/.gitkeep
236
+ - spec/dummy/app/models/.gitkeep
237
+ - spec/dummy/app/models/user.rb
238
+ - spec/dummy/app/views/layouts/application.html.erb
239
+ - spec/dummy/app/views/users/_form.html.erb
240
+ - spec/dummy/app/views/users/edit.html.erb
241
+ - spec/dummy/app/views/users/index.html.erb
242
+ - spec/dummy/app/views/users/new.html.erb
243
+ - spec/dummy/app/views/users/show.html.erb
244
+ - spec/dummy/config.ru
245
+ - spec/dummy/config/application.rb
246
+ - spec/dummy/config/boot.rb
247
+ - spec/dummy/config/database.yml
248
+ - spec/dummy/config/environment.rb
249
+ - spec/dummy/config/environments/development.rb
250
+ - spec/dummy/config/environments/production.rb
251
+ - spec/dummy/config/environments/test.rb
252
+ - spec/dummy/config/initializers/backtrace_silencers.rb
253
+ - spec/dummy/config/initializers/inflections.rb
254
+ - spec/dummy/config/initializers/mime_types.rb
255
+ - spec/dummy/config/initializers/secret_token.rb
256
+ - spec/dummy/config/initializers/session_store.rb
257
+ - spec/dummy/config/initializers/wrap_parameters.rb
258
+ - spec/dummy/config/locales/en.yml
259
+ - spec/dummy/config/routes.rb
260
+ - spec/dummy/db/migrate/20120105152859_create_users.rb
261
+ - spec/dummy/db/migrate/20120105153739_create_conversations.rb
262
+ - spec/dummy/db/migrate/20120105153800_create_user_conversations.rb
263
+ - spec/dummy/db/migrate/20120105153812_create_messages.rb
264
+ - spec/dummy/db/schema.rb
265
+ - spec/dummy/db/seeds.rb
266
+ - spec/dummy/lib/assets/.gitkeep
267
+ - spec/dummy/log/.gitkeep
268
+ - spec/dummy/public/404.html
269
+ - spec/dummy/public/422.html
270
+ - spec/dummy/public/500.html
271
+ - spec/dummy/public/favicon.ico
272
+ - spec/dummy/script/rails
273
+ - spec/dummy/tmp/cache/assets/C27/170/sprockets%2F83744541a24e1538820380796e4ff15d
274
+ - spec/dummy/tmp/cache/assets/C76/D50/sprockets%2F0054db58c022790a7cfe1707951c4174
275
+ - spec/dummy/tmp/cache/assets/C83/FA0/sprockets%2Fa9436e4d6d71333c9f795012334d541f
276
+ - spec/dummy/tmp/cache/assets/CFC/650/sprockets%2Fcff565cc229ddbdc8569993173476934
277
+ - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
278
+ - spec/dummy/tmp/cache/assets/D42/000/sprockets%2F5fc02e435f28fb252d5ea7497e51d09b
279
+ - spec/dummy/tmp/cache/assets/D4C/6E0/sprockets%2Fb429dd47159551efee05dbc5cc974844
280
+ - spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4
281
+ - spec/dummy/tmp/cache/assets/D57/F50/sprockets%2F8d4399f6c71cbf646df08990e65ccd15
282
+ - spec/dummy/tmp/cache/assets/D64/840/sprockets%2Fe0642c431bf1f9afad5c1a137fd78208
283
+ - spec/dummy/tmp/cache/assets/D6A/CF0/sprockets%2Fab2a826b592d3468e5a4b931e806cbeb
284
+ - spec/dummy/tmp/cache/assets/D7C/CB0/sprockets%2F33bdf8e66f71a70868e4b66a3c7c46fa
285
+ - spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384
286
+ - spec/dummy/tmp/cache/assets/D9E/560/sprockets%2F8bafdbe094b2f61573dd29e6aa832a38
287
+ - spec/dummy/tmp/cache/assets/DA0/7A0/sprockets%2F4fe1d4e977a573baef1d656af4160cf1
288
+ - spec/dummy/tmp/cache/assets/DA2/C00/sprockets%2F6dc2ad478abc0584c9ed3c526445dd8c
289
+ - spec/dummy/tmp/cache/assets/DCB/450/sprockets%2F66802caadec728e8e6e81dc3d52d1bd1
290
+ - spec/dummy/tmp/cache/assets/E04/190/sprockets%2F2c2adeb5d6d36e73453eef1af9cfe672
291
+ - spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
292
+ - spec/dummy/tmp/cache/assets/E63/4A0/sprockets%2F3e69b379dccbfb7f64f43efabe0d43da
293
+ - spec/factories.rb
294
+ - spec/integration/conversations_controller_spec.rb
295
+ - spec/integration/messages_controller_spec.rb
296
+ - spec/integration/user_conversations_controller_spec.rb
297
+ - spec/models/conversation_spec.rb
298
+ - spec/models/message_spec.rb
299
+ - spec/models/user_conversation_spec.rb
300
+ - spec/spec_helper.rb