orats 0.6.4 → 0.6.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +28 -57
- data/lib/orats/cli.rb +9 -3
- data/lib/orats/commands/common.rb +13 -13
- data/lib/orats/commands/new/exec.rb +3 -1
- data/lib/orats/commands/new/rails.rb +14 -5
- data/lib/orats/commands/new/server.rb +2 -2
- data/lib/orats/commands/outdated/compare.rb +8 -8
- data/lib/orats/commands/outdated/exec.rb +4 -4
- data/lib/orats/commands/outdated/parse.rb +1 -1
- data/lib/orats/commands/ui.rb +3 -3
- data/lib/orats/templates/auth.rb +87 -59
- data/lib/orats/templates/base.rb +93 -40
- data/lib/orats/templates/includes/Galaxyfile +5 -5
- data/lib/orats/templates/includes/Gemfile +1 -2
- data/lib/orats/templates/includes/inventory/group_vars/all.yml +82 -24
- data/lib/orats/templates/play.rb +18 -16
- data/lib/orats/version.rb +1 -1
- data/orats.gemspec +8 -8
- data/test/integration/cli_test.rb +33 -33
- data/test/test_helper.rb +10 -10
- metadata +2 -2
@@ -14,12 +14,12 @@ module Orats
|
|
14
14
|
super
|
15
15
|
|
16
16
|
@remote_galaxyfile = galaxyfile url_to_string(@remote_paths[:galaxyfile])
|
17
|
-
@remote_inventory
|
18
|
-
@remote_playbook
|
17
|
+
@remote_inventory = inventory url_to_string(@remote_paths[:inventory])
|
18
|
+
@remote_playbook = playbook url_to_string(@remote_paths[:playbook])
|
19
19
|
|
20
20
|
@local_galaxyfile = galaxyfile file_to_string(@local_paths[:galaxyfile])
|
21
|
-
@local_inventory
|
22
|
-
@local_playbook
|
21
|
+
@local_inventory = inventory file_to_string(@local_paths[:inventory])
|
22
|
+
@local_playbook = playbook file_to_string(@local_paths[:playbook])
|
23
23
|
end
|
24
24
|
|
25
25
|
def init
|
data/lib/orats/commands/ui.rb
CHANGED
@@ -5,8 +5,8 @@ module Orats
|
|
5
5
|
|
6
6
|
def log_task(message)
|
7
7
|
puts
|
8
|
-
say_status
|
9
|
-
puts
|
8
|
+
say_status 'task', "#{message}:", :yellow
|
9
|
+
puts '-'*80, ''; sleep 0.25
|
10
10
|
end
|
11
11
|
|
12
12
|
def log_status_top(type, message, color)
|
@@ -26,7 +26,7 @@ module Orats
|
|
26
26
|
|
27
27
|
def log_error(top_label, top_message, bottom_label, bottom_message, strip_newline = false)
|
28
28
|
log_status_top top_label, "#{top_message}:", :red
|
29
|
-
log_status_bottom bottom_label, bottom_message
|
29
|
+
log_status_bottom bottom_label, bottom_message, :yellow, strip_newline
|
30
30
|
yield if block_given?
|
31
31
|
end
|
32
32
|
|
data/lib/orats/templates/auth.rb
CHANGED
@@ -21,8 +21,8 @@ end
|
|
21
21
|
|
22
22
|
def log_task(message)
|
23
23
|
puts
|
24
|
-
say_status
|
25
|
-
puts
|
24
|
+
say_status 'task', "#{method_to_sentence(message.to_s)}:", :yellow
|
25
|
+
puts '-'*80, ''; sleep 0.25
|
26
26
|
end
|
27
27
|
|
28
28
|
def git_commit(message)
|
@@ -31,7 +31,7 @@ def git_commit(message)
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def migrate(table_name, migration='')
|
34
|
-
utc_now
|
34
|
+
utc_now = Time.now.getutc.strftime("%Y%m%d%H%M%S")
|
35
35
|
class_name = table_name.to_s.classify.pluralize
|
36
36
|
|
37
37
|
file "db/migrate/#{utc_now}_create_#{table_name}.rb", %{
|
@@ -52,12 +52,13 @@ end
|
|
52
52
|
def update_gemfile
|
53
53
|
log_task __method__
|
54
54
|
|
55
|
-
inject_into_file 'Gemfile', before: "\ngem 'kaminari'" do
|
55
|
+
inject_into_file 'Gemfile', before: "\ngem 'kaminari'" do
|
56
|
+
<<-S
|
56
57
|
|
57
58
|
gem 'devise', '~> 3.2.4'
|
58
59
|
gem 'devise-async', '~> 0.9.0'
|
59
60
|
gem 'pundit', '~> 0.2.3'
|
60
|
-
|
61
|
+
S
|
61
62
|
end
|
62
63
|
git_commit 'Add authentication related gems'
|
63
64
|
end
|
@@ -65,15 +66,17 @@ end
|
|
65
66
|
def update_dotenv
|
66
67
|
log_task __method__
|
67
68
|
|
68
|
-
inject_into_file '.env', before: "\nSMTP_ADDRESS" do
|
69
|
+
inject_into_file '.env', before: "\nSMTP_ADDRESS" do
|
70
|
+
<<-CODE
|
69
71
|
TOKEN_DEVISE_SECRET: #{generate_token}
|
70
72
|
TOKEN_DEVISE_PEPPER: #{generate_token}
|
71
|
-
|
73
|
+
CODE
|
72
74
|
end
|
73
75
|
|
74
|
-
inject_into_file '.env', before: "\nDATABASE_NAME" do
|
76
|
+
inject_into_file '.env', before: "\nDATABASE_NAME" do
|
77
|
+
<<-CODE
|
75
78
|
ACTION_MAILER_DEVISE_DEFAULT_FROM: info@#{app_name}.com
|
76
|
-
|
79
|
+
CODE
|
77
80
|
end
|
78
81
|
git_commit 'Add devise tokens and default e-mail'
|
79
82
|
end
|
@@ -88,24 +91,27 @@ def add_pundit
|
|
88
91
|
log_task __method__
|
89
92
|
|
90
93
|
generate 'pundit:install'
|
91
|
-
inject_into_file 'app/controllers/application_controller.rb', after: "::Base\n" do
|
94
|
+
inject_into_file 'app/controllers/application_controller.rb', after: "::Base\n" do
|
95
|
+
<<-S
|
92
96
|
include Pundit
|
93
97
|
|
94
|
-
|
98
|
+
S
|
95
99
|
end
|
96
100
|
|
97
|
-
inject_into_file 'app/controllers/application_controller.rb', after: ":exception\n" do
|
101
|
+
inject_into_file 'app/controllers/application_controller.rb', after: ":exception\n" do
|
102
|
+
<<-S
|
98
103
|
|
99
104
|
rescue_from Pundit::NotAuthorizedError, with: :account_not_authorized
|
100
|
-
|
105
|
+
S
|
101
106
|
end
|
102
107
|
|
103
|
-
inject_into_file 'app/controllers/application_controller.rb', after: " #end\n" do
|
108
|
+
inject_into_file 'app/controllers/application_controller.rb', after: " #end\n" do
|
109
|
+
<<-S
|
104
110
|
|
105
111
|
def account_not_authorized
|
106
112
|
redirect_to request.headers['Referer'] || root_path, flash: { error: I18n.t('authorization.error') }
|
107
113
|
end
|
108
|
-
|
114
|
+
S
|
109
115
|
end
|
110
116
|
git_commit 'Add pundit policy and controller logic'
|
111
117
|
end
|
@@ -146,9 +152,10 @@ end
|
|
146
152
|
def update_sidekiq_config
|
147
153
|
log_task __method__
|
148
154
|
|
149
|
-
append_file 'config/sidekiq.yml' do
|
155
|
+
append_file 'config/sidekiq.yml' do
|
156
|
+
<<-S
|
150
157
|
- mailer
|
151
|
-
|
158
|
+
S
|
152
159
|
end
|
153
160
|
git_commit 'Add the devise mailer queue to sidekiq'
|
154
161
|
end
|
@@ -157,7 +164,8 @@ def update_routes
|
|
157
164
|
log_task __method__
|
158
165
|
|
159
166
|
gsub_file 'config/routes.rb', "mount Sidekiq::Web => '/sidekiq'\n", ''
|
160
|
-
inject_into_file 'config/routes.rb', after: "collection\n end\n" do
|
167
|
+
inject_into_file 'config/routes.rb', after: "collection\n end\n" do
|
168
|
+
<<-S
|
161
169
|
|
162
170
|
# disable users from being able to register by uncommenting the lines below
|
163
171
|
# get 'accounts/sign_up(.:format)', to: redirect('/')
|
@@ -172,7 +180,7 @@ def update_routes
|
|
172
180
|
mount Sidekiq::Web => '/sidekiq'
|
173
181
|
end
|
174
182
|
|
175
|
-
|
183
|
+
S
|
176
184
|
end
|
177
185
|
git_commit 'Add the devise route and protect sidekiq with authentication'
|
178
186
|
end
|
@@ -181,10 +189,11 @@ def add_en_locale_for_authorization
|
|
181
189
|
log_task __method__
|
182
190
|
|
183
191
|
gsub_file 'config/locales/en.yml', "hello: \"Hello world\"\n", ''
|
184
|
-
append_file 'config/locales/en.yml' do
|
192
|
+
append_file 'config/locales/en.yml' do
|
193
|
+
<<-S
|
185
194
|
authorization:
|
186
195
|
error: 'You are not authorized to perform this action.'
|
187
|
-
|
196
|
+
S
|
188
197
|
end
|
189
198
|
git_commit 'Add en locale entry for authorization errors'
|
190
199
|
end
|
@@ -233,7 +242,8 @@ end
|
|
233
242
|
def add_account_model
|
234
243
|
log_task __method__
|
235
244
|
|
236
|
-
file 'app/models/account.rb' do
|
245
|
+
file 'app/models/account.rb' do
|
246
|
+
<<-'S'
|
237
247
|
class Account < ActiveRecord::Base
|
238
248
|
ROLES = %w[admin guest]
|
239
249
|
|
@@ -274,7 +284,7 @@ class Account < ActiveRecord::Base
|
|
274
284
|
Rails.cache.delete("account:#{id}")
|
275
285
|
end
|
276
286
|
end
|
277
|
-
|
287
|
+
S
|
278
288
|
end
|
279
289
|
git_commit 'Add account model'
|
280
290
|
end
|
@@ -289,19 +299,21 @@ end
|
|
289
299
|
|
290
300
|
def update_test_helper
|
291
301
|
log_task __method__
|
292
|
-
inject_into_file 'test/test_helper.rb', after: "end\n" do
|
302
|
+
inject_into_file 'test/test_helper.rb', after: "end\n" do
|
303
|
+
<<-S
|
293
304
|
|
294
305
|
class ActionController::TestCase
|
295
306
|
include Devise::TestHelpers
|
296
307
|
end
|
297
|
-
|
308
|
+
S
|
298
309
|
end
|
299
310
|
git_commit 'Add devise test helper'
|
300
311
|
end
|
301
312
|
|
302
313
|
def add_account_fixtures
|
303
314
|
log_task __method__
|
304
|
-
file 'test/fixtures/accounts.yml' do
|
315
|
+
file 'test/fixtures/accounts.yml' do
|
316
|
+
<<-S
|
305
317
|
foo:
|
306
318
|
id: 1
|
307
319
|
email: foo@bar.com
|
@@ -328,7 +340,7 @@ beep:
|
|
328
340
|
email: beep@beep.com
|
329
341
|
encrypted_password: beepbeepbeep
|
330
342
|
created_at: 2010-03-6 05:15:45
|
331
|
-
|
343
|
+
S
|
332
344
|
end
|
333
345
|
git_commit 'Add account fixtures'
|
334
346
|
end
|
@@ -336,7 +348,8 @@ end
|
|
336
348
|
def add_account_unit_tests
|
337
349
|
log_task __method__
|
338
350
|
|
339
|
-
file 'test/models/account_test.rb' do
|
351
|
+
file 'test/models/account_test.rb' do
|
352
|
+
<<-S
|
340
353
|
require 'test_helper'
|
341
354
|
|
342
355
|
class AccountTest < ActiveSupport::TestCase
|
@@ -383,7 +396,7 @@ class AccountTest < ActiveSupport::TestCase
|
|
383
396
|
assert_equal 20, Account.generate_password(20).length
|
384
397
|
end
|
385
398
|
end
|
386
|
-
|
399
|
+
S
|
387
400
|
end
|
388
401
|
git_commit 'Add account unit tests'
|
389
402
|
end
|
@@ -391,17 +404,19 @@ end
|
|
391
404
|
def add_current_user_alias
|
392
405
|
log_task __method__
|
393
406
|
|
394
|
-
inject_into_file 'app/controllers/application_controller.rb', after: "::Base\n" do
|
407
|
+
inject_into_file 'app/controllers/application_controller.rb', after: "::Base\n" do
|
408
|
+
<<-S
|
395
409
|
alias_method :current_user, :current_account
|
396
410
|
|
397
|
-
|
411
|
+
S
|
398
412
|
end
|
399
413
|
git_commit 'Add current_user alias'
|
400
414
|
end
|
401
415
|
|
402
416
|
def add_devise_controller_override
|
403
417
|
log_task __method__
|
404
|
-
inject_into_file 'app/controllers/application_controller.rb', before: "end\n" do
|
418
|
+
inject_into_file 'app/controllers/application_controller.rb', before: "end\n" do
|
419
|
+
<<-S
|
405
420
|
|
406
421
|
private
|
407
422
|
|
@@ -413,7 +428,7 @@ def add_devise_controller_override
|
|
413
428
|
# somewhere_path
|
414
429
|
# end
|
415
430
|
#end
|
416
|
-
|
431
|
+
S
|
417
432
|
end
|
418
433
|
git_commit 'Add devise after_sign_in_path_for override'
|
419
434
|
end
|
@@ -421,7 +436,8 @@ end
|
|
421
436
|
def add_devise_views
|
422
437
|
log_task __method__
|
423
438
|
|
424
|
-
file 'app/views/devise/confirmations/new.html.erb' do
|
439
|
+
file 'app/views/devise/confirmations/new.html.erb' do
|
440
|
+
<<-S
|
425
441
|
<%
|
426
442
|
title 'Confirm'
|
427
443
|
meta_description '...'
|
@@ -448,19 +464,21 @@ def add_devise_views
|
|
448
464
|
<%= render 'devise/shared/links' %>
|
449
465
|
</div>
|
450
466
|
</div>
|
451
|
-
|
467
|
+
S
|
452
468
|
end
|
453
469
|
|
454
|
-
file 'app/views/devise/mailer/confirmation_instructions.html.erb' do
|
470
|
+
file 'app/views/devise/mailer/confirmation_instructions.html.erb' do
|
471
|
+
<<-S
|
455
472
|
<p>Welcome <%= @email %>!</p>
|
456
473
|
|
457
474
|
<p>You can confirm your account email through the link below:</p>
|
458
475
|
|
459
476
|
<p><%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %></p>
|
460
|
-
|
477
|
+
S
|
461
478
|
end
|
462
479
|
|
463
|
-
file 'app/views/devise/mailer/reset_password_instructions.html.erb' do
|
480
|
+
file 'app/views/devise/mailer/reset_password_instructions.html.erb' do
|
481
|
+
<<-S
|
464
482
|
<p>Hello <%= @resource.email %>!</p>
|
465
483
|
|
466
484
|
<p>Someone has requested a link to change your password. You can do this through the link below.</p>
|
@@ -469,10 +487,11 @@ def add_devise_views
|
|
469
487
|
|
470
488
|
<p>If you didn't request this, please ignore this email.</p>
|
471
489
|
<p>Your password won't change until you access the link above and create a new one.</p>
|
472
|
-
|
490
|
+
S
|
473
491
|
end
|
474
492
|
|
475
|
-
file 'app/views/devise/mailer/unlock_instructions.html.erb' do
|
493
|
+
file 'app/views/devise/mailer/unlock_instructions.html.erb' do
|
494
|
+
<<-S
|
476
495
|
<p>Hello <%= @resource.email %>!</p>
|
477
496
|
|
478
497
|
<p>Your account has been locked due to an excessive number of unsuccessful sign in attempts.</p>
|
@@ -480,10 +499,11 @@ def add_devise_views
|
|
480
499
|
<p>Click the link below to unlock your account:</p>
|
481
500
|
|
482
501
|
<p><%= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token) %></p>
|
483
|
-
|
502
|
+
S
|
484
503
|
end
|
485
504
|
|
486
|
-
file 'app/views/devise/passwords/edit.html.erb' do
|
505
|
+
file 'app/views/devise/passwords/edit.html.erb' do
|
506
|
+
<<-S
|
487
507
|
<%
|
488
508
|
title 'Change your password'
|
489
509
|
meta_description '...'
|
@@ -512,10 +532,11 @@ def add_devise_views
|
|
512
532
|
<%= render 'devise/shared/links' %>
|
513
533
|
</div>
|
514
534
|
</div>
|
515
|
-
|
535
|
+
S
|
516
536
|
end
|
517
537
|
|
518
|
-
file 'app/views/devise/passwords/new.html.erb' do
|
538
|
+
file 'app/views/devise/passwords/new.html.erb' do
|
539
|
+
<<-S
|
519
540
|
<%
|
520
541
|
title 'Forgot your password?'
|
521
542
|
meta_description '...'
|
@@ -542,10 +563,11 @@ def add_devise_views
|
|
542
563
|
<%= render 'devise/shared/links' %>
|
543
564
|
</div>
|
544
565
|
</div>
|
545
|
-
|
566
|
+
S
|
546
567
|
end
|
547
568
|
|
548
|
-
file 'app/views/devise/registrations/edit.html.erb' do
|
569
|
+
file 'app/views/devise/registrations/edit.html.erb' do
|
570
|
+
<<-S
|
549
571
|
<%
|
550
572
|
title 'Edit your account'
|
551
573
|
meta_description '...'
|
@@ -596,10 +618,11 @@ def add_devise_views
|
|
596
618
|
</p>
|
597
619
|
</div>
|
598
620
|
</div>
|
599
|
-
|
621
|
+
S
|
600
622
|
end
|
601
623
|
|
602
|
-
file 'app/views/devise/registrations/new.html.erb' do
|
624
|
+
file 'app/views/devise/registrations/new.html.erb' do
|
625
|
+
<<-S
|
603
626
|
<%
|
604
627
|
title 'Register a new account'
|
605
628
|
meta_description '...'
|
@@ -631,10 +654,11 @@ def add_devise_views
|
|
631
654
|
<%= render 'devise/shared/links' %>
|
632
655
|
</div>
|
633
656
|
</div>
|
634
|
-
|
657
|
+
S
|
635
658
|
end
|
636
659
|
|
637
|
-
file 'app/views/devise/sessions/new.html.erb' do
|
660
|
+
file 'app/views/devise/sessions/new.html.erb' do
|
661
|
+
<<-S
|
638
662
|
<%
|
639
663
|
title 'Sign in'
|
640
664
|
meta_description '...'
|
@@ -674,10 +698,11 @@ def add_devise_views
|
|
674
698
|
<%= render 'devise/shared/links' %>
|
675
699
|
</div>
|
676
700
|
</div>
|
677
|
-
|
701
|
+
S
|
678
702
|
end
|
679
703
|
|
680
|
-
file 'app/views/devise/unlocks/new.html.erb' do
|
704
|
+
file 'app/views/devise/unlocks/new.html.erb' do
|
705
|
+
<<-S
|
681
706
|
<%
|
682
707
|
title 'Re-send unlock instructions'
|
683
708
|
meta_description '...'
|
@@ -704,10 +729,11 @@ def add_devise_views
|
|
704
729
|
<%= render 'devise/shared/links' %>
|
705
730
|
</div>
|
706
731
|
</div>
|
707
|
-
|
732
|
+
S
|
708
733
|
end
|
709
734
|
|
710
|
-
file 'app/views/devise/shared/_links.html.erb' do
|
735
|
+
file 'app/views/devise/shared/_links.html.erb' do
|
736
|
+
<<-'S'
|
711
737
|
<%= content_tag(:h4, 'Or do something else') if controller_name != 'sessions' %>
|
712
738
|
<ul>
|
713
739
|
<%- if controller_name != 'sessions' %>
|
@@ -746,7 +772,7 @@ def add_devise_views
|
|
746
772
|
<% end -%>
|
747
773
|
<% end -%>
|
748
774
|
</ul>
|
749
|
-
|
775
|
+
S
|
750
776
|
end
|
751
777
|
git_commit 'Add devise views'
|
752
778
|
end
|
@@ -772,21 +798,23 @@ def add_auth_links_to_the_navbar
|
|
772
798
|
<% end %>
|
773
799
|
S
|
774
800
|
|
775
|
-
inject_into_file 'app/views/layouts/_navigation.html.erb', after: "</ul>\n" do
|
801
|
+
inject_into_file 'app/views/layouts/_navigation.html.erb', after: "</ul>\n" do
|
802
|
+
<<-S
|
776
803
|
<ul class="nav navbar-nav nav-auth">
|
777
804
|
<%= render 'layouts/navigation_auth' %>
|
778
805
|
</ul>
|
779
|
-
|
806
|
+
S
|
780
807
|
end
|
781
808
|
|
782
|
-
append_file 'app/assets/stylesheets/application.css.scss' do
|
809
|
+
append_file 'app/assets/stylesheets/application.css.scss' do
|
810
|
+
<<-S
|
783
811
|
|
784
812
|
@media (min-width: $screen-sm) {
|
785
813
|
.nav-auth {
|
786
814
|
float: right;
|
787
815
|
}
|
788
816
|
}
|
789
|
-
|
817
|
+
S
|
790
818
|
end
|
791
819
|
git_commit 'Add authentication links to the layout'
|
792
820
|
end
|