katapult 0.4.1 → 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 +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +34 -12
- data/README.md +154 -114
- data/Rakefile +3 -3
- data/bin/katapult +34 -8
- data/features/application_model.feature +8 -44
- data/features/authenticate.feature +21 -4
- data/features/basics.feature +16 -89
- data/features/binary.feature +37 -4
- data/features/model.feature +40 -24
- data/features/navigation.feature +2 -0
- data/features/step_definitions/katapult_steps.rb +48 -16
- data/features/step_definitions/test_steps.rb +2 -0
- data/features/templates.feature +74 -0
- data/lib/generators/katapult/app_model/templates/lib/katapult/application_model.rb +2 -2
- data/lib/generators/katapult/basics/basics_generator.rb +12 -1
- data/lib/generators/katapult/basics/templates/Capfile +5 -0
- data/lib/generators/katapult/basics/templates/Gemfile +3 -1
- data/lib/generators/katapult/basics/templates/Gemfile.lock +376 -0
- data/lib/generators/katapult/basics/templates/app/models/application_record.rb +28 -0
- data/lib/generators/katapult/basics/templates/app/webpack/assets/javascripts/bootstrap.js +2 -2
- data/lib/generators/katapult/basics/templates/config/deploy.rb +2 -3
- data/lib/generators/katapult/basics/templates/config/deploy/production.rb +2 -2
- data/lib/generators/katapult/basics/templates/config/deploy/staging.rb +1 -1
- data/lib/generators/katapult/basics/templates/lib/capistrano/tasks/deploy.rake +1 -4
- data/lib/generators/katapult/clearance/clearance_generator.rb +13 -4
- data/lib/generators/katapult/clearance/templates/features/authentication.feature +3 -3
- data/lib/generators/katapult/model/model_generator.rb +14 -4
- data/lib/generators/katapult/templates/templates_generator.rb +35 -0
- data/lib/generators/katapult/transform/transform_generator.rb +3 -3
- data/lib/generators/katapult/views/views_generator.rb +1 -1
- data/lib/generators/katapult/web_ui/web_ui_generator.rb +1 -1
- data/lib/katapult/application_model.rb +7 -7
- data/lib/katapult/elements/attribute.rb +16 -0
- data/lib/katapult/elements/authentication.rb +9 -6
- data/lib/katapult/elements/model.rb +8 -4
- data/lib/katapult/elements/navigation.rb +2 -2
- data/lib/katapult/elements/web_ui.rb +2 -2
- data/lib/katapult/generator.rb +12 -2
- data/lib/katapult/support/generator_goodies.rb +14 -0
- data/lib/katapult/version.rb +1 -1
- data/script/update +5 -1
- metadata +8 -8
- data/features/configuration.feature +0 -24
- data/lib/generators/katapult/basics/templates/lib/capistrano/tasks/passenger.rake +0 -8
- data/lib/generators/katapult/basics/templates/lib/ext/active_record/find_by_anything.rb +0 -20
- data/lib/generators/katapult/basics/templates/lib/ext/active_record/these.rb +0 -7
data/features/navigation.feature
CHANGED
@@ -27,22 +27,32 @@ When /^I generate katapult basics$/ do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
# By default, transforming the application model will not recreate and migrate
|
30
|
-
# the test app database (massive test suite speedup).
|
31
|
-
#
|
32
|
-
#
|
33
|
-
When /^I( successfully)? transform the application model( including migrations)?$/ do |require_success, run_migrations|
|
30
|
+
# the test app database (massive test suite speedup). If a scenario relies on
|
31
|
+
# the database being set up (e.g. running Cucumber), be sure to use this step
|
32
|
+
# with trailing "including migrations".
|
33
|
+
When /^I( successfully)? transform the application model( including migrations)?(, ignoring conflicts)?$/ do |require_success, run_migrations, ignore_conflicts|
|
34
34
|
next if @no_clobber
|
35
35
|
|
36
36
|
ENV['SKIP_MIGRATIONS'] = 'true' unless run_migrations # Speedup
|
37
|
+
command = 'rails generate katapult:transform lib/katapult/application_model.rb'
|
38
|
+
command << ' --force' if ignore_conflicts
|
37
39
|
|
38
40
|
with_aruba_timeout 60 do
|
39
41
|
# The second argument of #run_simple defaults to `true`
|
40
|
-
run_simple
|
42
|
+
run_simple command, !!require_success
|
41
43
|
end
|
42
44
|
end
|
43
45
|
After { ENV.delete 'SKIP_MIGRATIONS' }
|
44
46
|
|
45
47
|
Then 'Capistrano should be configured' do
|
48
|
+
steps %(
|
49
|
+
And the file "Gemfile" should contain "capistrano-rails"
|
50
|
+
And the file "Gemfile" should contain "capistrano-bundler"
|
51
|
+
And the file "Gemfile" should contain "capistrano-maintenance"
|
52
|
+
And the file "Gemfile" should contain "capistrano-opscomplete"
|
53
|
+
And the file "Gemfile" should contain "capistrano-passenger"
|
54
|
+
)
|
55
|
+
|
46
56
|
step 'the file "Capfile" should contain:', <<-CONTENT
|
47
57
|
# Load DSL and set up stages
|
48
58
|
require 'capistrano/setup'
|
@@ -50,6 +60,10 @@ require 'capistrano/setup'
|
|
50
60
|
# Include default deployment tasks
|
51
61
|
require 'capistrano/deploy'
|
52
62
|
|
63
|
+
# Configure Opscomplete deployment
|
64
|
+
require 'capistrano/opscomplete'
|
65
|
+
require 'capistrano/passenger'
|
66
|
+
|
53
67
|
# Use Git
|
54
68
|
require 'capistrano/scm/git'
|
55
69
|
install_plugin Capistrano::SCM::Git
|
@@ -69,13 +83,14 @@ Dir.glob('lib/capistrano/tasks/*.rake').sort.each do |r|
|
|
69
83
|
end
|
70
84
|
|
71
85
|
before 'deploy:updating', 'db:dump'
|
86
|
+
after 'deploy:updating', 'opscomplete:ruby:ensure'
|
72
87
|
after 'deploy:published', 'deploy:restart'
|
73
88
|
after 'deploy:published', 'db:warn_if_pending_migrations'
|
74
89
|
after 'deploy:published', 'db:show_dump_usage'
|
75
90
|
after 'deploy:finished', 'deploy:cleanup' # https://makandracards.com/makandra/1432
|
76
91
|
CONTENT
|
77
92
|
|
78
|
-
step 'the file "config/deploy.rb" should contain:', <<-CONTENT
|
93
|
+
step 'the file "config/deploy.rb" should contain:', <<-'CONTENT'
|
79
94
|
# Default value for :format is :pretty
|
80
95
|
# set :format, :pretty
|
81
96
|
|
@@ -90,7 +105,7 @@ set :linked_files, %w(config/database.yml config/secrets.yml)
|
|
90
105
|
|
91
106
|
# Default value for linked_dirs is []
|
92
107
|
# set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system')
|
93
|
-
set :linked_dirs, %w(log public/system tmp/pids)
|
108
|
+
set :linked_dirs, %w(log public/system tmp/pids node_modules public/packs)
|
94
109
|
|
95
110
|
# Default value for default_env is {}
|
96
111
|
# set :default_env, { path: "/opt/ruby/bin:$PATH" }
|
@@ -103,8 +118,7 @@ set :ssh_options, {
|
|
103
118
|
set :repo_url, 'git@code.makandra.de:makandra/katapult_test_app.git'
|
104
119
|
|
105
120
|
# set :whenever_roles, :cron
|
106
|
-
# set :
|
107
|
-
# set :whenever_command, 'bundle exec whenever'
|
121
|
+
# set :whenever_identifier, ->{ "#{fetch(:application)}_#{fetch(:stage)}" }
|
108
122
|
|
109
123
|
set :maintenance_template_path, 'public/maintenance.html.erb'
|
110
124
|
CONTENT
|
@@ -116,7 +130,7 @@ set :deploy_to, '/var/www/katapult_test_app-staging'
|
|
116
130
|
set :rails_env, 'staging'
|
117
131
|
set :branch, ENV['DEPLOY_BRANCH'] || 'master'
|
118
132
|
|
119
|
-
# server 'example.com', user: 'deploy-user', roles: %w
|
133
|
+
# server 'example.com', user: 'deploy-user', roles: %w[app web cron db]
|
120
134
|
CONTENT
|
121
135
|
|
122
136
|
step 'the file "config/deploy/production.rb" should contain exactly:', <<-CONTENT
|
@@ -126,13 +140,12 @@ set :deploy_to, '/var/www/katapult_test_app'
|
|
126
140
|
set :rails_env, 'production'
|
127
141
|
set :branch, 'production'
|
128
142
|
|
129
|
-
# server 'one.example.com', user: 'deploy-user', roles: %w
|
130
|
-
# server 'two.example.com', user: 'deploy-user', roles: %w
|
143
|
+
# server 'one.example.com', user: 'deploy-user', roles: %w[app web cron db]
|
144
|
+
# server 'two.example.com', user: 'deploy-user', roles: %w[app web]
|
131
145
|
CONTENT
|
132
146
|
|
133
147
|
step 'the file "lib/capistrano/tasks/db.rake" should contain ":warn_if_pending_migrations"'
|
134
148
|
step 'the file "lib/capistrano/tasks/deploy.rake" should contain "Show deployed revision"'
|
135
|
-
step 'the file "lib/capistrano/tasks/passenger.rake" should contain "Restart Application"'
|
136
149
|
|
137
150
|
end
|
138
151
|
|
@@ -154,7 +167,7 @@ Then 'Webpacker should be employed' do
|
|
154
167
|
|
155
168
|
step 'the file "config/webpacker.yml" should contain "source_path: app/webpack"'
|
156
169
|
step 'the file "config/webpack/environment.js" should contain:', <<-CONTENT
|
157
|
-
environment.plugins.
|
170
|
+
environment.plugins.prepend('Provide', new webpack.ProvidePlugin({
|
158
171
|
$: 'jquery',
|
159
172
|
CONTENT
|
160
173
|
|
@@ -213,8 +226,15 @@ Then 'styles should be prepared' do
|
|
213
226
|
step 'a directory named "app/webpack/assets/stylesheets/blocks" should exist'
|
214
227
|
step 'a directory named "app/webpack/assets/stylesheets/ext" should exist'
|
215
228
|
|
216
|
-
# JS support for Bootstrap dropdowns
|
217
|
-
step
|
229
|
+
# JS support for Bootstrap dropdowns and mobile navbar
|
230
|
+
step 'the file "app/webpack/assets/javascripts/bootstrap.js" should contain:', <<-CONTENT
|
231
|
+
import 'bootstrap-sass/assets/javascripts/bootstrap/transition'
|
232
|
+
// import 'bootstrap-sass/assets/javascripts/bootstrap/alert'
|
233
|
+
// import 'bootstrap-sass/assets/javascripts/bootstrap/button'
|
234
|
+
// import 'bootstrap-sass/assets/javascripts/bootstrap/carousel'
|
235
|
+
import 'bootstrap-sass/assets/javascripts/bootstrap/collapse'
|
236
|
+
import 'bootstrap-sass/assets/javascripts/bootstrap/dropdown'
|
237
|
+
CONTENT
|
218
238
|
end
|
219
239
|
|
220
240
|
Then 'binstubs should be set up' do
|
@@ -323,3 +343,15 @@ Then 'the errors controller should be installed' do
|
|
323
343
|
step 'a file named "app/controllers/errors_controller.rb" should exist'
|
324
344
|
step 'the file "config/routes.rb" should contain "resources :errors, only: :new"'
|
325
345
|
end
|
346
|
+
|
347
|
+
Then 'Katapult templates should have been copied to the application' do
|
348
|
+
steps %(
|
349
|
+
And a file "lib/templates/katapult/views/index.html.haml" should exist
|
350
|
+
And a file "lib/templates/katapult/views/show.html.haml" should exist
|
351
|
+
And a file "lib/templates/katapult/views/new.html.haml" should exist
|
352
|
+
And a file "lib/templates/katapult/views/edit.html.haml" should exist
|
353
|
+
And a file "lib/templates/katapult/views/_form.html.haml" should exist
|
354
|
+
|
355
|
+
And a file "lib/templates/katapult/web_ui/controller.rb" should exist
|
356
|
+
)
|
357
|
+
end
|
@@ -1,9 +1,11 @@
|
|
1
1
|
When /^I run rspec/ do
|
2
2
|
run_simple 'rspec', exit_timeout: 10
|
3
|
+
run_simple 'bundle exec parallel_test -t rspec -- spec', exit_timeout: 10
|
3
4
|
end
|
4
5
|
|
5
6
|
When /^I run cucumber/ do
|
6
7
|
run_simple 'bundle exec cucumber', exit_timeout: 15
|
8
|
+
run_simple 'bundle exec parallel_test -t cucumber -- features', exit_timeout: 15
|
7
9
|
end
|
8
10
|
|
9
11
|
When 'debugger' do
|
@@ -0,0 +1,74 @@
|
|
1
|
+
#@announce-output
|
2
|
+
#@announce-stderr
|
3
|
+
Feature: Customizing the templates Katapult uses for code generation
|
4
|
+
|
5
|
+
Background:
|
6
|
+
Given a new Rails application with Katapult basics installed
|
7
|
+
|
8
|
+
|
9
|
+
Scenario: Custom controller template
|
10
|
+
When I write to "lib/katapult/application_model.rb" with:
|
11
|
+
"""
|
12
|
+
crud 'Car' do |car|
|
13
|
+
car.attr 'name'
|
14
|
+
end
|
15
|
+
"""
|
16
|
+
And I write to "lib/templates/katapult/web_ui/controller.rb" with:
|
17
|
+
"""
|
18
|
+
# Custom <%= model_name(:classes) %>Controller template
|
19
|
+
|
20
|
+
"""
|
21
|
+
And I successfully transform the application model
|
22
|
+
Then the file "app/controllers/cars_controller.rb" should contain exactly:
|
23
|
+
"""
|
24
|
+
# Custom CarsController template
|
25
|
+
|
26
|
+
"""
|
27
|
+
|
28
|
+
|
29
|
+
Scenario: Custom view templates
|
30
|
+
When I write to "lib/katapult/application_model.rb" with:
|
31
|
+
"""
|
32
|
+
crud 'Car' do |car|
|
33
|
+
car.attr 'name'
|
34
|
+
end
|
35
|
+
"""
|
36
|
+
And I write to "lib/templates/katapult/views/index.html.haml" with:
|
37
|
+
"""
|
38
|
+
# Custom <%= model_name(:humans) %> list template
|
39
|
+
|
40
|
+
"""
|
41
|
+
And I write to "lib/templates/katapult/views/_form.html.haml" with:
|
42
|
+
"""
|
43
|
+
# Custom <%= model_name(:human) %> form template
|
44
|
+
|
45
|
+
"""
|
46
|
+
And I successfully transform the application model
|
47
|
+
Then the file "app/views/cars/index.html.haml" should contain exactly:
|
48
|
+
"""
|
49
|
+
# Custom cars list template
|
50
|
+
|
51
|
+
"""
|
52
|
+
And the file "app/views/cars/_form.html.haml" should contain exactly:
|
53
|
+
"""
|
54
|
+
# Custom car form template
|
55
|
+
|
56
|
+
"""
|
57
|
+
|
58
|
+
|
59
|
+
Scenario: Custom model template
|
60
|
+
When I write to "lib/katapult/application_model.rb" with:
|
61
|
+
"""
|
62
|
+
model 'Car'
|
63
|
+
"""
|
64
|
+
And a file named "lib/templates/katapult/model/model.rb" with:
|
65
|
+
"""
|
66
|
+
# Custom model template for <%= class_name %>
|
67
|
+
|
68
|
+
"""
|
69
|
+
And I successfully transform the application model
|
70
|
+
Then the file "app/models/car.rb" should contain exactly:
|
71
|
+
"""
|
72
|
+
# Custom model template for Car
|
73
|
+
|
74
|
+
"""
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# by the full-fledged example below (which you can generate right away).
|
3
3
|
|
4
4
|
# Define a model + generate views with CRUD actions
|
5
|
-
#
|
6
|
-
#
|
5
|
+
# The products list will become the home page of the generated app, because it
|
6
|
+
# (implicitly) defines the first index action.
|
7
7
|
crud 'product' do |product|
|
8
8
|
# The first attribute of each model is taken as a human identifier/label
|
9
9
|
product.attr :title # Default type "string"
|
@@ -40,6 +40,7 @@ module Katapult
|
|
40
40
|
# installed with a custom :path option
|
41
41
|
@katapult = File.readlines('Gemfile').find{ |line| line =~ /^gem 'katapult'/ }
|
42
42
|
template 'Gemfile', force: true
|
43
|
+
template 'Gemfile.lock', force: true
|
43
44
|
end
|
44
45
|
|
45
46
|
def bundle_install
|
@@ -163,6 +164,10 @@ config.time_zone = 'Berlin'
|
|
163
164
|
directory 'app/helpers'
|
164
165
|
end
|
165
166
|
|
167
|
+
def prepare_application_record
|
168
|
+
template 'app/models/application_record.rb', force: true
|
169
|
+
end
|
170
|
+
|
166
171
|
def install_errors_controller
|
167
172
|
template 'app/controllers/errors_controller.rb'
|
168
173
|
route 'resources :errors, only: :new'
|
@@ -176,6 +181,9 @@ config.time_zone = 'Berlin'
|
|
176
181
|
directory 'lib/ext'
|
177
182
|
end
|
178
183
|
|
184
|
+
def copy_templates
|
185
|
+
invoke 'katapult:templates'
|
186
|
+
end
|
179
187
|
|
180
188
|
# Configure 3rd party ####################################################
|
181
189
|
|
@@ -269,6 +277,9 @@ config.autoload_paths << "#{Rails.root}/app/controllers/shared"
|
|
269
277
|
|
270
278
|
directory 'lib/capistrano/tasks'
|
271
279
|
template 'lib/tasks/pending_migrations.rake'
|
280
|
+
|
281
|
+
# Whenever needs this file for deployment
|
282
|
+
create_file 'config/schedule.rb'
|
272
283
|
end
|
273
284
|
|
274
285
|
def setup_webpacker
|
@@ -280,7 +291,7 @@ config.autoload_paths << "#{Rails.root}/app/controllers/shared"
|
|
280
291
|
inject_into_file 'config/webpack/environment.js', <<~JQUERY, after: /\A.*\n/ # 1st line
|
281
292
|
const webpack = require('webpack')
|
282
293
|
|
283
|
-
environment.plugins.
|
294
|
+
environment.plugins.prepend('Provide', new webpack.ProvidePlugin({
|
284
295
|
$: 'jquery',
|
285
296
|
jQuery: 'jquery'
|
286
297
|
})
|
@@ -4,6 +4,10 @@ require 'capistrano/setup'
|
|
4
4
|
# Include default deployment tasks
|
5
5
|
require 'capistrano/deploy'
|
6
6
|
|
7
|
+
# Configure Opscomplete deployment
|
8
|
+
require 'capistrano/opscomplete'
|
9
|
+
require 'capistrano/passenger'
|
10
|
+
|
7
11
|
# Use Git
|
8
12
|
require 'capistrano/scm/git'
|
9
13
|
install_plugin Capistrano::SCM::Git
|
@@ -23,6 +27,7 @@ Dir.glob('lib/capistrano/tasks/*.rake').sort.each do |r|
|
|
23
27
|
end
|
24
28
|
|
25
29
|
before 'deploy:updating', 'db:dump'
|
30
|
+
after 'deploy:updating', 'opscomplete:ruby:ensure'
|
26
31
|
after 'deploy:published', 'deploy:restart'
|
27
32
|
after 'deploy:published', 'db:warn_if_pending_migrations'
|
28
33
|
after 'deploy:published', 'db:show_dump_usage'
|
@@ -33,7 +33,7 @@ group :development do
|
|
33
33
|
|
34
34
|
gem 'thin'
|
35
35
|
|
36
|
-
gem 'parallel_tests'
|
36
|
+
gem 'parallel_tests', '< 2.19' # Breaks compatibility with Cucumber 2
|
37
37
|
|
38
38
|
gem 'guard-livereload', require: false
|
39
39
|
gem 'rack-livereload'
|
@@ -71,4 +71,6 @@ group :deploy do
|
|
71
71
|
gem 'capistrano-rails', require: false
|
72
72
|
gem 'capistrano-bundler', require: false
|
73
73
|
gem 'capistrano-maintenance'
|
74
|
+
gem 'capistrano-opscomplete'
|
75
|
+
gem 'capistrano-passenger'
|
74
76
|
end
|
@@ -0,0 +1,376 @@
|
|
1
|
+
GEM
|
2
|
+
remote: https://rubygems.org/
|
3
|
+
specs:
|
4
|
+
actioncable (5.1.4)
|
5
|
+
actionpack (= 5.1.4)
|
6
|
+
nio4r (~> 2.0)
|
7
|
+
websocket-driver (~> 0.6.1)
|
8
|
+
actionmailer (5.1.4)
|
9
|
+
actionpack (= 5.1.4)
|
10
|
+
actionview (= 5.1.4)
|
11
|
+
activejob (= 5.1.4)
|
12
|
+
mail (~> 2.5, >= 2.5.4)
|
13
|
+
rails-dom-testing (~> 2.0)
|
14
|
+
actionpack (5.1.4)
|
15
|
+
actionview (= 5.1.4)
|
16
|
+
activesupport (= 5.1.4)
|
17
|
+
rack (~> 2.0)
|
18
|
+
rack-test (>= 0.6.3)
|
19
|
+
rails-dom-testing (~> 2.0)
|
20
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
21
|
+
actionview (5.1.4)
|
22
|
+
activesupport (= 5.1.4)
|
23
|
+
builder (~> 3.1)
|
24
|
+
erubi (~> 1.4)
|
25
|
+
rails-dom-testing (~> 2.0)
|
26
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
27
|
+
active_type (0.7.5)
|
28
|
+
activerecord (>= 3.2)
|
29
|
+
activejob (5.1.4)
|
30
|
+
activesupport (= 5.1.4)
|
31
|
+
globalid (>= 0.3.6)
|
32
|
+
activemodel (5.1.4)
|
33
|
+
activesupport (= 5.1.4)
|
34
|
+
activerecord (5.1.4)
|
35
|
+
activemodel (= 5.1.4)
|
36
|
+
activesupport (= 5.1.4)
|
37
|
+
arel (~> 8.0)
|
38
|
+
activesupport (5.1.4)
|
39
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
40
|
+
i18n (~> 0.7)
|
41
|
+
minitest (~> 5.1)
|
42
|
+
tzinfo (~> 1.1)
|
43
|
+
addressable (2.5.2)
|
44
|
+
public_suffix (>= 2.0.2, < 4.0)
|
45
|
+
airbrussh (1.3.0)
|
46
|
+
sshkit (>= 1.6.1, != 1.7.0)
|
47
|
+
arel (8.0.0)
|
48
|
+
assignable_values (0.13.2)
|
49
|
+
activerecord (>= 2.3)
|
50
|
+
better_errors (2.4.0)
|
51
|
+
coderay (>= 1.0.0)
|
52
|
+
erubi (>= 1.0.0)
|
53
|
+
rack (>= 0.9.0)
|
54
|
+
bindex (0.5.0)
|
55
|
+
binding_of_caller (0.8.0)
|
56
|
+
debug_inspector (>= 0.0.1)
|
57
|
+
builder (3.2.3)
|
58
|
+
byebug (10.0.0)
|
59
|
+
capistrano (3.10.1)
|
60
|
+
airbrussh (>= 1.0.0)
|
61
|
+
i18n
|
62
|
+
rake (>= 10.0.0)
|
63
|
+
sshkit (>= 1.9.0)
|
64
|
+
capistrano-bundler (1.3.0)
|
65
|
+
capistrano (~> 3.1)
|
66
|
+
sshkit (~> 1.2)
|
67
|
+
capistrano-maintenance (1.2.0)
|
68
|
+
capistrano (>= 3.0)
|
69
|
+
capistrano-opscomplete (0.2.0)
|
70
|
+
capistrano (>= 3.0, < 4.0.0)
|
71
|
+
capistrano-passenger (0.2.0)
|
72
|
+
capistrano (~> 3.0)
|
73
|
+
capistrano-rails (1.3.1)
|
74
|
+
capistrano (~> 3.1)
|
75
|
+
capistrano-bundler (~> 1.1)
|
76
|
+
capybara (2.18.0)
|
77
|
+
addressable
|
78
|
+
mini_mime (>= 0.1.3)
|
79
|
+
nokogiri (>= 1.3.3)
|
80
|
+
rack (>= 1.0.0)
|
81
|
+
rack-test (>= 0.5.4)
|
82
|
+
xpath (>= 2.0, < 4.0)
|
83
|
+
capybara-screenshot (1.0.18)
|
84
|
+
capybara (>= 1.0, < 3)
|
85
|
+
launchy
|
86
|
+
childprocess (0.9.0)
|
87
|
+
ffi (~> 1.0, >= 1.0.11)
|
88
|
+
chronic (0.10.2)
|
89
|
+
coderay (1.1.2)
|
90
|
+
concurrent-ruby (1.0.5)
|
91
|
+
crass (1.0.3)
|
92
|
+
cucumber (2.1.0)
|
93
|
+
builder (>= 2.1.2)
|
94
|
+
cucumber-core (~> 1.3.0)
|
95
|
+
diff-lcs (>= 1.1.3)
|
96
|
+
gherkin3 (~> 3.1.0)
|
97
|
+
multi_json (>= 1.7.5, < 2.0)
|
98
|
+
multi_test (>= 0.1.2)
|
99
|
+
cucumber-core (1.3.1)
|
100
|
+
gherkin3 (~> 3.1.0)
|
101
|
+
cucumber-rails (1.5.0)
|
102
|
+
capybara (>= 1.1.2, < 3)
|
103
|
+
cucumber (>= 1.3.8, < 4)
|
104
|
+
mime-types (>= 1.17, < 4)
|
105
|
+
nokogiri (~> 1.5)
|
106
|
+
railties (>= 4, < 5.2)
|
107
|
+
cucumber_factory (1.12.0)
|
108
|
+
activerecord
|
109
|
+
activesupport
|
110
|
+
cucumber
|
111
|
+
cucumber_priority (>= 0.2.0)
|
112
|
+
cucumber_priority (0.3.1)
|
113
|
+
cucumber
|
114
|
+
daemons (1.2.6)
|
115
|
+
database_cleaner (1.6.2)
|
116
|
+
debug_inspector (0.0.3)
|
117
|
+
diff-lcs (1.3)
|
118
|
+
edge_rider (0.3.2)
|
119
|
+
activerecord
|
120
|
+
em-websocket (0.5.1)
|
121
|
+
eventmachine (>= 0.12.9)
|
122
|
+
http_parser.rb (~> 0.6.0)
|
123
|
+
erubi (1.7.1)
|
124
|
+
erubis (2.7.0)
|
125
|
+
eventmachine (1.2.5)
|
126
|
+
exception_notification (4.2.2)
|
127
|
+
actionmailer (>= 4.0, < 6)
|
128
|
+
activesupport (>= 4.0, < 6)
|
129
|
+
factory_bot (4.8.2)
|
130
|
+
activesupport (>= 3.0.0)
|
131
|
+
factory_bot_rails (4.8.2)
|
132
|
+
factory_bot (~> 4.8.2)
|
133
|
+
railties (>= 3.0.0)
|
134
|
+
ffi (1.9.23)
|
135
|
+
formatador (0.2.5)
|
136
|
+
gherkin3 (3.1.2)
|
137
|
+
globalid (0.4.1)
|
138
|
+
activesupport (>= 4.2.0)
|
139
|
+
guard (2.14.2)
|
140
|
+
formatador (>= 0.2.4)
|
141
|
+
listen (>= 2.7, < 4.0)
|
142
|
+
lumberjack (>= 1.0.12, < 2.0)
|
143
|
+
nenv (~> 0.1)
|
144
|
+
notiffany (~> 0.0)
|
145
|
+
pry (>= 0.9.12)
|
146
|
+
shellany (~> 0.0)
|
147
|
+
thor (>= 0.18.1)
|
148
|
+
guard-compat (1.2.1)
|
149
|
+
guard-livereload (2.5.2)
|
150
|
+
em-websocket (~> 0.5)
|
151
|
+
guard (~> 2.8)
|
152
|
+
guard-compat (~> 1.0)
|
153
|
+
multi_json (~> 1.8)
|
154
|
+
haml (5.0.4)
|
155
|
+
temple (>= 0.8.0)
|
156
|
+
tilt
|
157
|
+
haml-rails (1.0.0)
|
158
|
+
actionpack (>= 4.0.1)
|
159
|
+
activesupport (>= 4.0.1)
|
160
|
+
haml (>= 4.0.6, < 6.0)
|
161
|
+
html2haml (>= 1.0.1)
|
162
|
+
railties (>= 4.0.1)
|
163
|
+
has_defaults (0.4.4)
|
164
|
+
activerecord
|
165
|
+
html2haml (2.2.0)
|
166
|
+
erubis (~> 2.7.0)
|
167
|
+
haml (>= 4.0, < 6)
|
168
|
+
nokogiri (>= 1.6.0)
|
169
|
+
ruby_parser (~> 3.5)
|
170
|
+
http_parser.rb (0.6.0)
|
171
|
+
i18n (0.9.5)
|
172
|
+
concurrent-ruby (~> 1.0)
|
173
|
+
launchy (2.4.3)
|
174
|
+
addressable (~> 2.3)
|
175
|
+
listen (3.1.5)
|
176
|
+
rb-fsevent (~> 0.9, >= 0.9.4)
|
177
|
+
rb-inotify (~> 0.9, >= 0.9.7)
|
178
|
+
ruby_dep (~> 1.2)
|
179
|
+
loofah (2.2.0)
|
180
|
+
crass (~> 1.0.2)
|
181
|
+
nokogiri (>= 1.5.9)
|
182
|
+
lumberjack (1.0.12)
|
183
|
+
mail (2.7.0)
|
184
|
+
mini_mime (>= 0.1.1)
|
185
|
+
method_source (0.9.0)
|
186
|
+
mime-types (3.1)
|
187
|
+
mime-types-data (~> 3.2015)
|
188
|
+
mime-types-data (3.2016.0521)
|
189
|
+
mini_mime (1.0.0)
|
190
|
+
mini_portile2 (2.3.0)
|
191
|
+
minitest (5.11.3)
|
192
|
+
modularity (2.0.1)
|
193
|
+
multi_json (1.13.1)
|
194
|
+
multi_test (0.1.2)
|
195
|
+
nenv (0.3.0)
|
196
|
+
net-scp (1.2.1)
|
197
|
+
net-ssh (>= 2.6.5)
|
198
|
+
net-ssh (4.2.0)
|
199
|
+
nio4r (2.3.0)
|
200
|
+
nokogiri (1.8.2)
|
201
|
+
mini_portile2 (~> 2.3.0)
|
202
|
+
notiffany (0.1.1)
|
203
|
+
nenv (~> 0.1)
|
204
|
+
shellany (~> 0.0)
|
205
|
+
parallel (1.12.1)
|
206
|
+
parallel_tests (2.21.2)
|
207
|
+
parallel
|
208
|
+
pg (0.21.0)
|
209
|
+
pry (0.11.3)
|
210
|
+
coderay (~> 1.1.0)
|
211
|
+
method_source (~> 0.9.0)
|
212
|
+
public_suffix (3.0.2)
|
213
|
+
query_diet (0.6.2)
|
214
|
+
rack (2.0.4)
|
215
|
+
rack-livereload (0.3.16)
|
216
|
+
rack
|
217
|
+
rack-proxy (0.6.4)
|
218
|
+
rack
|
219
|
+
rack-test (0.8.3)
|
220
|
+
rack (>= 1.0, < 3)
|
221
|
+
rails (5.1.4)
|
222
|
+
actioncable (= 5.1.4)
|
223
|
+
actionmailer (= 5.1.4)
|
224
|
+
actionpack (= 5.1.4)
|
225
|
+
actionview (= 5.1.4)
|
226
|
+
activejob (= 5.1.4)
|
227
|
+
activemodel (= 5.1.4)
|
228
|
+
activerecord (= 5.1.4)
|
229
|
+
activesupport (= 5.1.4)
|
230
|
+
bundler (>= 1.3.0)
|
231
|
+
railties (= 5.1.4)
|
232
|
+
sprockets-rails (>= 2.0.0)
|
233
|
+
rails-dom-testing (2.0.3)
|
234
|
+
activesupport (>= 4.2.0)
|
235
|
+
nokogiri (>= 1.6)
|
236
|
+
rails-html-sanitizer (1.0.3)
|
237
|
+
loofah (~> 2.0)
|
238
|
+
railties (5.1.4)
|
239
|
+
actionpack (= 5.1.4)
|
240
|
+
activesupport (= 5.1.4)
|
241
|
+
method_source
|
242
|
+
rake (>= 0.8.7)
|
243
|
+
thor (>= 0.18.1, < 2.0)
|
244
|
+
rake (12.3.0)
|
245
|
+
rb-fsevent (0.10.3)
|
246
|
+
rb-inotify (0.9.10)
|
247
|
+
ffi (>= 0.5.0, < 2)
|
248
|
+
rspec (3.7.0)
|
249
|
+
rspec-core (~> 3.7.0)
|
250
|
+
rspec-expectations (~> 3.7.0)
|
251
|
+
rspec-mocks (~> 3.7.0)
|
252
|
+
rspec-core (3.7.1)
|
253
|
+
rspec-support (~> 3.7.0)
|
254
|
+
rspec-expectations (3.7.0)
|
255
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
256
|
+
rspec-support (~> 3.7.0)
|
257
|
+
rspec-mocks (3.7.0)
|
258
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
259
|
+
rspec-support (~> 3.7.0)
|
260
|
+
rspec-rails (3.7.2)
|
261
|
+
actionpack (>= 3.0)
|
262
|
+
activesupport (>= 3.0)
|
263
|
+
railties (>= 3.0)
|
264
|
+
rspec-core (~> 3.7.0)
|
265
|
+
rspec-expectations (~> 3.7.0)
|
266
|
+
rspec-mocks (~> 3.7.0)
|
267
|
+
rspec-support (~> 3.7.0)
|
268
|
+
rspec-support (3.7.1)
|
269
|
+
ruby_dep (1.5.0)
|
270
|
+
ruby_parser (3.11.0)
|
271
|
+
sexp_processor (~> 4.9)
|
272
|
+
rubyzip (1.2.1)
|
273
|
+
selenium-webdriver (3.11.0)
|
274
|
+
childprocess (~> 0.5)
|
275
|
+
rubyzip (~> 1.2)
|
276
|
+
sexp_processor (4.10.1)
|
277
|
+
shellany (0.0.1)
|
278
|
+
shoulda-matchers (3.1.2)
|
279
|
+
activesupport (>= 4.0.0)
|
280
|
+
spreewald (1.11.3)
|
281
|
+
cucumber
|
282
|
+
cucumber_priority (>= 0.3.0)
|
283
|
+
spring (2.0.2)
|
284
|
+
activesupport (>= 4.2)
|
285
|
+
spring-commands-cucumber (1.0.1)
|
286
|
+
spring (>= 0.9.1)
|
287
|
+
spring-commands-rspec (1.0.4)
|
288
|
+
spring (>= 0.9.1)
|
289
|
+
sprockets (3.7.1)
|
290
|
+
concurrent-ruby (~> 1.0)
|
291
|
+
rack (> 1, < 3)
|
292
|
+
sprockets-rails (3.2.1)
|
293
|
+
actionpack (>= 4.0)
|
294
|
+
activesupport (>= 4.0)
|
295
|
+
sprockets (>= 3.0.0)
|
296
|
+
sshkit (1.16.0)
|
297
|
+
net-scp (>= 1.1.2)
|
298
|
+
net-ssh (>= 2.8.0)
|
299
|
+
temple (0.8.0)
|
300
|
+
thin (1.7.2)
|
301
|
+
daemons (~> 1.0, >= 1.0.9)
|
302
|
+
eventmachine (~> 1.0, >= 1.0.4)
|
303
|
+
rack (>= 1, < 3)
|
304
|
+
thor (0.20.0)
|
305
|
+
thread_safe (0.3.6)
|
306
|
+
tilt (2.0.8)
|
307
|
+
timecop (0.9.1)
|
308
|
+
tzinfo (1.2.5)
|
309
|
+
thread_safe (~> 0.1)
|
310
|
+
web-console (3.5.1)
|
311
|
+
actionview (>= 5.0)
|
312
|
+
activemodel (>= 5.0)
|
313
|
+
bindex (>= 0.4.0)
|
314
|
+
railties (>= 5.0)
|
315
|
+
webpacker (3.3.1)
|
316
|
+
activesupport (>= 4.2)
|
317
|
+
rack-proxy (>= 0.6.1)
|
318
|
+
railties (>= 4.2)
|
319
|
+
websocket-driver (0.6.5)
|
320
|
+
websocket-extensions (>= 0.1.0)
|
321
|
+
websocket-extensions (0.1.3)
|
322
|
+
whenever (0.10.0)
|
323
|
+
chronic (>= 0.6.3)
|
324
|
+
will_paginate (3.1.6)
|
325
|
+
xpath (3.0.0)
|
326
|
+
nokogiri (~> 1.8)
|
327
|
+
|
328
|
+
PLATFORMS
|
329
|
+
ruby
|
330
|
+
|
331
|
+
DEPENDENCIES
|
332
|
+
active_type
|
333
|
+
assignable_values
|
334
|
+
better_errors
|
335
|
+
binding_of_caller (>= 0.8.0)
|
336
|
+
byebug
|
337
|
+
capistrano-bundler
|
338
|
+
capistrano-maintenance
|
339
|
+
capistrano-opscomplete
|
340
|
+
capistrano-passenger
|
341
|
+
capistrano-rails
|
342
|
+
capybara
|
343
|
+
capybara-screenshot
|
344
|
+
cucumber (< 2.2)
|
345
|
+
cucumber-rails
|
346
|
+
cucumber_factory
|
347
|
+
database_cleaner
|
348
|
+
edge_rider
|
349
|
+
exception_notification
|
350
|
+
factory_bot_rails
|
351
|
+
guard-livereload
|
352
|
+
haml-rails
|
353
|
+
has_defaults
|
354
|
+
katapult
|
355
|
+
launchy
|
356
|
+
listen (< 3.2)
|
357
|
+
modularity
|
358
|
+
parallel_tests
|
359
|
+
pg
|
360
|
+
query_diet
|
361
|
+
rack-livereload
|
362
|
+
rails
|
363
|
+
rspec
|
364
|
+
rspec-rails
|
365
|
+
selenium-webdriver
|
366
|
+
shoulda-matchers
|
367
|
+
spreewald
|
368
|
+
spring
|
369
|
+
spring-commands-cucumber
|
370
|
+
spring-commands-rspec
|
371
|
+
thin
|
372
|
+
timecop
|
373
|
+
web-console
|
374
|
+
webpacker
|
375
|
+
whenever
|
376
|
+
will_paginate
|