oxen_media 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +7 -0
  2. data/.bowerrc +3 -0
  3. data/.envrc +1 -0
  4. data/.gitignore +11 -0
  5. data/.rspec +3 -0
  6. data/.ruby-version +1 -0
  7. data/Gemfile +16 -0
  8. data/Gemfile.lock +331 -0
  9. data/Guardfile +135 -0
  10. data/MIT-LICENSE +20 -0
  11. data/README.rdoc +31 -0
  12. data/Rakefile +15 -0
  13. data/app/assets/images/oxen_media/.keep +0 -0
  14. data/app/assets/javascripts/jsrender.min.js +4 -0
  15. data/app/assets/javascripts/jsrender.min.js.map +463 -0
  16. data/app/assets/javascripts/oxen_media.js +3 -0
  17. data/app/assets/javascripts/oxen_media/.keep +0 -0
  18. data/app/assets/javascripts/oxen_media/carrier_wave_cropper.js.coffee +22 -0
  19. data/app/assets/javascripts/oxen_media/media.js.coffee +469 -0
  20. data/app/assets/javascripts/oxen_media/medium_pane.js.coffee +107 -0
  21. data/app/assets/javascripts/templates/selected_files.html +35 -0
  22. data/app/assets/stylesheets/media.css +10 -0
  23. data/app/assets/stylesheets/oxen_media/.keep +0 -0
  24. data/app/assets/stylesheets/scaffold.css +56 -0
  25. data/app/controllers/.keep +0 -0
  26. data/app/controllers/media_controller.rb +106 -0
  27. data/app/helpers/.keep +0 -0
  28. data/app/helpers/media_helper.rb +2 -0
  29. data/app/mailers/.keep +0 -0
  30. data/app/models/.keep +0 -0
  31. data/app/models/concerns/roleable.rb +61 -0
  32. data/app/models/medium.rb +25 -0
  33. data/app/policies/oxen_medium_policy.rb +12 -0
  34. data/app/uploaders/medium_uploader.rb +106 -0
  35. data/app/views/.keep +0 -0
  36. data/app/views/media/_fields.html.haml +42 -0
  37. data/app/views/media/_form.html.haml +48 -0
  38. data/app/views/media/_media.html.haml +18 -0
  39. data/app/views/media/_medium.html.haml +25 -0
  40. data/app/views/media/_medium_fields.html.haml +4 -0
  41. data/app/views/media/create.js.haml +2 -0
  42. data/app/views/media/crop.html.haml +3 -0
  43. data/app/views/media/edit.html.haml +2 -0
  44. data/app/views/media/index.html.haml +29 -0
  45. data/app/views/media/index.json.jbuilder +4 -0
  46. data/app/views/media/new.html.erb +5 -0
  47. data/app/views/media/show.html.haml +21 -0
  48. data/app/views/media/show.json.jbuilder +1 -0
  49. data/app/views/media/update_crop.js.haml +1 -0
  50. data/bin/rails +12 -0
  51. data/config/initializers/backtrace_silencers.rb +9 -0
  52. data/config/initializers/carrier_wave.rb +11 -0
  53. data/config/initializers/simple_form.rb +14 -0
  54. data/config/locales/media.en.yml +20 -0
  55. data/config/routes.rb +6 -0
  56. data/db/migrate/20150629071720_create_media.rb +13 -0
  57. data/lib/generators/media/USAGE +8 -0
  58. data/lib/generators/media/media_generator.rb +48 -0
  59. data/lib/generators/media/templates/medium.rb +13 -0
  60. data/lib/oxen_media.rb +7 -0
  61. data/lib/oxen_media/engine.rb +19 -0
  62. data/lib/oxen_media/version.rb +3 -0
  63. data/lib/tasks/oxen_media_tasks.rake +4 -0
  64. data/oxen_media.gemspec +59 -0
  65. data/test/controllers/media_controller_test.rb +49 -0
  66. data/test/fixtures/media.yml +17 -0
  67. data/test/integration/oxen_media_test.rb +7 -0
  68. data/test/lib/generators/media_generator_test.rb +14 -0
  69. data/test/models/medium_test.rb +7 -0
  70. data/test/test_helper.rb +13 -0
  71. metadata +387 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8884d3a2298175bfa7108a1c8507436a84457667
4
+ data.tar.gz: 202a2d45076d37baed189cb3ecfe5bee30ec86e4
5
+ SHA512:
6
+ metadata.gz: a800debd118b021cc32ab7d5d2970ffa96e262787d243bbaedf3e7f9f0fee6f1063d7ac446efdd2ea3c0289fdea2b315200ea70994bc0b2c545389369cc1032d
7
+ data.tar.gz: 0d198f4bb19808b74cd7256f3d2cf61fb5fca9cdc0b79646be6e616a120d4d3240cd224ee35cc63e084fe42df54b040964bd75d7dbf970f95f78bbf50055baf7
data/.bowerrc ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "directory": "vendor/assets/components"
3
+ }
data/.envrc ADDED
@@ -0,0 +1 @@
1
+ export PATH=$PWD/bin:$PATH
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ .bundle/
2
+ log/*.log
3
+ pkg/
4
+ test/dummy/db/*.sqlite3
5
+ test/dummy/db/*.sqlite3-journal
6
+ test/dummy/log/*.log
7
+ test/dummy/tmp/
8
+ test/dummy/.sass-cache
9
+ spring/*
10
+ public/uploads
11
+ *gem
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --require spec_helper
3
+ --format documentation
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.1.2
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Declare your gem's dependencies in abstracted.gemspec.
4
+ # Bundler will treat runtime dependencies like base dependencies, and
5
+ # development dependencies will be added by default to the :development group.
6
+ gemspec
7
+
8
+ # Declare any dependencies that are still in development here instead of in
9
+ # your gemspec. These might include edge Rails or gems from your path or
10
+ # Git. Remember to move these dependencies to your gemspec before releasing
11
+ # your gem to rubygems.org.
12
+
13
+ # To use a debugger
14
+ # gem 'byebug', group: [:development, :test]
15
+
16
+ gem 'abstracted', path: '../abstracted'
data/Gemfile.lock ADDED
@@ -0,0 +1,331 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ oxen_media (0.0.1)
5
+ carrierwave
6
+ carrierwave-crop
7
+ carrierwave-processing
8
+ fog
9
+ mini_magick
10
+ pundit
11
+ rails (~> 4.2.1)
12
+
13
+ PATH
14
+ remote: ../abstracted
15
+ specs:
16
+ abstracted (0.0.7)
17
+ pundit
18
+ rails (~> 4.1)
19
+ responders
20
+
21
+ GEM
22
+ remote: https://rubygems.org/
23
+ specs:
24
+ CFPropertyList (2.3.1)
25
+ actionmailer (4.2.2)
26
+ actionpack (= 4.2.2)
27
+ actionview (= 4.2.2)
28
+ activejob (= 4.2.2)
29
+ mail (~> 2.5, >= 2.5.4)
30
+ rails-dom-testing (~> 1.0, >= 1.0.5)
31
+ actionpack (4.2.2)
32
+ actionview (= 4.2.2)
33
+ activesupport (= 4.2.2)
34
+ rack (~> 1.6)
35
+ rack-test (~> 0.6.2)
36
+ rails-dom-testing (~> 1.0, >= 1.0.5)
37
+ rails-html-sanitizer (~> 1.0, >= 1.0.1)
38
+ actionview (4.2.2)
39
+ activesupport (= 4.2.2)
40
+ builder (~> 3.1)
41
+ erubis (~> 2.7.0)
42
+ rails-dom-testing (~> 1.0, >= 1.0.5)
43
+ rails-html-sanitizer (~> 1.0, >= 1.0.1)
44
+ activejob (4.2.2)
45
+ activesupport (= 4.2.2)
46
+ globalid (>= 0.3.0)
47
+ activemodel (4.2.2)
48
+ activesupport (= 4.2.2)
49
+ builder (~> 3.1)
50
+ activerecord (4.2.2)
51
+ activemodel (= 4.2.2)
52
+ activesupport (= 4.2.2)
53
+ arel (~> 6.0)
54
+ activesupport (4.2.2)
55
+ i18n (~> 0.7)
56
+ json (~> 1.7, >= 1.7.7)
57
+ minitest (~> 5.1)
58
+ thread_safe (~> 0.3, >= 0.3.4)
59
+ tzinfo (~> 1.1)
60
+ ansi (1.5.0)
61
+ arel (6.0.0)
62
+ builder (3.2.2)
63
+ capybara (2.4.4)
64
+ mime-types (>= 1.16)
65
+ nokogiri (>= 1.3.3)
66
+ rack (>= 1.0.0)
67
+ rack-test (>= 0.5.4)
68
+ xpath (~> 2.0)
69
+ carrierwave (0.10.0)
70
+ activemodel (>= 3.2.0)
71
+ activesupport (>= 3.2.0)
72
+ json (>= 1.7)
73
+ mime-types (>= 1.16)
74
+ carrierwave-crop (0.1.2)
75
+ carrierwave (>= 0.8.0, < 0.11.0)
76
+ jquery-rails
77
+ rails (>= 3.2)
78
+ carrierwave-processing (1.1.0)
79
+ carrierwave
80
+ celluloid (0.16.0)
81
+ timers (~> 4.0.0)
82
+ coderay (1.1.0)
83
+ combustion (0.5.3)
84
+ activesupport (>= 3.0.0)
85
+ railties (>= 3.0.0)
86
+ thor (>= 0.14.6)
87
+ database_cleaner (1.4.1)
88
+ erubis (2.7.0)
89
+ excon (0.45.3)
90
+ factory_girl (4.5.0)
91
+ activesupport (>= 3.0.0)
92
+ factory_girl_rails (4.5.0)
93
+ factory_girl (~> 4.5.0)
94
+ railties (>= 3.0.0)
95
+ ffi (1.9.8)
96
+ fission (0.5.0)
97
+ CFPropertyList (~> 2.2)
98
+ fog (1.32.0)
99
+ fog-atmos
100
+ fog-aws (>= 0.6.0)
101
+ fog-brightbox (~> 0.4)
102
+ fog-core (~> 1.32)
103
+ fog-ecloud (= 0.1.1)
104
+ fog-google (>= 0.0.2)
105
+ fog-json
106
+ fog-local
107
+ fog-powerdns (>= 0.1.1)
108
+ fog-profitbricks
109
+ fog-radosgw (>= 0.0.2)
110
+ fog-riakcs
111
+ fog-sakuracloud (>= 0.0.4)
112
+ fog-serverlove
113
+ fog-softlayer
114
+ fog-storm_on_demand
115
+ fog-terremark
116
+ fog-vmfusion
117
+ fog-voxel
118
+ fog-xml (~> 0.1.1)
119
+ ipaddress (~> 0.5)
120
+ nokogiri (~> 1.5, >= 1.5.11)
121
+ fog-atmos (0.1.0)
122
+ fog-core
123
+ fog-xml
124
+ fog-aws (0.6.0)
125
+ fog-core (~> 1.27)
126
+ fog-json (~> 1.0)
127
+ fog-xml (~> 0.1)
128
+ ipaddress (~> 0.8)
129
+ fog-brightbox (0.7.2)
130
+ fog-core (~> 1.22)
131
+ fog-json
132
+ inflecto (~> 0.0.2)
133
+ fog-core (1.32.0)
134
+ builder
135
+ excon (~> 0.45)
136
+ formatador (~> 0.2)
137
+ mime-types
138
+ net-scp (~> 1.1)
139
+ net-ssh (>= 2.1.3)
140
+ fog-ecloud (0.1.1)
141
+ fog-core
142
+ fog-xml
143
+ fog-google (0.0.6)
144
+ fog-core
145
+ fog-json
146
+ fog-xml
147
+ fog-json (1.0.2)
148
+ fog-core (~> 1.0)
149
+ multi_json (~> 1.10)
150
+ fog-local (0.2.1)
151
+ fog-core (~> 1.27)
152
+ fog-powerdns (0.1.1)
153
+ fog-core (~> 1.27)
154
+ fog-json (~> 1.0)
155
+ fog-xml (~> 0.1)
156
+ fog-profitbricks (0.0.3)
157
+ fog-core
158
+ fog-xml
159
+ nokogiri
160
+ fog-radosgw (0.0.4)
161
+ fog-core (>= 1.21.0)
162
+ fog-json
163
+ fog-xml (>= 0.0.1)
164
+ fog-riakcs (0.1.0)
165
+ fog-core
166
+ fog-json
167
+ fog-xml
168
+ fog-sakuracloud (1.0.1)
169
+ fog-core
170
+ fog-json
171
+ fog-serverlove (0.1.2)
172
+ fog-core
173
+ fog-json
174
+ fog-softlayer (0.4.7)
175
+ fog-core
176
+ fog-json
177
+ fog-storm_on_demand (0.1.1)
178
+ fog-core
179
+ fog-json
180
+ fog-terremark (0.1.0)
181
+ fog-core
182
+ fog-xml
183
+ fog-vmfusion (0.1.0)
184
+ fission
185
+ fog-core
186
+ fog-voxel (0.1.0)
187
+ fog-core
188
+ fog-xml
189
+ fog-xml (0.1.2)
190
+ fog-core
191
+ nokogiri (~> 1.5, >= 1.5.11)
192
+ formatador (0.2.5)
193
+ globalid (0.3.5)
194
+ activesupport (>= 4.1.0)
195
+ guard (2.12.6)
196
+ formatador (>= 0.2.4)
197
+ listen (~> 2.7)
198
+ lumberjack (~> 1.0)
199
+ nenv (~> 0.1)
200
+ notiffany (~> 0.0)
201
+ pry (>= 0.9.12)
202
+ shellany (~> 0.0)
203
+ thor (>= 0.18.1)
204
+ guard-minitest (2.3.1)
205
+ guard (~> 2.0)
206
+ minitest (>= 3.0)
207
+ hitimes (1.2.2)
208
+ i18n (0.7.0)
209
+ inflecto (0.0.2)
210
+ ipaddress (0.8.0)
211
+ jquery-rails (4.0.4)
212
+ rails-dom-testing (~> 1.0)
213
+ railties (>= 4.2.0)
214
+ thor (>= 0.14, < 2.0)
215
+ json (1.8.3)
216
+ listen (2.10.1)
217
+ celluloid (~> 0.16.0)
218
+ rb-fsevent (>= 0.9.3)
219
+ rb-inotify (>= 0.9)
220
+ loofah (2.0.2)
221
+ nokogiri (>= 1.5.9)
222
+ lumberjack (1.0.9)
223
+ mail (2.6.3)
224
+ mime-types (>= 1.16, < 3)
225
+ method_source (0.8.2)
226
+ mime-types (2.6.1)
227
+ mini_backtrace (0.1.3)
228
+ minitest (> 1.2.0)
229
+ rails (>= 2.3.3)
230
+ mini_magick (4.2.7)
231
+ mini_portile (0.6.2)
232
+ minitest (5.7.0)
233
+ minitest-reporters (1.0.5)
234
+ ansi
235
+ builder
236
+ minitest (>= 5.0)
237
+ ruby-progressbar
238
+ multi_json (1.11.1)
239
+ nenv (0.2.0)
240
+ net-scp (1.2.1)
241
+ net-ssh (>= 2.6.5)
242
+ net-ssh (2.9.2)
243
+ nokogiri (1.6.6.2)
244
+ mini_portile (~> 0.6.0)
245
+ notiffany (0.0.6)
246
+ nenv (~> 0.1)
247
+ shellany (~> 0.0)
248
+ pry (0.10.1)
249
+ coderay (~> 1.1.0)
250
+ method_source (~> 0.8.1)
251
+ slop (~> 3.4)
252
+ pry-nav (0.2.4)
253
+ pry (>= 0.9.10, < 0.11.0)
254
+ pry-remote (0.1.8)
255
+ pry (~> 0.9)
256
+ slop (~> 3.0)
257
+ pundit (1.0.1)
258
+ activesupport (>= 3.0.0)
259
+ rack (1.6.4)
260
+ rack-test (0.6.3)
261
+ rack (>= 1.0)
262
+ rails (4.2.2)
263
+ actionmailer (= 4.2.2)
264
+ actionpack (= 4.2.2)
265
+ actionview (= 4.2.2)
266
+ activejob (= 4.2.2)
267
+ activemodel (= 4.2.2)
268
+ activerecord (= 4.2.2)
269
+ activesupport (= 4.2.2)
270
+ bundler (>= 1.3.0, < 2.0)
271
+ railties (= 4.2.2)
272
+ sprockets-rails
273
+ rails-deprecated_sanitizer (1.0.3)
274
+ activesupport (>= 4.2.0.alpha)
275
+ rails-dom-testing (1.0.6)
276
+ activesupport (>= 4.2.0.beta, < 5.0)
277
+ nokogiri (~> 1.6.0)
278
+ rails-deprecated_sanitizer (>= 1.0.1)
279
+ rails-html-sanitizer (1.0.2)
280
+ loofah (~> 2.0)
281
+ railties (4.2.2)
282
+ actionpack (= 4.2.2)
283
+ activesupport (= 4.2.2)
284
+ rake (>= 0.8.7)
285
+ thor (>= 0.18.1, < 2.0)
286
+ rake (10.4.2)
287
+ rb-fsevent (0.9.5)
288
+ rb-inotify (0.9.5)
289
+ ffi (>= 0.5.0)
290
+ responders (2.1.0)
291
+ railties (>= 4.2.0, < 5)
292
+ ruby-progressbar (1.7.5)
293
+ shellany (0.0.1)
294
+ slop (3.6.0)
295
+ sprockets (3.2.0)
296
+ rack (~> 1.0)
297
+ sprockets-rails (2.3.2)
298
+ actionpack (>= 3.0)
299
+ activesupport (>= 3.0)
300
+ sprockets (>= 2.8, < 4.0)
301
+ sqlite3 (1.3.10)
302
+ thor (0.19.1)
303
+ thread_safe (0.3.5)
304
+ timers (4.0.1)
305
+ hitimes
306
+ tzinfo (1.2.2)
307
+ thread_safe (~> 0.1)
308
+ xpath (2.0.0)
309
+ nokogiri (~> 1.3)
310
+
311
+ PLATFORMS
312
+ ruby
313
+
314
+ DEPENDENCIES
315
+ abstracted!
316
+ capybara
317
+ combustion (~> 0.5.3)
318
+ database_cleaner
319
+ factory_girl_rails
320
+ guard
321
+ guard-minitest
322
+ mini_backtrace
323
+ minitest-reporters
324
+ oxen_media!
325
+ pry
326
+ pry-nav
327
+ pry-remote
328
+ sqlite3
329
+
330
+ BUNDLED WITH
331
+ 1.10.5
data/Guardfile ADDED
@@ -0,0 +1,135 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+ # Defines the matching rules for Guard.
4
+ guard :minitest, spring: true, all_on_start: false do
5
+ watch(%r{^test/(.*)/?(.*)_test\.rb$})
6
+ watch('test/test_helper.rb') { 'test' }
7
+ watch('config/routes.rb') { integration_tests }
8
+ watch(%r{^app/models/(.*?)\.rb$}) do |matches|
9
+ "test/models/#{matches[1]}_test.rb"
10
+ end
11
+ watch(%r{^app/controllers/(.*?)_controller\.rb$}) do |matches|
12
+ resource_tests(matches[1])
13
+ end
14
+ watch(%r{^app/views/([^/]*?)/.*\.html\.erb$}) do |matches|
15
+ ["test/controllers/#{matches[1]}_controller_test.rb"] +
16
+ integration_tests(matches[1])
17
+ end
18
+ watch(%r{^app/helpers/(.*?)_helper\.rb$}) do |matches|
19
+ integration_tests(matches[1])
20
+ end
21
+ watch('app/views/layouts/application.html.erb') do
22
+ 'test/integration/site_layout_test.rb'
23
+ end
24
+ watch('app/helpers/sessions_helper.rb') do
25
+ integration_tests << 'test/helpers/sessions_helper_test.rb'
26
+ end
27
+ watch('app/controllers/sessions_controller.rb') do
28
+ ['test/controllers/sessions_controller_test.rb',
29
+ 'test/integration/users_login_test.rb']
30
+ end
31
+ watch('app/controllers/account_activations_controller.rb') do
32
+ 'test/integration/users_signup_test.rb'
33
+ end
34
+ watch(%r{app/views/users/*}) do
35
+ resource_tests('users') +
36
+ ['test/integration/microposts_interface_test.rb']
37
+ end
38
+ end
39
+
40
+ # Returns the integration tests corresponding to the given resource.
41
+ def integration_tests(resource = :all)
42
+ if resource == :all
43
+ Dir["test/integration/*"]
44
+ else
45
+ Dir["test/integration/#{resource}_*.rb"]
46
+ end
47
+ end
48
+
49
+ # Returns the controller tests corresponding to the given resource.
50
+ def controller_test(resource)
51
+ "test/controllers/#{resource}_controller_test.rb"
52
+ end
53
+
54
+ # Returns all tests for the given resource.
55
+ def resource_tests(resource)
56
+ integration_tests(resource) << controller_test(resource)
57
+ end
58
+
59
+
60
+
61
+
62
+ ## Uncomment and set this to only include directories you want to watch
63
+ # directories %w(app lib config test spec features)
64
+
65
+ ## Uncomment to clear the screen before every task
66
+ # clearing :on
67
+
68
+ ## Guard internally checks for changes in the Guardfile and exits.
69
+ ## If you want Guard to automatically start up again, run guard in a
70
+ ## shell loop, e.g.:
71
+ ##
72
+ ## $ while bundle exec guard; do echo "Restarting Guard..."; done
73
+ ##
74
+ ## Note: if you are using the `directories` clause above and you are not
75
+ ## watching the project directory ('.'), then you will want to move
76
+ ## the Guardfile to a watched dir and symlink it back, e.g.
77
+ #
78
+ # $ mkdir config
79
+ # $ mv Guardfile config/
80
+ # $ ln -s config/Guardfile .
81
+ #
82
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
83
+
84
+ # Note: The cmd option is now required due to the increasing number of ways
85
+ # rspec may be run, below are examples of the most common uses.
86
+ # * bundler: 'bundle exec rspec'
87
+ # * bundler binstubs: 'bin/rspec'
88
+ # * spring: 'bin/rspec' (This will use spring if running and you have
89
+ # installed the spring binstubs per the docs)
90
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
91
+ # * 'just' rspec: 'rspec'
92
+ #
93
+ # guard :rspec, cmd: "bundle exec rspec" do
94
+ # require "guard/rspec/dsl"
95
+ # dsl = Guard::RSpec::Dsl.new(self)
96
+ #
97
+ # # Feel free to open issues for suggestions and improvements
98
+ #
99
+ # # RSpec files
100
+ # rspec = dsl.rspec
101
+ # watch(rspec.spec_helper) { rspec.spec_dir }
102
+ # watch(rspec.spec_support) { rspec.spec_dir }
103
+ # watch(rspec.spec_files)
104
+ #
105
+ # # Ruby files
106
+ # ruby = dsl.ruby
107
+ # dsl.watch_spec_files_for(ruby.lib_files)
108
+ #
109
+ # # Rails files
110
+ # rails = dsl.rails(view_extensions: %w(erb haml slim))
111
+ # dsl.watch_spec_files_for(rails.app_files)
112
+ # dsl.watch_spec_files_for(rails.views)
113
+ #
114
+ # watch(rails.controllers) do |m|
115
+ # [
116
+ # rspec.spec.("routing/#{m[1]}_routing"),
117
+ # rspec.spec.("controllers/#{m[1]}_controller"),
118
+ # rspec.spec.("acceptance/#{m[1]}")
119
+ # ]
120
+ # end
121
+ #
122
+ # # Rails config changes
123
+ # watch(rails.spec_helper) { rspec.spec_dir }
124
+ # watch(rails.routes) { "#{rspec.spec_dir}/routing" }
125
+ # watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
126
+ #
127
+ # # Capybara features specs
128
+ # watch(rails.view_dirs) { |m| rspec.spec.("features/#{m[1]}") }
129
+ #
130
+ # # Turnip features and steps
131
+ # watch(%r{^spec/acceptance/(.+)\.feature$})
132
+ # watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
133
+ # Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
134
+ # end
135
+ # end