make_it_so 0.4.5 → 0.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9ac6f0d77fb6e01dd7624748326a46c41d6783e2
4
- data.tar.gz: c09977db2febc42710977548d5e7bb938fe7be3c
2
+ SHA256:
3
+ metadata.gz: 2eb6df0b9f858c51c806d331ae101abb19f4b4ce12403073c78499a751673722
4
+ data.tar.gz: 92d50506cb7e2dd187c1031b9851b1d32c2f79f72b61a77e0acbddf9c3bf30f5
5
5
  SHA512:
6
- metadata.gz: 6fadff30e6ccc16cbfe781dd9973a0f02b889581a60f3dd8e5369c634122177bdb4bb0ab91c55d943372be1e5f7fd2e77ad11613b9ff8bce290e293aba492209
7
- data.tar.gz: e97860de45eb65ece6811879340cd38b770cdc8843bb569cf82366ec624f444d375c3056d65a84e3c0fcf4ca6c5c8b8327c740f8c570c958ae0bf43a3b64643d
6
+ metadata.gz: 7b67a140d54c639e3c2243179c73024e44931cfe45aa5b5e60b5b6c5b51a732c142e2ad73c05490db7dd8a00ddfb05f145f36b3a5be8f5b92b53f1382580b79f
7
+ data.tar.gz: 7f3b6b7c5ee3792f331f90d6922c13867bb48b2a79259ba02b254d0fc594b89646f930a6b196cd3767b49aabe121829e5f3c1078847b7cfc5f9276f89862bdb0
data/Gemfile CHANGED
@@ -1,10 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- ruby '2.4.2'
3
+ ruby '2.6.3'
4
4
 
5
5
  # Specify your gem's dependencies in make_it_so.gemspec
6
6
  gemspec
7
7
 
8
8
  group :development do
9
9
  gem 'pry'
10
+ gem 'solargraph'
10
11
  end
data/README.md CHANGED
@@ -41,7 +41,7 @@ By default, the generator will create a Rails app with the following options act
41
41
  - Postgres
42
42
  - Foundation
43
43
  - React
44
- - Karma
44
+ - Jest
45
45
 
46
46
  To take advantage of view-specific javascript, inject a script tag at the end of the body tag. Javascript should always be the last thing loaded on the page. In view logic you can do the following:
47
47
 
@@ -53,7 +53,7 @@ var widget = new Something.Widget('foo');
53
53
  <% end %>
54
54
  ```
55
55
 
56
- There is experimental support for a `--jest` flag that will use Jest for client side testing instead of karma/jasmine.
56
+ Using the `--js-test-lib` flag, it is also possible to set up a Karma/Jasmine test framework instead of Jest (`--js-test-lib karma`) or to omit either framework (`--js-test-lib false`).
57
57
 
58
58
  ### Sinatra
59
59
 
@@ -52,15 +52,11 @@ module MakeItSo
52
52
  default: true,
53
53
  desc: 'Generate React setup'
54
54
 
55
- class_option :karma,
56
- type: :boolean,
57
- default: true,
58
- desc: 'Generate karma testing setup'
59
-
60
- class_option :jest,
61
- type: :boolean,
62
- default: false,
63
- desc: 'Generate jest testing setup'
55
+ class_option :js_test_lib,
56
+ type: :string,
57
+ default: "jest",
58
+ desc:
59
+ "Generate Jest testing framework (default), Karma/Jasmine ('karma'), or no framework ('false')"
64
60
 
65
61
  def initialize(*args)
66
62
  super
@@ -106,13 +102,13 @@ module MakeItSo
106
102
  build 'react'
107
103
  end
108
104
 
109
- if options[:jest]
105
+ if options[:js_test_lib] == "jest"
110
106
  build 'jest'
111
- elsif options[:karma]
107
+ elsif options[:js_test_lib] == "karma"
112
108
  build 'karma'
113
109
  end
114
110
 
115
- if options[:react] || options[:jest] || options[:karma]
111
+ if options[:react] || options[:js_test_lib]
116
112
  build 'yarn_install'
117
113
  end
118
114
  end
@@ -4,7 +4,7 @@ module MakeItSo
4
4
  desc "rails <app_name>",
5
5
  "generates a rails application based on your specifications"
6
6
  option :devise, type: :boolean
7
- option :jest, type: :boolean
7
+ option :js_test_lib, default: "jest"
8
8
  def rails(app_name)
9
9
  MakeItSo::RailsAppGenerator.start(ARGV[1..-1])
10
10
  end
@@ -66,6 +66,8 @@ module MakeItSo
66
66
 
67
67
  json["scripts"] ||= {}
68
68
  json["scripts"]["start"] = "./bin/webpack-dev-server"
69
+
70
+ json["dependencies"].delete("babel-preset-react")
69
71
  end
70
72
 
71
73
  inside 'app/javascript/packs' do
@@ -76,7 +78,7 @@ module MakeItSo
76
78
 
77
79
  def karma
78
80
  after_bundle do
79
- unparsed_json = snippet('js_testing_deps.json')
81
+ unparsed_json = snippet('js_karma_jasmine_testing_deps.json')
80
82
  parsed_json = JSON.parse(unparsed_json)
81
83
 
82
84
  modify_json(package_json_file) do |json|
@@ -95,6 +97,9 @@ module MakeItSo
95
97
  append_to_file '.gitignore' do
96
98
  "coverage/*\n"
97
99
  end
100
+
101
+ remove_file '.babelrc'
102
+ template '.babelrc'
98
103
  end
99
104
  end
100
105
 
@@ -131,18 +136,8 @@ module MakeItSo
131
136
  })
132
137
  end
133
138
 
134
- run 'touch .babelrc'
135
- modify_json(File.join(destination_root, '.babelrc')) do |json|
136
- json["env"] ||= {}
137
- json["env"]["test"] ||= {}
138
- json["env"]["test"].merge!({
139
- "env": {
140
- "test": {
141
- "presets": ["react", "env"],
142
- }
143
- }
144
- })
145
- end
139
+ remove_file '.babelrc'
140
+ template '.babelrc'
146
141
  end
147
142
  end
148
143
 
@@ -251,7 +246,7 @@ module MakeItSo
251
246
  #note: temporary fix that can be removed once devise progresses #beyond v4.4.3
252
247
  # https://github.com/plataformatec/devise/pull/4869/files
253
248
  inside 'config/initializers' do
254
- insert_into_file 'devise.rb',
249
+ insert_into_file 'devise.rb',
255
250
  after: "Devise.setup do |config|" do
256
251
  " config.secret_key = Rails.application.secret_key_base\n"
257
252
  end
@@ -278,14 +273,12 @@ module MakeItSo
278
273
  end
279
274
 
280
275
  def foundation_dependency
281
- @generator.gem 'foundation-rails', '~> 5.0'
276
+ @generator.gem 'foundation-rails', '~> 6.5'
282
277
 
283
278
  after_bundle do
284
279
  generate 'foundation:install foundation'
285
280
  # foundation-rails generates an application layout so we
286
281
  # must remove it
287
- # there is a pull request open to skip this:
288
- # https://github.com/zurb/foundation-rails/pull/108
289
282
  remove_file 'app/views/layouts/foundation.html.erb'
290
283
 
291
284
  inside 'app/assets/javascripts' do
@@ -297,10 +290,10 @@ module MakeItSo
297
290
  end
298
291
 
299
292
  protected
300
- PACKAGE_PATH = 'package.json'
301
- WEBCONFIG_PATH = 'webpack.config.js'
302
293
 
303
- protected
294
+ PACKAGE_PATH = "package.json"
295
+ WEBCONFIG_PATH = "webpack.config.js"
296
+
304
297
  def parsed_package_json
305
298
  @package_json ||= parse_json_file(package_json_file)
306
299
  end
@@ -1,3 +1,3 @@
1
1
  module MakeItSo
2
- VERSION = "0.4.5"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -23,9 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency "activerecord", "~> 5.2"
24
24
  spec.add_dependency "json"
25
25
 
26
- spec.add_development_dependency "bundler", "~> 1.7"
27
- spec.add_development_dependency "appraisal"
28
- spec.add_development_dependency "rake", "~> 12.0"
26
+ spec.add_development_dependency "bundler", "~> 2.0.2"
29
27
  spec.add_development_dependency "rspec"
30
28
  spec.add_development_dependency "capybara"
31
29
  end
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "devDependencies": {
3
3
  "babel-jest": "~23.4.0",
4
- "enzyme": "~3.3.0",
5
- "enzyme-adapter-react-15.4": "~1.0.6",
4
+ "enzyme": "~3.10.0",
5
+ "enzyme-adapter-react-16": "~1.14.0",
6
6
  "fetch-mock": "~5.13.1",
7
- "jest": "~23.4.1",
8
- "react-addons-test-utils": "~15.6.2"
7
+ "jest": "~23.4.1"
9
8
  }
10
9
  }
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "devDependencies": {
3
- "babel-plugin-transform-runtime": "^6.23.0",
4
- "enzyme": "~2.9.1",
3
+ "enzyme": "~3.10.0",
4
+ "enzyme-adapter-react-16": "^1.14.0",
5
5
  "fetch-mock": "5",
6
6
  "fetch-ponyfill": "^6.0.2",
7
7
  "jasmine-core": "~2.4.1",
8
- "jasmine-enzyme": "~3.4.0",
8
+ "jasmine-enzyme": "~7.0.0",
9
9
  "karma": "~0.13.22",
10
10
  "karma-coverage": "0.5.5",
11
11
  "karma-jasmine": "~0.3.8",
@@ -13,8 +13,6 @@
13
13
  "karma-sourcemap-loader": "0.3.7",
14
14
  "karma-spec-reporter": "0.0.26",
15
15
  "karma-webpack": "2.0.1",
16
- "phantomjs-prebuilt": "~2.1.14",
17
- "react-addons-test-utils": "~15.6.2"
16
+ "phantomjs-prebuilt": "~2.1.14"
18
17
  }
19
18
  }
20
-
@@ -1,12 +1,20 @@
1
1
  {
2
2
  "dependencies": {
3
- "babel-preset-react": "~6.24.1",
4
3
  "prop-types": "~15.6.0",
5
- "react": "~15.4.2",
6
- "react-dom": "~15.4.2",
4
+ "react": "~16.8.0",
5
+ "react-dom": "~16.8.0",
6
+ "react-router-dom": "5.0.0",
7
7
  "redbox-react": "1.6.0"
8
8
  },
9
9
  "devDependencies": {
10
+ "@babel/core": "^7.5.5",
11
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
12
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
13
+ "@babel/plugin-syntax-dynamic-import": "^7.0.0",
14
+ "@babel/plugin-transform-runtime": "^7.5.5",
15
+ "@babel/preset-env": "^7.5.5",
16
+ "@babel/preset-react": "^7.0.0",
17
+ "babel-loader": "^8.0.6",
10
18
  "webpack-cli": "^2.0.10",
11
19
  "webpack-dev-server": "^2.11.1"
12
20
  }
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- feature 'user generates rails app' do
3
+ feature 'user generates rails app with default settings' do
4
4
  def app_name
5
5
  'dummy_rails'
6
6
  end
@@ -9,7 +9,9 @@ feature 'user generates rails app' do
9
9
  join_paths(tmp_path, app_name)
10
10
  end
11
11
 
12
- let(:css_manifest_path) { join_paths(app_path, 'app/assets/stylesheets/application.css') }
12
+ let(:css_manifest_path) {
13
+ join_paths(app_path, 'app/assets/stylesheets/application.css')
14
+ }
13
15
 
14
16
  let(:gemfile_path) { join_paths(app_path, 'Gemfile')}
15
17
  let(:package_json_path) { join_paths(app_path, 'package.json')}
@@ -84,7 +86,7 @@ feature 'user generates rails app' do
84
86
  expect(File.read(gemfile_path)).to include('capybara')
85
87
  end
86
88
 
87
- it 'includes launch as a Gemfile dependency' do
89
+ it 'includes launchy as a Gemfile dependency' do
88
90
  expect(File.read(gemfile_path)).to include('launchy')
89
91
  end
90
92
 
@@ -188,8 +190,13 @@ feature 'user generates rails app' do
188
190
  expect(File.read(css_manifest_path)).to include('foundation_and_overrides')
189
191
  end
190
192
 
191
- it 'includes modernizr in the layout' do
192
- expect(File.read(File.join(app_path, 'app/views/layouts/application.html.erb'))).to include('modernizr')
193
+ it 'does not include foundation.html.erb' do
194
+ foundation_html = File.join(app_path, 'app/views/layouts/foundation.html.erb')
195
+ expect(FileTest.exists?(foundation_html)).to eq(false)
196
+ end
197
+
198
+ it 'does not include modernizr in the layout' do
199
+ expect(read_file('app/views/layouts/application.html.erb')).to_not include('modernizr')
193
200
  end
194
201
  end
195
202
 
@@ -200,7 +207,9 @@ feature 'user generates rails app' do
200
207
 
201
208
  it 'includes react in package.json' do
202
209
  in_package_json?(File.join(app_path, 'package.json')) do |json|
203
- expect(json["dependencies"]["react"]).to_not be_nil
210
+ react = json["dependencies"]["react"]
211
+ expect(major_version(react)).to be 16
212
+ expect(minor_version(react)).to be 8
204
213
  end
205
214
  end
206
215
 
@@ -212,152 +221,166 @@ feature 'user generates rails app' do
212
221
 
213
222
  it 'includes react-dom in package.json' do
214
223
  in_package_json?(File.join(app_path, 'package.json')) do |json|
215
- expect(json["dependencies"]["react-dom"]).to_not be_nil
224
+ react_dom = json["dependencies"]["react-dom"]
225
+ expect(major_version(react_dom)).to be 16
226
+ expect(minor_version(react_dom)).to be 8
227
+ end
228
+ end
229
+
230
+ it 'includes react-router-dom in package.json' do
231
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
232
+ expect(json["dependencies"]["react-router-dom"]).to_not be_nil
216
233
  end
217
234
  end
218
235
  end
219
236
 
220
- context 'karma' do
221
- it 'creates a karma.config' do
222
- karma_config = File.join(app_path, 'karma.conf.js')
223
- expect(FileTest.exists?(karma_config)).to eq(true)
237
+ context 'dotenv' do
238
+ it 'adds dotenv-rails to Gemfile' do
239
+ expect(File.read(gemfile_path)).to match(/gem(.*)dotenv-rails/)
224
240
  end
225
241
 
226
- it 'creates a testHelper.js' do
227
- test_helper = File.join(app_path, 'spec/javascript/testHelper.js')
228
- expect(FileTest.exists?(test_helper)).to eq(true)
242
+ it 'adds .env to gitignore' do
243
+ expect(read_file('.gitignore')).to include(".env\n")
229
244
  end
230
245
 
231
- it 'includes karma in package.json' do
232
- in_package_json?(File.join(app_path, 'package.json')) do |json|
233
- expect(json["devDependencies"]["karma"]).to_not be_nil
234
- end
246
+ it 'creates a .env file' do
247
+ expect(FileTest.exists?(File.join(app_path, '.env'))).to eq(true)
235
248
  end
236
249
 
237
- it 'includes jasmine in package.json' do
250
+ it 'creates a .env.example file' do
251
+ expect(FileTest.exists?(File.join(app_path, '.env.example'))).to eq(true)
252
+ end
253
+ end
254
+
255
+ context 'babel' do
256
+ it 'includes necessary babel packages in package.json as dev dependencies' do
238
257
  in_package_json?(File.join(app_path, 'package.json')) do |json|
239
- expect(json["devDependencies"]["jasmine-core"]).to_not be_nil
258
+ expect(json["devDependencies"]["@babel/core"]).to_not be_nil
259
+ expect(json["devDependencies"]["@babel/preset-env"]).to_not be_nil
260
+ expect(json["devDependencies"]["@babel/preset-react"]).to_not be_nil
261
+ expect(json["devDependencies"]["babel-loader"]).to_not be_nil
240
262
  end
241
263
  end
242
264
 
243
- it 'includes react-addons-test-utils' do
265
+ it 'sets necessary presets in .babelrc' do
266
+ babelrc = read_file('.babelrc')
267
+ expect(babelrc).to include("@babel/env")
268
+ expect(babelrc).to include("@babel/react")
269
+ end
270
+ end
271
+
272
+ context 'enzyme' do
273
+ it 'includes enzyme in package.json' do
244
274
  in_package_json?(File.join(app_path, 'package.json')) do |json|
245
- expect(json["devDependencies"]["react-addons-test-utils"]).to_not be_nil
275
+ enzyme = json["devDependencies"]["enzyme"]
276
+ expect(major_version(enzyme)).to be 3
277
+ expect(minor_version(enzyme)).to be 10
246
278
  end
247
279
  end
248
280
 
249
- it 'includes fetch-mock' do
281
+ it 'includes enzyme-adapter-react-16 in package.json' do
250
282
  in_package_json?(File.join(app_path, 'package.json')) do |json|
251
- expect(json["devDependencies"]["fetch-mock"]).to_not be_nil
283
+ adapter = json["devDependencies"]["enzyme-adapter-react-16"]
284
+ expect(major_version(adapter)).to be 1
285
+ expect(minor_version(adapter)).to be 14
252
286
  end
253
-
254
287
  end
255
288
 
256
- it 'adds coverage/* to gitignore' do
257
- expect(File.read(File.join(app_path, '.gitignore'))).to include("coverage/*\n")
289
+ it 'adds a spec/javascript/support/enzyme.js file' do
290
+ support_file = File.join(app_path, 'spec/javascript/support/enzyme.js')
291
+ expect(FileTest.exists?(support_file)).to eq(true)
258
292
  end
259
293
 
294
+ it 'adds spec/javascript/support/enzyme.js to setup' do
295
+ in_package_json?(package_json_path) do |json|
296
+ expect(json["jest"]).to_not be_nil
297
+ expect(json["jest"]["setupFiles"]).to include('./spec/javascript/support/enzyme.js')
298
+ end
299
+ end
260
300
  end
261
301
 
262
- context 'dotenv' do
263
- it 'adds dotenv-rails to Gemfile' do
264
- expect(File.read(gemfile_path)).to match(/gem(.*)dotenv-rails/)
302
+ context 'jest' do
303
+ it 'includes fetch-mock' do
304
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
305
+ expect(json["devDependencies"]["fetch-mock"]).to_not be_nil
306
+ end
265
307
  end
266
308
 
267
- it 'adds .env to gitignore' do
268
- expect(File.read(File.join(app_path, '.gitignore'))).to include(".env\n")
309
+ scenario 'adds jest as a dependency' do
310
+ in_package_json?(package_json_path) do |json|
311
+ expect(json["devDependencies"]["jest"]).to_not be_nil
312
+ end
269
313
  end
270
314
 
271
- it 'creates a .env file' do
272
- expect(FileTest.exists?(File.join(app_path, '.env'))).to eq(true)
315
+ scenario 'adds enzyme as a dependency' do
316
+ in_package_json?(package_json_path) do |json|
317
+ expect(json["devDependencies"]["enzyme"]).to_not be_nil
318
+ end
273
319
  end
274
320
 
275
- it 'creates a .env.example file' do
276
- expect(FileTest.exists?(File.join(app_path, '.env.example'))).to eq(true)
321
+ scenario 'adds fetch-mock as a dependency' do
322
+ in_package_json?(package_json_path) do |json|
323
+ expect(json["devDependencies"]["fetch-mock"]).to_not be_nil
324
+ end
277
325
  end
278
- end
279
- end
280
326
 
281
- feature 'jest' do
282
- def app_name
283
- 'dummy_rails'
284
- end
285
-
286
- def app_path
287
- join_paths(tmp_path, app_name)
288
- end
289
-
290
- before(:all) do
291
- make_it_so!("rails #{app_name} --jest")
292
- end
293
-
294
- let(:package_json_path) { File.join(app_path, 'package.json') }
295
-
296
-
297
- scenario 'adds jest as a dependency' do
298
- in_package_json?(package_json_path) do |json|
299
- expect(json["devDependencies"]["jest"]).to_not be_nil
327
+ scenario 'adds jest as the test script in package.json' do
328
+ in_package_json?(package_json_path) do |json|
329
+ expect(json["scripts"]["test"]).to include("jest")
330
+ end
300
331
  end
301
- end
302
332
 
303
- scenario 'adds enzyme as a dependency' do
304
- in_package_json?(package_json_path) do |json|
305
- expect(json["devDependencies"]["enzyme"]).to_not be_nil
333
+ scenario 'adds spec/javascripts to roots' do
334
+ in_package_json?(package_json_path) do |json|
335
+ expect(json["jest"]).to_not be_nil
336
+ expect(json["jest"]["roots"]).to include("spec/javascript")
337
+ end
306
338
  end
307
- end
308
339
 
309
- scenario 'adds fetch-mock as a dependency' do
310
- in_package_json?(package_json_path) do |json|
311
- expect(json["devDependencies"]["fetch-mock"]).to_not be_nil
340
+ scenario 'adds node_modules to modules directory' do
341
+ in_package_json?(package_json_path) do |json|
342
+ expect(json["jest"]).to_not be_nil
343
+ expect(json["jest"]["moduleDirectories"]).to_not be_nil
344
+ expect(json["jest"]["moduleDirectories"]).to include("node_modules")
345
+ end
312
346
  end
313
- end
314
347
 
315
- scenario 'adds jest as the test script in package.json' do
316
- in_package_json?(package_json_path) do |json|
317
- expect(json["scripts"]["test"]).to include("jest")
348
+ scenario 'adds app/javascript to modules directory' do
349
+ in_package_json?(package_json_path) do |json|
350
+ expect(json["jest"]).to_not be_nil
351
+ expect(json["jest"]["moduleDirectories"]).to_not be_nil
352
+ expect(json["jest"]["moduleDirectories"]).to include("app/javascript")
353
+ end
318
354
  end
319
- end
320
355
 
321
- scenario 'adds spec/javascripts to roots' do
322
- in_package_json?(package_json_path) do |json|
323
- expect(json["jest"]).to_not be_nil
324
- expect(json["jest"]["roots"]).to include("spec/javascript")
356
+ scenario 'adds testURL to jest configuration' do
357
+ in_package_json?(package_json_path) do |json|
358
+ expect(json["jest"]).to_not be_nil
359
+ expect(json["jest"]["testURL"]).to_not be_nil
360
+ expect(json["jest"]["testURL"]).to eq("http://localhost/")
361
+ end
325
362
  end
326
363
  end
327
364
 
328
- scenario 'adds node_modules to modules directory' do
329
- in_package_json?(package_json_path) do |json|
330
- expect(json["jest"]).to_not be_nil
331
- expect(json["jest"]["moduleDirectories"]).to_not be_nil
332
- expect(json["jest"]["moduleDirectories"]).to include("node_modules")
333
- end
365
+ it 'does not create a karma.config' do
366
+ karma_config = File.join(app_path, 'karma.conf.js')
367
+ expect(FileTest.exists?(karma_config)).to eq(false)
334
368
  end
335
369
 
336
- scenario 'adds app/javascript to modules directory' do
337
- in_package_json?(package_json_path) do |json|
338
- expect(json["jest"]).to_not be_nil
339
- expect(json["jest"]["moduleDirectories"]).to_not be_nil
340
- expect(json["jest"]["moduleDirectories"]).to include("app/javascript")
341
- end
370
+ it 'does not create a testHelper.js' do
371
+ test_helper = File.join(app_path, 'spec/javascript/testHelper.js')
372
+ expect(FileTest.exists?(test_helper)).to eq(false)
342
373
  end
343
374
 
344
- scenario 'adds testURL to jest configuration' do
345
- in_package_json?(package_json_path) do |json|
346
- expect(json["jest"]).to_not be_nil
347
- expect(json["jest"]["testURL"]).to_not be_nil
348
- expect(json["jest"]["testURL"]).to eq("http://localhost/")
375
+ it 'does not include karma in package.json' do
376
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
377
+ expect(json["devDependencies"]["karma"]).to be_nil
349
378
  end
350
379
  end
351
380
 
352
- scenario 'adds a spec/javascript/support/enzyme.js file' do
353
- support_file = File.join(app_path, 'spec/javascript/support/enzyme.js')
354
- expect(FileTest.exists?(support_file)).to eq(true)
355
- end
356
-
357
- scenario 'adds spec/javascript/support/enzyme.js to setup' do
358
- in_package_json?(package_json_path) do |json|
359
- expect(json["jest"]).to_not be_nil
360
- expect(json["jest"]["setupFiles"]).to include('./spec/javascript/support/enzyme.js')
381
+ it 'does not include jasmine in package.json' do
382
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
383
+ expect(json["devDependencies"]["jasmine-core"]).to be_nil
361
384
  end
362
385
  end
363
386
  end
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ feature "user generates rails app with karma/jasmine" do
4
+ def app_name
5
+ 'dummy_rails'
6
+ end
7
+
8
+ def app_path
9
+ join_paths(tmp_path, app_name)
10
+ end
11
+
12
+ before(:all) do
13
+ make_it_so!("rails #{app_name} --js-test-lib karma")
14
+ end
15
+
16
+ let(:package_json_path) { File.join(app_path, 'package.json') }
17
+
18
+ it 'creates a karma.config' do
19
+ karma_config = File.join(app_path, 'karma.conf.js')
20
+ expect(FileTest.exists?(karma_config)).to eq(true)
21
+ end
22
+
23
+ it 'creates a testHelper.js' do
24
+ test_helper = File.join(app_path, 'spec/javascript/testHelper.js')
25
+ expect(FileTest.exists?(test_helper)).to eq(true)
26
+ end
27
+
28
+ it 'includes karma in package.json' do
29
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
30
+ expect(json["devDependencies"]["karma"]).to_not be_nil
31
+ end
32
+ end
33
+
34
+ it 'includes jasmine in package.json' do
35
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
36
+ expect(json["devDependencies"]["jasmine-core"]).to_not be_nil
37
+ end
38
+ end
39
+
40
+ it 'adds coverage/* to gitignore' do
41
+ expect(read_file('.gitignore')).to include("coverage/*\n")
42
+ end
43
+
44
+ it 'configures enzyme with adapter in testHelper' do
45
+ testHelper = read_file('spec/javascript/testHelper.js')
46
+ expect(testHelper).to include("Enzyme.configure({ adapter: new EnzymeAdapter() })")
47
+ end
48
+
49
+ it 'karma.conf.js uses @babel/polyfill' do
50
+ expect(read_file('karma.conf.js')).to include("node_modules/@babel/polyfill/dist/polyfill.js")
51
+ end
52
+
53
+ it 'does not add jest as the test script in package.json' do
54
+ in_package_json?(package_json_path) do |json|
55
+ expect(json["scripts"]["test"]).to_not include("jest")
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+
3
+ feature "user generates rails app without js test framework" do
4
+ def app_name
5
+ 'dummy_rails'
6
+ end
7
+
8
+ def app_path
9
+ join_paths(tmp_path, app_name)
10
+ end
11
+
12
+ before(:all) do
13
+ make_it_so!("rails #{app_name} --js-test-lib false")
14
+ end
15
+
16
+ let(:package_json_path) { File.join(app_path, 'package.json') }
17
+
18
+ it 'does not create a karma.config' do
19
+ karma_config = File.join(app_path, 'karma.conf.js')
20
+ expect(FileTest.exists?(karma_config)).to eq(false)
21
+ end
22
+
23
+ it 'does not create a testHelper.js' do
24
+ test_helper = File.join(app_path, 'spec/javascript/testHelper.js')
25
+ expect(FileTest.exists?(test_helper)).to eq(false)
26
+ end
27
+
28
+ it 'does not create an enzyme config file' do
29
+ test_helper = File.join(app_path, 'spec/javascript/support/enzyme.js')
30
+ expect(FileTest.exists?(test_helper)).to eq(false)
31
+ end
32
+
33
+ it 'does not include karma or jest in package.json' do
34
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
35
+ expect(json["devDependencies"]["karma"]).to be_nil
36
+ expect(json["devDependencies"]["jest"]).to be_nil
37
+ end
38
+ end
39
+
40
+ it 'does not include jasmine in package.json' do
41
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
42
+ expect(json["devDependencies"]["jasmine-core"]).to be_nil
43
+ end
44
+ end
45
+
46
+ it 'does not add a test script in package.json' do
47
+ in_package_json?(package_json_path) do |json|
48
+ expect(json["scripts"]["test"]).to be_nil
49
+ end
50
+ end
51
+ end
@@ -50,6 +50,29 @@ module MakeItSoSpecHelpers
50
50
  json = JSON.parse(contents)
51
51
  yield(json)
52
52
  end
53
+
54
+ def read_file(file_path)
55
+ File.read(File.join(app_path, file_path))
56
+ end
57
+
58
+ def major_version(version_string)
59
+ version_array(version_string)[0]
60
+ end
61
+
62
+ def minor_version(version_string)
63
+ version_array(version_string)[1]
64
+ end
65
+
66
+ def patch_version(version_string)
67
+ version_array(version_string)[2]
68
+ end
69
+
70
+ def version_array(version_string)
71
+ version_string.delete!("^")
72
+ version_string.delete!("~")
73
+ version_array = version_string.split(".")
74
+ version_array.map{ |string| string.to_i }
75
+ end
53
76
  end
54
77
 
55
78
  RSpec.configure do |config|
@@ -0,0 +1,33 @@
1
+ {
2
+ "presets": [
3
+ [
4
+ "@babel/env",
5
+ {
6
+ "modules": false,
7
+ "targets": {
8
+ "browsers": "> 1%"
9
+ },
10
+ "forceAllTransforms": true
11
+ }
12
+ ],
13
+ "@babel/react"
14
+ ],
15
+ "plugins": [
16
+ "@babel/syntax-dynamic-import",
17
+ "@babel/proposal-object-rest-spread",
18
+ [
19
+ "@babel/proposal-class-properties",
20
+ {
21
+ "spec": true
22
+ }
23
+ ]
24
+ ],
25
+ "env": {
26
+ "test": {
27
+ "presets": [
28
+ "@babel/env",
29
+ "@babel/react"
30
+ ]
31
+ }
32
+ }
33
+ }
@@ -4,4 +4,4 @@ export const App = (props) => {
4
4
  return (<h1>Make It So React</h1>)
5
5
  }
6
6
 
7
- export default App
7
+ export default App
@@ -4,20 +4,13 @@
4
4
  <title><%= camelized %></title>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <%%= stylesheet_link_tag 'application', media: 'all' %>
7
- <% if options.foundation? %>
8
- <%%= javascript_include_tag "vendor/modernizr" %>
9
- <% end %>
10
7
  <%%= csrf_meta_tags %>
11
8
  </head>
12
9
  <body>
13
10
  <%- if options.devise? -%>
14
11
  <% if options.foundation? %>
15
12
  <nav class="top-bar">
16
- <ul class="title-area">
17
- <li class="name">
18
- <h1><a href="/"><%= camelized %></a></h1>
19
- </li>
20
- </ul>
13
+ <h1><a href="/"><%= camelized %></a></h1>
21
14
 
22
15
  <section class="top-bar-section">
23
16
  <ul class="right">
@@ -12,7 +12,7 @@ module.exports = function(config) {
12
12
  // files that Karma will server to the browser
13
13
  files: [
14
14
  // use Babel polyfill to emulate a full ES6 environment in PhantomJS
15
- 'node_modules/babel-polyfill/dist/polyfill.js',
15
+ 'node_modules/@babel/polyfill/dist/polyfill.js',
16
16
  // entry file for Webpack
17
17
  'spec/javascript/testHelper.js'
18
18
  ],
@@ -1,6 +1,4 @@
1
1
  const Enzyme = require('enzyme');
2
-
3
2
  const EnzymeAdapter = require('enzyme-adapter-react-15.4');
4
3
 
5
4
  Enzyme.configure({ adapter: new EnzymeAdapter() });
6
-
@@ -1,3 +1,7 @@
1
+ const Enzyme = require('enzyme');
2
+ const EnzymeAdapter = require('enzyme-adapter-react-16');
3
+ Enzyme.configure({ adapter: new EnzymeAdapter() });
4
+
1
5
  import { shallow, mount } from 'enzyme';
2
6
  import jasmineEnzyme from 'jasmine-enzyme';
3
7
  import React from 'react';
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: make_it_so
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Pickett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-05 00:00:00.000000000 Z
11
+ date: 2019-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -72,42 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.7'
75
+ version: 2.0.2
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.7'
83
- - !ruby/object:Gem::Dependency
84
- name: appraisal
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rake
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '12.0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '12.0'
82
+ version: 2.0.2
111
83
  - !ruby/object:Gem::Dependency
112
84
  name: rspec
113
85
  requirement: !ruby/object:Gem::Requirement
@@ -146,18 +118,11 @@ extra_rdoc_files: []
146
118
  files:
147
119
  - ".gitignore"
148
120
  - ".rspec"
149
- - Appraisals
150
121
  - Gemfile
151
122
  - LICENSE.txt
152
123
  - README.md
153
124
  - Rakefile
154
125
  - bin/make_it_so
155
- - gemfiles/rails_4_0.gemfile
156
- - gemfiles/rails_4_0.gemfile.lock
157
- - gemfiles/rails_4_1.gemfile
158
- - gemfiles/rails_4_1.gemfile.lock
159
- - gemfiles/rails_4_2.gemfile
160
- - gemfiles/rails_4_2.gemfile.lock
161
126
  - lib/generators/gosu_app_generator.rb
162
127
  - lib/generators/rails_app_generator.rb
163
128
  - lib/generators/sinatra_app_generator.rb
@@ -169,11 +134,13 @@ files:
169
134
  - make_it_so.gemspec
170
135
  - snippets/rails/application_generator.rb
171
136
  - snippets/rails/js_jest_testing_deps.json
172
- - snippets/rails/js_testing_deps.json
137
+ - snippets/rails/js_karma_jasmine_testing_deps.json
173
138
  - snippets/rails/react_dependencies.json
174
139
  - snippets/rails/user_factory.rb
140
+ - spec/features/rails/user_generates_rails_spec.rb
141
+ - spec/features/rails/user_generates_rails_with_karma_spec.rb
142
+ - spec/features/rails/user_generates_rails_without_js_test_lib_spec.rb
175
143
  - spec/features/user_generates_gosu_spec.rb
176
- - spec/features/user_generates_rails_spec.rb
177
144
  - spec/features/user_generates_sinatra_spec.rb
178
145
  - spec/spec_helper.rb
179
146
  - spec/support/make_it_so_spec_helpers.rb
@@ -185,6 +152,7 @@ files:
185
152
  - templates/gosu/lib/bounding_box.rb
186
153
  - templates/gosu/lib/keys.rb
187
154
  - templates/gosu/spec/spec_helper.rb
155
+ - templates/rails/.babelrc
188
156
  - templates/rails/.env
189
157
  - templates/rails/.env.example
190
158
  - templates/rails/.gitkeep
@@ -236,14 +204,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
204
  - !ruby/object:Gem::Version
237
205
  version: '0'
238
206
  requirements: []
239
- rubyforge_project:
240
- rubygems_version: 2.6.13
207
+ rubygems_version: 3.0.6
241
208
  signing_key:
242
209
  specification_version: 4
243
210
  summary: An application generator for all things ruby
244
211
  test_files:
212
+ - spec/features/rails/user_generates_rails_spec.rb
213
+ - spec/features/rails/user_generates_rails_with_karma_spec.rb
214
+ - spec/features/rails/user_generates_rails_without_js_test_lib_spec.rb
245
215
  - spec/features/user_generates_gosu_spec.rb
246
- - spec/features/user_generates_rails_spec.rb
247
216
  - spec/features/user_generates_sinatra_spec.rb
248
217
  - spec/spec_helper.rb
249
218
  - spec/support/make_it_so_spec_helpers.rb
data/Appraisals DELETED
@@ -1,4 +0,0 @@
1
- appraise "rails-4-2" do
2
- gem "railties", "~> 4.2.0"
3
- end
4
-
@@ -1,11 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "railties", "~> 4.0.12"
6
-
7
- group :development do
8
- gem "pry"
9
- end
10
-
11
- gemspec :path => "../"
@@ -1,88 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- make_it_so (0.0.2)
5
- railties
6
- thor
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actionpack (4.0.12)
12
- activesupport (= 4.0.12)
13
- builder (~> 3.1.0)
14
- erubis (~> 2.7.0)
15
- rack (~> 1.5.2)
16
- rack-test (~> 0.6.2)
17
- activesupport (4.0.12)
18
- i18n (~> 0.6, >= 0.6.9)
19
- minitest (~> 4.2)
20
- multi_json (~> 1.3)
21
- thread_safe (~> 0.1)
22
- tzinfo (~> 0.3.37)
23
- appraisal (1.0.2)
24
- bundler
25
- rake
26
- thor (>= 0.14.0)
27
- builder (3.1.4)
28
- capybara (2.4.4)
29
- mime-types (>= 1.16)
30
- nokogiri (>= 1.3.3)
31
- rack (>= 1.0.0)
32
- rack-test (>= 0.5.4)
33
- xpath (~> 2.0)
34
- coderay (1.1.0)
35
- diff-lcs (1.2.5)
36
- erubis (2.7.0)
37
- i18n (0.7.0)
38
- method_source (0.8.2)
39
- mime-types (2.4.3)
40
- mini_portile (0.6.1)
41
- minitest (4.7.5)
42
- multi_json (1.10.1)
43
- nokogiri (1.6.5)
44
- mini_portile (~> 0.6.0)
45
- pry (0.10.1)
46
- coderay (~> 1.1.0)
47
- method_source (~> 0.8.1)
48
- slop (~> 3.4)
49
- rack (1.5.2)
50
- rack-test (0.6.2)
51
- rack (>= 1.0)
52
- railties (4.0.12)
53
- actionpack (= 4.0.12)
54
- activesupport (= 4.0.12)
55
- rake (>= 0.8.7)
56
- thor (>= 0.18.1, < 2.0)
57
- rake (10.4.2)
58
- rspec (3.1.0)
59
- rspec-core (~> 3.1.0)
60
- rspec-expectations (~> 3.1.0)
61
- rspec-mocks (~> 3.1.0)
62
- rspec-core (3.1.7)
63
- rspec-support (~> 3.1.0)
64
- rspec-expectations (3.1.2)
65
- diff-lcs (>= 1.2.0, < 2.0)
66
- rspec-support (~> 3.1.0)
67
- rspec-mocks (3.1.3)
68
- rspec-support (~> 3.1.0)
69
- rspec-support (3.1.2)
70
- slop (3.6.0)
71
- thor (0.19.1)
72
- thread_safe (0.3.4)
73
- tzinfo (0.3.42)
74
- xpath (2.0.0)
75
- nokogiri (~> 1.3)
76
-
77
- PLATFORMS
78
- ruby
79
-
80
- DEPENDENCIES
81
- appraisal
82
- bundler (~> 1.7)
83
- capybara
84
- make_it_so!
85
- pry
86
- railties (~> 4.0.12)
87
- rake (~> 10.0)
88
- rspec
@@ -1,11 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "railties", "~> 4.1.8"
6
-
7
- group :development do
8
- gem "pry"
9
- end
10
-
11
- gemspec :path => "../"
@@ -1,92 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- make_it_so (0.0.2)
5
- railties
6
- thor
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actionpack (4.1.8)
12
- actionview (= 4.1.8)
13
- activesupport (= 4.1.8)
14
- rack (~> 1.5.2)
15
- rack-test (~> 0.6.2)
16
- actionview (4.1.8)
17
- activesupport (= 4.1.8)
18
- builder (~> 3.1)
19
- erubis (~> 2.7.0)
20
- activesupport (4.1.8)
21
- i18n (~> 0.6, >= 0.6.9)
22
- json (~> 1.7, >= 1.7.7)
23
- minitest (~> 5.1)
24
- thread_safe (~> 0.1)
25
- tzinfo (~> 1.1)
26
- appraisal (1.0.2)
27
- bundler
28
- rake
29
- thor (>= 0.14.0)
30
- builder (3.2.2)
31
- capybara (2.4.4)
32
- mime-types (>= 1.16)
33
- nokogiri (>= 1.3.3)
34
- rack (>= 1.0.0)
35
- rack-test (>= 0.5.4)
36
- xpath (~> 2.0)
37
- coderay (1.1.0)
38
- diff-lcs (1.2.5)
39
- erubis (2.7.0)
40
- i18n (0.7.0)
41
- json (1.8.1)
42
- method_source (0.8.2)
43
- mime-types (2.4.3)
44
- mini_portile (0.6.1)
45
- minitest (5.5.0)
46
- nokogiri (1.6.5)
47
- mini_portile (~> 0.6.0)
48
- pry (0.10.1)
49
- coderay (~> 1.1.0)
50
- method_source (~> 0.8.1)
51
- slop (~> 3.4)
52
- rack (1.5.2)
53
- rack-test (0.6.2)
54
- rack (>= 1.0)
55
- railties (4.1.8)
56
- actionpack (= 4.1.8)
57
- activesupport (= 4.1.8)
58
- rake (>= 0.8.7)
59
- thor (>= 0.18.1, < 2.0)
60
- rake (10.4.2)
61
- rspec (3.1.0)
62
- rspec-core (~> 3.1.0)
63
- rspec-expectations (~> 3.1.0)
64
- rspec-mocks (~> 3.1.0)
65
- rspec-core (3.1.7)
66
- rspec-support (~> 3.1.0)
67
- rspec-expectations (3.1.2)
68
- diff-lcs (>= 1.2.0, < 2.0)
69
- rspec-support (~> 3.1.0)
70
- rspec-mocks (3.1.3)
71
- rspec-support (~> 3.1.0)
72
- rspec-support (3.1.2)
73
- slop (3.6.0)
74
- thor (0.19.1)
75
- thread_safe (0.3.4)
76
- tzinfo (1.2.2)
77
- thread_safe (~> 0.1)
78
- xpath (2.0.0)
79
- nokogiri (~> 1.3)
80
-
81
- PLATFORMS
82
- ruby
83
-
84
- DEPENDENCIES
85
- appraisal
86
- bundler (~> 1.7)
87
- capybara
88
- make_it_so!
89
- pry
90
- railties (~> 4.1.8)
91
- rake (~> 10.0)
92
- rspec
@@ -1,11 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "railties", "~> 4.2.0"
6
-
7
- group :development do
8
- gem "pry"
9
- end
10
-
11
- gemspec :path => "../"
@@ -1,106 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- make_it_so (0.0.2)
5
- railties
6
- thor
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actionpack (4.2.0)
12
- actionview (= 4.2.0)
13
- activesupport (= 4.2.0)
14
- rack (~> 1.6.0)
15
- rack-test (~> 0.6.2)
16
- rails-dom-testing (~> 1.0, >= 1.0.5)
17
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
18
- actionview (4.2.0)
19
- activesupport (= 4.2.0)
20
- builder (~> 3.1)
21
- erubis (~> 2.7.0)
22
- rails-dom-testing (~> 1.0, >= 1.0.5)
23
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
24
- activesupport (4.2.0)
25
- i18n (~> 0.7)
26
- json (~> 1.7, >= 1.7.7)
27
- minitest (~> 5.1)
28
- thread_safe (~> 0.3, >= 0.3.4)
29
- tzinfo (~> 1.1)
30
- appraisal (1.0.2)
31
- bundler
32
- rake
33
- thor (>= 0.14.0)
34
- builder (3.2.2)
35
- capybara (2.4.4)
36
- mime-types (>= 1.16)
37
- nokogiri (>= 1.3.3)
38
- rack (>= 1.0.0)
39
- rack-test (>= 0.5.4)
40
- xpath (~> 2.0)
41
- coderay (1.1.0)
42
- diff-lcs (1.2.5)
43
- erubis (2.7.0)
44
- i18n (0.7.0)
45
- json (1.8.1)
46
- loofah (2.0.1)
47
- nokogiri (>= 1.5.9)
48
- method_source (0.8.2)
49
- mime-types (2.4.3)
50
- mini_portile (0.6.1)
51
- minitest (5.5.0)
52
- nokogiri (1.6.5)
53
- mini_portile (~> 0.6.0)
54
- pry (0.10.1)
55
- coderay (~> 1.1.0)
56
- method_source (~> 0.8.1)
57
- slop (~> 3.4)
58
- rack (1.6.0)
59
- rack-test (0.6.2)
60
- rack (>= 1.0)
61
- rails-deprecated_sanitizer (1.0.3)
62
- activesupport (>= 4.2.0.alpha)
63
- rails-dom-testing (1.0.5)
64
- activesupport (>= 4.2.0.beta, < 5.0)
65
- nokogiri (~> 1.6.0)
66
- rails-deprecated_sanitizer (>= 1.0.1)
67
- rails-html-sanitizer (1.0.1)
68
- loofah (~> 2.0)
69
- railties (4.2.0)
70
- actionpack (= 4.2.0)
71
- activesupport (= 4.2.0)
72
- rake (>= 0.8.7)
73
- thor (>= 0.18.1, < 2.0)
74
- rake (10.4.2)
75
- rspec (3.1.0)
76
- rspec-core (~> 3.1.0)
77
- rspec-expectations (~> 3.1.0)
78
- rspec-mocks (~> 3.1.0)
79
- rspec-core (3.1.7)
80
- rspec-support (~> 3.1.0)
81
- rspec-expectations (3.1.2)
82
- diff-lcs (>= 1.2.0, < 2.0)
83
- rspec-support (~> 3.1.0)
84
- rspec-mocks (3.1.3)
85
- rspec-support (~> 3.1.0)
86
- rspec-support (3.1.2)
87
- slop (3.6.0)
88
- thor (0.19.1)
89
- thread_safe (0.3.4)
90
- tzinfo (1.2.2)
91
- thread_safe (~> 0.1)
92
- xpath (2.0.0)
93
- nokogiri (~> 1.3)
94
-
95
- PLATFORMS
96
- ruby
97
-
98
- DEPENDENCIES
99
- appraisal
100
- bundler (~> 1.7)
101
- capybara
102
- make_it_so!
103
- pry
104
- railties (~> 4.2.0)
105
- rake (~> 10.0)
106
- rspec