voyage 1.44.0.4 → 1.44.0.5
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/lib/voyage/app_builder.rb +65 -7
- data/lib/voyage/generators/app_generator.rb +20 -0
- data/lib/voyage/templates/auto_annotate_models.rake +46 -0
- data/lib/voyage/templates/controller_helpers.rb +2 -2
- data/lib/voyage/templates/custom_cancan_matchers.rb +3 -2
- data/lib/voyage/templates/rails_helper.rb.erb +6 -5
- data/lib/voyage/templates/seeder.rb.erb +9 -5
- data/lib/voyage/templates/simplecov.rb +2 -2
- data/lib/voyage/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 394ce85de666eddbe98828ebcced399f3c736d74
|
4
|
+
data.tar.gz: 39c3667979fba7d33f134d9e05f426f38bf53cb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68f4a19760d87f9e35370ed2f80f81b03d3bfc139c5fa57b1e8e618298a9f751f70b5acd12dd62e2869881e0cbdb01e3643f2fb0239d02a29f4a5918f241f71c
|
7
|
+
data.tar.gz: 115ab4812e477c7bd542d6e32b35a0bccfd79508b46ba98173b8f177d57254652c1008b600594a5187c3a9a53f7f2ec099576ffc721abe38a4d82035d409c6ce
|
data/lib/voyage/app_builder.rb
CHANGED
@@ -126,6 +126,7 @@ module Suspenders
|
|
126
126
|
add_sign_in_and_sign_out_routes_for_devise
|
127
127
|
customize_user_factory(adding_first_and_last_name)
|
128
128
|
generate_seeder_templates(using_devise: true)
|
129
|
+
customize_user_spec
|
129
130
|
else
|
130
131
|
generate_seeder_templates(using_devise: false)
|
131
132
|
end
|
@@ -152,12 +153,13 @@ module Suspenders
|
|
152
153
|
end
|
153
154
|
|
154
155
|
def customize_application_controller_for_devise(adding_first_and_last_name)
|
155
|
-
inject_into_file 'app/controllers/application_controller.rb', after: " protect_from_forgery with: :exception" do <<-RUBY.gsub(/^ {6}/, '')
|
156
|
-
|
156
|
+
inject_into_file 'app/controllers/application_controller.rb', after: " protect_from_forgery with: :exception" do <<-RUBY.gsub(/^ {6}/, '')
|
157
|
+
|
157
158
|
before_action :configure_permitted_parameters, if: :devise_controller?
|
158
159
|
|
159
160
|
protected
|
160
161
|
|
162
|
+
# rubocop:disable Metrics/MethodLength
|
161
163
|
def configure_permitted_parameters
|
162
164
|
devise_parameter_sanitizer.permit(
|
163
165
|
:sign_up,
|
@@ -168,14 +170,14 @@ module Suspenders
|
|
168
170
|
:password,
|
169
171
|
:password_confirmation,
|
170
172
|
:remember_me,
|
171
|
-
]
|
173
|
+
],
|
172
174
|
)
|
173
175
|
|
174
176
|
devise_parameter_sanitizer.permit(
|
175
177
|
:sign_in,
|
176
178
|
keys: [
|
177
179
|
:login, :email, :password, :remember_me
|
178
|
-
]
|
180
|
+
],
|
179
181
|
)
|
180
182
|
|
181
183
|
devise_parameter_sanitizer.permit(
|
@@ -187,15 +189,17 @@ module Suspenders
|
|
187
189
|
:password,
|
188
190
|
:password_confirmation,
|
189
191
|
:current_password,
|
190
|
-
]
|
192
|
+
],
|
191
193
|
)
|
192
194
|
end
|
195
|
+
# rubocop:enable Metrics/MethodLength
|
193
196
|
RUBY
|
194
197
|
end
|
195
198
|
end
|
196
199
|
|
197
200
|
def customize_resource_controller_for_devise(adding_first_and_last_name)
|
198
|
-
bundle_command
|
201
|
+
bundle_command 'exec rails generate controller users'
|
202
|
+
run 'rm spec/controllers/users_controller_spec.rb'
|
199
203
|
|
200
204
|
inject_into_class "app/controllers/users_controller.rb", "UsersController" do <<-RUBY.gsub(/^ {6}/, '')
|
201
205
|
# https://github.com/CanCanCommunity/cancancan/wiki/authorizing-controller-actions
|
@@ -231,7 +235,7 @@ module Suspenders
|
|
231
235
|
|
232
236
|
def add_canard_roles_to_devise_resource
|
233
237
|
inject_into_file 'app/models/user.rb', before: /^end/ do <<-RUBY.gsub(/^ {6}/, '')
|
234
|
-
|
238
|
+
|
235
239
|
# Permissions cascade/inherit through the roles listed below. The order of
|
236
240
|
# this list is important, it should progress from least to most privelage
|
237
241
|
ROLES = [:admin].freeze
|
@@ -294,6 +298,24 @@ module Suspenders
|
|
294
298
|
template '../templates/seeds.rb.erb', 'db/seeds.rb', config
|
295
299
|
end
|
296
300
|
|
301
|
+
def customize_user_spec
|
302
|
+
find = <<-RUBY.gsub(/^ {6}/, '')
|
303
|
+
pending "add some examples to (or delete) \#{__FILE__}"
|
304
|
+
RUBY
|
305
|
+
|
306
|
+
replace = <<-RUBY.gsub(/^ {6}/, '')
|
307
|
+
describe 'constants' do
|
308
|
+
context 'roles' do
|
309
|
+
it 'has the admin role' do
|
310
|
+
expect(User::ROLES).to eq([:admin])
|
311
|
+
end
|
312
|
+
end
|
313
|
+
end
|
314
|
+
RUBY
|
315
|
+
|
316
|
+
replace_in_file 'spec/models/user_spec.rb', find, replace
|
317
|
+
end
|
318
|
+
|
297
319
|
def customize_application_js
|
298
320
|
template '../templates/application.js', 'app/assets/javascripts/application.js', force: true
|
299
321
|
end
|
@@ -362,6 +384,20 @@ module Suspenders
|
|
362
384
|
run "erb2slim '../app/views/refills' '../app/views/refills'"
|
363
385
|
run "erb2slim -d '../app/views/refills'"
|
364
386
|
end
|
387
|
+
|
388
|
+
find = <<-RUBY.gsub(/^ {2}/, '')
|
389
|
+
| <div class="flash-
|
390
|
+
= key
|
391
|
+
| ">
|
392
|
+
= value
|
393
|
+
RUBY
|
394
|
+
|
395
|
+
replace = <<-RUBY.gsub(/^ {2}/, '')
|
396
|
+
div class="flash-\#{key}"
|
397
|
+
= value
|
398
|
+
RUBY
|
399
|
+
|
400
|
+
replace_in_file 'app/views/application/_flashes.html.slim', find, replace
|
365
401
|
end
|
366
402
|
|
367
403
|
def add_refills_to_layout
|
@@ -419,6 +455,10 @@ module Suspenders
|
|
419
455
|
template '../templates/rubocop.yml', '.rubocop.yml', force: true
|
420
456
|
end
|
421
457
|
|
458
|
+
def add_auto_annotate_models_rake_task
|
459
|
+
template '../templates/auto_annotate_models.rake', 'lib/tasks/auto_annotate_models.rake', force: true
|
460
|
+
end
|
461
|
+
|
422
462
|
# Do this last
|
423
463
|
def rake_db_setup
|
424
464
|
rake 'db:migrate'
|
@@ -442,6 +482,24 @@ module Suspenders
|
|
442
482
|
run 'mkdir -p .git/safe'
|
443
483
|
end
|
444
484
|
|
485
|
+
def run_rubocop_auto_correct
|
486
|
+
run 'rubocop --auto-correct'
|
487
|
+
end
|
488
|
+
|
489
|
+
def copy_env_to_example
|
490
|
+
run 'cp .env .env.example'
|
491
|
+
end
|
492
|
+
|
493
|
+
def add_to_gitignore
|
494
|
+
inject_into_file '.gitignore', after: '/tmp/*' do <<-RUBY.gsub(/^ {8}/, '')
|
495
|
+
|
496
|
+
.env
|
497
|
+
.zenflow-log
|
498
|
+
errors.err
|
499
|
+
RUBY
|
500
|
+
end
|
501
|
+
end
|
502
|
+
|
445
503
|
###############################
|
446
504
|
# OVERRIDE SUSPENDERS METHODS #
|
447
505
|
###############################
|
@@ -36,11 +36,15 @@ module Suspenders
|
|
36
36
|
invoke :generate_test_environment
|
37
37
|
invoke :update_test_environment
|
38
38
|
invoke :add_rubocop_config
|
39
|
+
invoke :add_auto_annotate_models_rake_task
|
39
40
|
|
40
41
|
|
41
42
|
# Do these last
|
42
43
|
invoke :rake_db_setup
|
43
44
|
invoke :configure_rvm_prepend_bin_to_path
|
45
|
+
invoke :run_rubocop_auto_correct
|
46
|
+
invoke :copy_env_to_example
|
47
|
+
invoke :add_to_gitignore
|
44
48
|
invoke :actually_setup_spring
|
45
49
|
invoke :bon_voyage
|
46
50
|
super
|
@@ -98,6 +102,10 @@ module Suspenders
|
|
98
102
|
build :add_rubocop_config
|
99
103
|
end
|
100
104
|
|
105
|
+
def add_auto_annotate_models_rake_task
|
106
|
+
build :add_auto_annotate_models_rake_task
|
107
|
+
end
|
108
|
+
|
101
109
|
def rake_db_setup
|
102
110
|
build :rake_db_setup
|
103
111
|
end
|
@@ -110,6 +118,18 @@ module Suspenders
|
|
110
118
|
# do nothing so we can run generators after suspenders_customization runs
|
111
119
|
end
|
112
120
|
|
121
|
+
def run_rubocop_auto_correct
|
122
|
+
build :run_rubocop_auto_correct
|
123
|
+
end
|
124
|
+
|
125
|
+
def copy_env_to_example
|
126
|
+
build :copy_env_to_example
|
127
|
+
end
|
128
|
+
|
129
|
+
def add_to_gitignore
|
130
|
+
build :add_to_gitignore
|
131
|
+
end
|
132
|
+
|
113
133
|
def actually_setup_spring
|
114
134
|
say "Springifying binstubs"
|
115
135
|
build :setup_spring
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# :nocov:
|
2
|
+
if Rails.env.development?
|
3
|
+
task :set_annotation_options do
|
4
|
+
# Just some example settings from annotate 2.6.0.beta1
|
5
|
+
Annotate.set_defaults(
|
6
|
+
'position_in_routes' => 'after',
|
7
|
+
'position_in_class' => 'after',
|
8
|
+
'position_in_test' => 'after',
|
9
|
+
'position_in_fixture' => 'after',
|
10
|
+
'position_in_factory' => 'after',
|
11
|
+
'show_indexes' => 'true',
|
12
|
+
'simple_indexes' => 'false',
|
13
|
+
'model_dir' => 'app/models',
|
14
|
+
'include_version' => 'false',
|
15
|
+
'require' => '',
|
16
|
+
'exclude_tests' => 'false',
|
17
|
+
'exclude_fixtures' => 'false',
|
18
|
+
'exclude_factories' => 'false',
|
19
|
+
'ignore_model_sub_dir' => 'false',
|
20
|
+
'skip_on_db_migrate' => 'false',
|
21
|
+
'format_bare' => 'true',
|
22
|
+
'format_rdoc' => 'false',
|
23
|
+
'format_markdown' => 'false',
|
24
|
+
'sort' => 'true',
|
25
|
+
'force' => 'false',
|
26
|
+
'trace' => 'false',
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Annotate models
|
31
|
+
task :annotate do
|
32
|
+
puts 'Annotating models...'
|
33
|
+
system 'bundle exec annotate -p after -i'
|
34
|
+
end
|
35
|
+
|
36
|
+
# Run annotate task after db:migrate and db:rollback tasks
|
37
|
+
Rake::Task['db:migrate'].enhance do
|
38
|
+
Rake::Task['annotate'].invoke
|
39
|
+
Rake::Task['db:test:prepare'].invoke
|
40
|
+
end
|
41
|
+
|
42
|
+
Rake::Task['db:rollback'].enhance do
|
43
|
+
Rake::Task['annotate'].invoke
|
44
|
+
Rake::Task['db:test:prepare'].invoke
|
45
|
+
end
|
46
|
+
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module ControllerHelpers
|
2
|
-
def sign_in(user =
|
2
|
+
def sign_in(user = instance_double('user'))
|
3
3
|
if user.nil?
|
4
4
|
allow(request.env['warden'])
|
5
5
|
.to receive(:authenticate!)
|
6
|
-
.and_throw(:warden,
|
6
|
+
.and_throw(:warden, scope: :user)
|
7
7
|
|
8
8
|
allow(controller).to receive(:current_user).and_return(nil)
|
9
9
|
else
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# rubocop:disable Metrics/BlockLength
|
1
2
|
rspec_module = defined?(RSpec::Core) ? 'RSpec' : 'Spec' # RSpec 1 compatability
|
2
3
|
|
3
4
|
if rspec_module == 'RSpec'
|
@@ -24,8 +25,8 @@ Kernel.const_get(rspec_module)::Matchers.define :be_able_to do |*args|
|
|
24
25
|
|
25
26
|
# Check that RSpec is < 2.99
|
26
27
|
if !respond_to?(:failure_message) && respond_to?(:failure_message_for_should)
|
27
|
-
|
28
|
-
|
28
|
+
alias_method :failure_message, :failure_message_for_should
|
29
|
+
alias_method :failure_message_when_negated, :failure_message_for_should_not
|
29
30
|
end
|
30
31
|
|
31
32
|
failure_message do
|
@@ -1,13 +1,14 @@
|
|
1
|
+
# rubocop:disable Metrics/BlockLength, Metrics/LineLength, Rails/FilePath
|
1
2
|
require 'simplecov'
|
2
3
|
SimpleCov.command_name 'Rspec'
|
3
4
|
|
4
|
-
ENV[
|
5
|
+
ENV['RACK_ENV'] = 'test'
|
5
6
|
|
6
|
-
require File.expand_path(
|
7
|
-
abort(
|
7
|
+
require File.expand_path('../../config/environment', __FILE__)
|
8
|
+
abort('DATABASE_URL environment variable is set') if ENV['DATABASE_URL']
|
8
9
|
|
9
10
|
require 'spec_helper'
|
10
|
-
require
|
11
|
+
require 'rspec/rails'
|
11
12
|
require 'factory_girl'
|
12
13
|
require 'capybara/rspec'
|
13
14
|
require 'capybara/poltergeist'
|
@@ -23,7 +24,7 @@ ActiveRecord::Migration.maintain_test_schema!
|
|
23
24
|
|
24
25
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
25
26
|
# in spec/support/ and its subdirectories.
|
26
|
-
Dir[Rails.root.join(
|
27
|
+
Dir[Rails.root.join('spec/support/**/*.rb')].sort.each { |file| require file }
|
27
28
|
|
28
29
|
module Features
|
29
30
|
# Extend this module in spec/support/features/*.rb
|
@@ -1,6 +1,8 @@
|
|
1
|
+
# rubocop:disable Rails/Output
|
1
2
|
module Seeder
|
2
|
-
|
3
|
-
|
3
|
+
module_function
|
4
|
+
|
5
|
+
<% if config[:using_devise] -%>
|
4
6
|
def admin_user
|
5
7
|
puts '-----> Creating Admin User'
|
6
8
|
|
@@ -21,7 +23,7 @@ module Seeder
|
|
21
23
|
create(:user, name.to_sym)
|
22
24
|
end
|
23
25
|
end
|
24
|
-
<% else
|
26
|
+
<% else -%>
|
25
27
|
# Change 'resource' to something real
|
26
28
|
def seed_resource
|
27
29
|
puts '-----> Creating Resource'
|
@@ -31,9 +33,10 @@ module Seeder
|
|
31
33
|
|
32
34
|
create(:resource)
|
33
35
|
end
|
34
|
-
<% end
|
36
|
+
<% end -%>
|
35
37
|
end
|
36
38
|
|
39
|
+
# rubocop:disable Metrics/LineLength
|
37
40
|
if Rails.env == 'production'
|
38
41
|
unless ENV['FORCE_SEED']
|
39
42
|
puts
|
@@ -41,6 +44,7 @@ if Rails.env == 'production'
|
|
41
44
|
puts 'WARNING: You are trying to run db:seed on production. This is a DESTRUCTIVE task.'
|
42
45
|
puts 'If you know what you are doing, you can override by setting environment variable '
|
43
46
|
puts 'FORCE_SEED=1'
|
44
|
-
|
47
|
+
abort('Exiting now...')
|
45
48
|
end
|
46
49
|
end
|
50
|
+
# rubocop:enable Rails/Output, Metrics/LineLength
|
@@ -1,4 +1,4 @@
|
|
1
|
-
if ENV['COVERAGE']
|
1
|
+
if ENV['COVERAGE'].match?(/\Atrue\z/i)
|
2
2
|
require 'cadre/simplecov'
|
3
3
|
|
4
4
|
SimpleCov.start do
|
@@ -23,7 +23,7 @@ if ENV['COVERAGE'] =~ /\Atrue\z/i
|
|
23
23
|
|
24
24
|
SimpleCov.formatters = [
|
25
25
|
SimpleCov::Formatter::HTMLFormatter,
|
26
|
-
Cadre::SimpleCov::VimFormatter
|
26
|
+
Cadre::SimpleCov::VimFormatter,
|
27
27
|
]
|
28
28
|
|
29
29
|
SimpleCov.minimum_coverage 95
|
data/lib/voyage/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voyage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.44.0.
|
4
|
+
version: 1.44.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- thoughtbot, headway
|
@@ -109,6 +109,7 @@ files:
|
|
109
109
|
- lib/voyage/templates/README.md.erb
|
110
110
|
- lib/voyage/templates/about.html.erb
|
111
111
|
- lib/voyage/templates/application.js
|
112
|
+
- lib/voyage/templates/auto_annotate_models.rake
|
112
113
|
- lib/voyage/templates/config_locales_en.yml.erb
|
113
114
|
- lib/voyage/templates/controller_helpers.rb
|
114
115
|
- lib/voyage/templates/custom_cancan_matchers.rb
|