potassium 1.3.5 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +1 -1
  5. data/.ruby_style.yml +6 -2
  6. data/CHANGELOG.md +19 -1
  7. data/README.md +79 -74
  8. data/circle.yml +9 -0
  9. data/docs/CONTRIBUTING.md +132 -0
  10. data/docs/{dsl.md → DSL.md} +146 -18
  11. data/lib/potassium/{templates/application/assets → assets}/.bowerrc +0 -0
  12. data/lib/potassium/assets/.buildpacks +3 -0
  13. data/lib/potassium/{templates/application/assets → assets}/.editorconfig +0 -0
  14. data/lib/potassium/assets/.env.example.erb +8 -0
  15. data/lib/potassium/assets/.hound.yml +2 -0
  16. data/lib/potassium/{templates/application/assets → assets}/.pryrc +0 -0
  17. data/lib/potassium/assets/.rubocop.yml +3 -0
  18. data/lib/potassium/assets/.ruby_style.yml +0 -0
  19. data/lib/potassium/assets/Dockerfile.ci +4 -0
  20. data/lib/potassium/assets/Procfile +1 -0
  21. data/lib/potassium/assets/README.md.erb +2 -0
  22. data/lib/potassium/assets/README.yml +83 -0
  23. data/lib/potassium/{templates/application/assets → assets}/active_admin/active_admin.js.coffee +0 -0
  24. data/lib/potassium/{templates/application/assets → assets}/active_admin/admin_user_policy.rb +0 -0
  25. data/lib/potassium/{templates/application/assets → assets}/active_admin/comment_policy.rb +0 -0
  26. data/lib/potassium/{templates/application/assets → assets}/active_admin/init_activeadmin_angular.rb +0 -0
  27. data/lib/potassium/{templates/application/assets → assets}/active_admin/pundit_page_policy.rb +0 -0
  28. data/lib/potassium/{templates/application/assets → assets}/api/api_error_concern.rb +0 -0
  29. data/lib/potassium/{templates/application/assets → assets}/api/base_controller.rb +0 -0
  30. data/lib/potassium/{templates/application/assets → assets}/api/responder.rb +0 -0
  31. data/lib/potassium/assets/bin/cibuild.erb +27 -0
  32. data/lib/potassium/assets/bin/setup.erb +22 -0
  33. data/lib/potassium/assets/bin/setup_heroku.erb +21 -0
  34. data/lib/potassium/{templates/application/assets → assets}/bower.json +0 -0
  35. data/lib/potassium/assets/circle.yml +16 -0
  36. data/lib/potassium/assets/config/database_mysql.yml.erb +25 -0
  37. data/lib/potassium/assets/config/database_postgresql.yml.erb +25 -0
  38. data/lib/potassium/assets/config/environments/staging.rb +5 -0
  39. data/lib/potassium/assets/config/puma.rb +29 -0
  40. data/lib/potassium/assets/config/secrets.yml.erb +14 -0
  41. data/lib/potassium/assets/docker-compose.ci.yml +6 -0
  42. data/lib/potassium/{templates/application/assets → assets}/es.yml +0 -0
  43. data/lib/potassium/{templates/application/assets → assets}/testing/.rspec +0 -0
  44. data/lib/potassium/{templates/application/assets → assets}/testing/rails_helper.rb +0 -0
  45. data/lib/potassium/cli/commands/create.rb +55 -4
  46. data/lib/potassium/cli/commands/install.rb +27 -13
  47. data/lib/potassium/{templates/application/generator.rb → generators/application.rb} +7 -2
  48. data/lib/potassium/{templates/application/recipe_generator.rb → generators/recipe.rb} +11 -2
  49. data/lib/potassium/helpers/answer-helpers.rb +21 -0
  50. data/lib/potassium/{templates/application/helpers → helpers}/callback-helpers.rb +0 -0
  51. data/lib/potassium/helpers/docker-helpers.rb +37 -0
  52. data/lib/potassium/{templates/application/helpers → helpers}/environment-helpers.rb +0 -0
  53. data/lib/potassium/{templates/application/helpers → helpers}/gem-helpers.rb +6 -2
  54. data/lib/potassium/helpers/info-helpers.rb +16 -0
  55. data/lib/potassium/helpers/readme-helpers.rb +85 -0
  56. data/lib/potassium/{templates/application/helpers → helpers}/template-dsl.rb +8 -0
  57. data/lib/potassium/helpers/template-helpers.rb +97 -0
  58. data/lib/potassium/{templates/application/helpers → helpers}/variable-helpers.rb +0 -0
  59. data/lib/potassium/recipe.rb +2 -0
  60. data/lib/potassium/{templates/application/recipes → recipes}/admin.rb +36 -6
  61. data/lib/potassium/recipes/angular_admin.rb +56 -0
  62. data/lib/potassium/recipes/api.rb +43 -0
  63. data/lib/potassium/recipes/aws_sdk.rb +5 -0
  64. data/lib/potassium/recipes/bower.rb +13 -0
  65. data/lib/potassium/recipes/ci.rb +42 -0
  66. data/lib/potassium/recipes/cleanup.rb +10 -0
  67. data/lib/potassium/recipes/database.rb +42 -0
  68. data/lib/potassium/recipes/delayed_job.rb +41 -0
  69. data/lib/potassium/recipes/devise.rb +64 -0
  70. data/lib/potassium/recipes/editorconfig.rb +5 -0
  71. data/lib/potassium/recipes/env.rb +10 -0
  72. data/lib/potassium/recipes/git.rb +13 -0
  73. data/lib/potassium/recipes/github.rb +27 -0
  74. data/lib/potassium/recipes/heroku.rb +138 -0
  75. data/lib/potassium/recipes/i18n.rb +26 -0
  76. data/lib/potassium/recipes/paperclip.rb +37 -0
  77. data/lib/potassium/recipes/production.rb +7 -0
  78. data/lib/potassium/recipes/pry.rb +10 -0
  79. data/lib/potassium/recipes/puma.rb +19 -0
  80. data/lib/potassium/recipes/pundit.rb +61 -0
  81. data/lib/potassium/recipes/rack_cors.rb +21 -0
  82. data/lib/potassium/recipes/readme.rb +7 -0
  83. data/lib/potassium/recipes/ruby.rb +23 -0
  84. data/lib/potassium/recipes/script.rb +16 -0
  85. data/lib/potassium/recipes/secrets.rb +5 -0
  86. data/lib/potassium/recipes/staging.rb +5 -0
  87. data/lib/potassium/recipes/style.rb +13 -0
  88. data/lib/potassium/recipes/testing.rb +37 -0
  89. data/lib/potassium/templates/application.rb +67 -0
  90. data/lib/potassium/templates/recipe.rb +12 -0
  91. data/lib/potassium/text_spinner.rb +0 -5
  92. data/lib/potassium/version.rb +2 -1
  93. data/potassium.gemspec +3 -0
  94. data/spec/fakes/bin/heroku +5 -0
  95. data/spec/fakes/bin/hub +5 -0
  96. data/spec/features/ci_spec.rb +14 -0
  97. data/spec/features/github_spec.rb +22 -0
  98. data/spec/features/heroku_spec.rb +61 -0
  99. data/spec/features/new_project_spec.rb +38 -0
  100. data/spec/spec_helper.rb +33 -0
  101. data/spec/support/fake_github.rb +25 -0
  102. data/spec/support/fake_heroku.rb +77 -0
  103. data/spec/support/potassium_test_helpers.rb +98 -0
  104. metadata +149 -62
  105. data/lib/potassium/templates/application/assets/.rbenv-vars.example +0 -8
  106. data/lib/potassium/templates/application/assets/config/database_mysql.yml +0 -40
  107. data/lib/potassium/templates/application/assets/config/database_postgresql.yml +0 -26
  108. data/lib/potassium/templates/application/helpers/recipe-helpers.rb +0 -5
  109. data/lib/potassium/templates/application/helpers/template-helpers.rb +0 -35
  110. data/lib/potassium/templates/application/recipe_template.rb +0 -23
  111. data/lib/potassium/templates/application/recipes/angular_admin.rb +0 -26
  112. data/lib/potassium/templates/application/recipes/api.rb +0 -22
  113. data/lib/potassium/templates/application/recipes/asks/admin.rb +0 -9
  114. data/lib/potassium/templates/application/recipes/asks/api.rb +0 -2
  115. data/lib/potassium/templates/application/recipes/asks/database.rb +0 -9
  116. data/lib/potassium/templates/application/recipes/asks/devise.rb +0 -10
  117. data/lib/potassium/templates/application/recipes/asks/i18n.rb +0 -8
  118. data/lib/potassium/templates/application/recipes/asks/paperclip.rb +0 -2
  119. data/lib/potassium/templates/application/recipes/asks/pundit.rb +0 -4
  120. data/lib/potassium/templates/application/recipes/aws_sdk.rb +0 -1
  121. data/lib/potassium/templates/application/recipes/bower.rb +0 -3
  122. data/lib/potassium/templates/application/recipes/checks/devise.rb +0 -1
  123. data/lib/potassium/templates/application/recipes/database.rb +0 -22
  124. data/lib/potassium/templates/application/recipes/dependencies/admin.rb +0 -3
  125. data/lib/potassium/templates/application/recipes/devise.rb +0 -28
  126. data/lib/potassium/templates/application/recipes/editorconfig.rb +0 -1
  127. data/lib/potassium/templates/application/recipes/git.rb +0 -9
  128. data/lib/potassium/templates/application/recipes/i18n.rb +0 -9
  129. data/lib/potassium/templates/application/recipes/paperclip.rb +0 -20
  130. data/lib/potassium/templates/application/recipes/production.rb +0 -3
  131. data/lib/potassium/templates/application/recipes/pry.rb +0 -6
  132. data/lib/potassium/templates/application/recipes/pundit.rb +0 -33
  133. data/lib/potassium/templates/application/recipes/rack-cors.rb +0 -15
  134. data/lib/potassium/templates/application/recipes/rbenv.rb +0 -23
  135. data/lib/potassium/templates/application/recipes/readme.rb +0 -2
  136. data/lib/potassium/templates/application/recipes/testing.rb +0 -32
  137. data/lib/potassium/templates/application/recipes/unicorn.rb +0 -5
  138. data/lib/potassium/templates/application/template.rb +0 -58
@@ -0,0 +1,14 @@
1
+ require "spec_helper"
2
+ require "rubocop"
3
+
4
+ RSpec.describe "A new project" do
5
+ before(:all) do
6
+ drop_dummy_database
7
+ remove_project_directory
8
+ create_dummy_project("heroku" => true)
9
+ end
10
+
11
+ it "correctly runs continous integration" do
12
+ expect { on_project { `bin/cibuild` } }.to_not output.to_stderr
13
+ end
14
+ end
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "GitHub" do
4
+ before do
5
+ drop_dummy_database
6
+ remove_project_directory
7
+ end
8
+
9
+ it "create a the github repository" do
10
+ create_dummy_project("github" => true)
11
+ app_name = PotassiumTestHelpers::APP_NAME.dasherize
12
+
13
+ expect(FakeGithub).to have_created_repo("platanus/#{app_name}")
14
+ end
15
+
16
+ it "create a the github private repository" do
17
+ create_dummy_project("github" => true, "github-private" => true)
18
+ app_name = PotassiumTestHelpers::APP_NAME.dasherize
19
+
20
+ expect(FakeGithub).to have_created_private_repo("platanus/#{app_name}")
21
+ end
22
+ end
@@ -0,0 +1,61 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "Heroku" do
4
+ before(:all) do
5
+ drop_dummy_database
6
+ remove_project_directory
7
+ end
8
+
9
+ fit "creates a project for Heroku" do
10
+ create_dummy_project("heroku" => true)
11
+ app_name = PotassiumTestHelpers::APP_NAME.dasherize
12
+
13
+ expect(FakeHeroku).to(
14
+ have_gem_included(project_path, "rails_stdout_logging")
15
+ )
16
+
17
+ procfile_path = "#{project_path}/Procfile"
18
+ procfile = IO.read(procfile_path)
19
+
20
+ expect(procfile).to include("web: bundle exec puma -C ./config/puma.rb")
21
+
22
+ buildpacks_path = "#{project_path}/.buildpacks"
23
+ buildpacks = IO.read(buildpacks_path)
24
+
25
+ expect(buildpacks).to include("https://github.com/platanus/heroku-buildpack-bower.git")
26
+ expect(buildpacks).to include("https://github.com/platanus/heroku-buildpack-ruby-version.git")
27
+ expect(buildpacks).to include("https://github.com/heroku/heroku-buildpack-ruby.git")
28
+ expect(buildpacks).to(
29
+ include("https://github.com/gunpowderlabs/buildpack-ruby-rake-deploy-tasks.git")
30
+ )
31
+
32
+ expect(FakeHeroku).to have_created_app_for("staging")
33
+ expect(FakeHeroku).to have_created_app_for("production")
34
+
35
+ expect(FakeHeroku).to have_configured_vars("staging", "SECRET_KEY_BASE")
36
+ expect(FakeHeroku).to have_configured_vars("staging", "RACK_ENV")
37
+ expect(FakeHeroku).to have_configured_vars("staging", "RAILS_ENV")
38
+ expect(FakeHeroku).to have_configured_vars("staging", "DEPLOY_TASKS")
39
+
40
+ expect(FakeHeroku).to have_configured_vars("production", "SECRET_KEY_BASE")
41
+ expect(FakeHeroku).to have_configured_vars("production", "RACK_ENV")
42
+ expect(FakeHeroku).to have_configured_vars("production", "RAILS_ENV")
43
+ expect(FakeHeroku).to have_configured_vars("production", "DEPLOY_TASKS")
44
+
45
+ expect(FakeHeroku).to have_created_pipeline_for("staging")
46
+ expect(FakeHeroku).to have_add_pipeline_for("production")
47
+
48
+ bin_setup_path = "#{project_path}/bin/setup"
49
+ bin_setup = IO.read(bin_setup_path)
50
+
51
+ expect(bin_setup).to include("bin/setup_heroku")
52
+
53
+ bin_setup_heroku_path = "#{project_path}/bin/setup_heroku"
54
+ bin_setup_heroku = IO.read(bin_setup_heroku_path)
55
+
56
+ expect(bin_setup_heroku).to include("heroku apps:info --app pl-#{app_name}-staging")
57
+ expect(bin_setup_heroku).to include("heroku apps:info --app pl-#{app_name}-production")
58
+ expect(bin_setup_heroku).to include("git config heroku.remote staging")
59
+ expect(File.stat(bin_setup_path)).to be_executable
60
+ end
61
+ end
@@ -0,0 +1,38 @@
1
+ require "spec_helper"
2
+ require "rubocop"
3
+
4
+ RSpec.describe "A new project" do
5
+ before(:all) do
6
+ drop_dummy_database
7
+ remove_project_directory
8
+ create_dummy_project
9
+ end
10
+
11
+ it "is correctly bundled" do
12
+ expect { on_project { `bundle exec rails -v` } }.to_not output.to_stderr
13
+ end
14
+
15
+ it "is a valid rubocop project" do
16
+ on_project do
17
+ expect(run_rubocop).to eq(true)
18
+ end
19
+ end
20
+
21
+ it "configures rubocop" do
22
+ rubocop_config_file = IO.read("#{project_path}/.rubocop.yml")
23
+
24
+ expect(rubocop_config_file).to include("inherit_from")
25
+ expect(rubocop_config_file).to include("style_guides/platanus/ruby.yml")
26
+ expect(rubocop_config_file).to include(".ruby_style.yml")
27
+ end
28
+
29
+ it "set custom ruby style file placeholder" do
30
+ expect(File).to exist("#{project_path}/.ruby_style.yml")
31
+ end
32
+
33
+ it "configures hound" do
34
+ hound_config_file = IO.read("#{project_path}/.hound.yml")
35
+
36
+ expect(hound_config_file).to include("config_file: .ruby_style.yml")
37
+ end
38
+ end
@@ -0,0 +1,33 @@
1
+ require "bundler/setup"
2
+
3
+ Bundler.require(:default, :test)
4
+
5
+ require (Pathname.new(__FILE__).dirname + "../lib/potassium").expand_path
6
+
7
+ Dir["./spec/support/**/*.rb"].each { |file| require file }
8
+
9
+ RSpec.configure do |config|
10
+ config.include PotassiumTestHelpers
11
+
12
+ config.expect_with :rspec do |expectations|
13
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
14
+ end
15
+
16
+ config.mock_with :rspec do |mocks|
17
+ mocks.verify_partial_doubles = true
18
+ end
19
+
20
+ config.filter_run :focus
21
+ config.run_all_when_everything_filtered = true
22
+ config.disable_monkey_patching!
23
+
24
+ config.before(:all) do
25
+ add_fakes_to_path
26
+ create_tmp_directory
27
+ end
28
+
29
+ config.before(:each) do
30
+ FakeGithub.clear!
31
+ FakeHeroku.clear!
32
+ end
33
+ end
@@ -0,0 +1,25 @@
1
+ class FakeGithub
2
+ RECORDER = File.expand_path(File.join('..', '..', 'tmp', 'hub_commands'), File.dirname(__FILE__))
3
+
4
+ def initialize(args)
5
+ @args = args
6
+ end
7
+
8
+ def run!
9
+ File.open(RECORDER, 'a') do |file|
10
+ file.write @args.join(' ')
11
+ end
12
+ end
13
+
14
+ def self.clear!
15
+ FileUtils.rm_rf RECORDER
16
+ end
17
+
18
+ def self.has_created_repo?(repo_name)
19
+ File.read(RECORDER) == "create #{repo_name}"
20
+ end
21
+
22
+ def self.has_created_private_repo?(repo_name)
23
+ File.read(RECORDER) == "create -p #{repo_name}"
24
+ end
25
+ end
@@ -0,0 +1,77 @@
1
+ require 'active_support/all'
2
+
3
+ class FakeHeroku
4
+ RECORDER = File.expand_path(File.join('..', '..', 'tmp', 'heroku_commands'), File.dirname(__FILE__))
5
+
6
+ def initialize(args)
7
+ @args = args
8
+ end
9
+
10
+ def run!
11
+ if @args.first == "plugins"
12
+ puts "heroku-pipelines@0.29.0"
13
+ elsif @args.first == "pipelines:info"
14
+ if FakeHeroku.has_created_pipeline?
15
+ puts "=== dummy-app\nstaging:\tpl-dummy-app-staging\nproduction:\tpl-dummy-app-production"
16
+ end
17
+ elsif @args.first == "auth:whoami"
18
+ puts "foo@bar.com"
19
+ end
20
+ File.open(RECORDER, 'a') do |file|
21
+ file.puts @args.join(' ')
22
+ end
23
+ end
24
+
25
+ def self.clear!
26
+ FileUtils.rm_rf RECORDER
27
+ end
28
+
29
+ def self.has_gem_included?(project_path, gem_name)
30
+ gemfile = File.open(File.join(project_path, 'Gemfile'), 'a')
31
+
32
+ File.foreach(gemfile).any? do |line|
33
+ line.match(/#{Regexp.quote(gem_name)}/)
34
+ end
35
+ end
36
+
37
+ def self.has_created_app_for?(environment, flags = nil)
38
+ staged_app_name = "pl-#{PotassiumTestHelpers::APP_NAME.dasherize}-#{environment}"
39
+
40
+ command = if flags
41
+ "create #{staged_app_name} #{flags} --remote #{environment}\n"
42
+ else
43
+ "create #{staged_app_name} --remote #{environment}\n"
44
+ end
45
+
46
+ File.foreach(RECORDER).any? { |line| line == command }
47
+ end
48
+
49
+ def self.has_configured_vars?(environment, var)
50
+ app_name = PotassiumTestHelpers::APP_NAME.dasherize
51
+ staged_app_name = "pl-#{app_name}-#{environment}"
52
+ commands_ran =~ /^config:add.*#{var}=.+ --app #{staged_app_name}\n/
53
+ end
54
+
55
+ def self.has_created_pipeline_for?(environment)
56
+ has_done_pipeline_for?(environment, 'create')
57
+ end
58
+
59
+ def self.has_add_pipeline_for?(environment)
60
+ has_done_pipeline_for?(environment, 'add')
61
+ end
62
+
63
+ def self.has_created_pipeline?
64
+ commands_ran =~ /^pipelines:create/
65
+ end
66
+
67
+ def self.has_done_pipeline_for?(environment, command)
68
+ app_name = PotassiumTestHelpers::APP_NAME.dasherize
69
+ staged_app_name = "pl-#{app_name}-#{environment}"
70
+ commands_ran =~ /^pipelines:#{command} #{app_name} --stage #{environment} |
71
+ --app #{staged_app_name}/
72
+ end
73
+
74
+ def self.commands_ran
75
+ @commands_ran ||= File.read(RECORDER)
76
+ end
77
+ end
@@ -0,0 +1,98 @@
1
+ module PotassiumTestHelpers
2
+ APP_NAME = "dummy_app"
3
+
4
+ def remove_project_directory
5
+ FileUtils.rm_rf(project_path)
6
+ end
7
+
8
+ def create_tmp_directory
9
+ FileUtils.mkdir_p(tmp_path)
10
+ end
11
+
12
+ def create_dummy_project(arguments = {})
13
+ Dir.chdir(tmp_path) do
14
+ Bundler.with_clean_env do
15
+ add_fakes_to_path
16
+ full_arguments = hash_to_arguments(default_arguments.merge(arguments))
17
+ run_command("#{potassium_bin} create #{APP_NAME} #{full_arguments}")
18
+ end
19
+ end
20
+ end
21
+
22
+ def drop_dummy_database
23
+ return unless File.exist?(project_path)
24
+ on_project { run_command("bundle exec rake db:drop") }
25
+ end
26
+
27
+ def add_fakes_to_path
28
+ ENV["PATH"] = "#{support_bin}:#{ENV['PATH']}"
29
+ end
30
+
31
+ def project_path
32
+ @project_path ||= Pathname.new("#{tmp_path}/#{APP_NAME}")
33
+ end
34
+
35
+ def on_project(&block)
36
+ Dir.chdir(project_path) do
37
+ Bundler.with_clean_env do
38
+ block.call
39
+ end
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def tmp_path
46
+ @tmp_path ||= Pathname.new("#{root_path}/tmp")
47
+ end
48
+
49
+ def potassium_bin
50
+ File.join(root_path, "bin", "potassium")
51
+ end
52
+
53
+ def default_arguments
54
+ {
55
+ "db" => "mysql",
56
+ "lang" => "es",
57
+ "heroku" => false,
58
+ "admin" => false,
59
+ "pundit" => false,
60
+ "paperclip" => false,
61
+ "devise" => false,
62
+ "api" => false,
63
+ "delayed-job" => false,
64
+ "github" => false,
65
+ "github-private" => false
66
+ }
67
+ end
68
+
69
+ def hash_to_arguments(hash)
70
+ hash.map do |key, value|
71
+ if value == true
72
+ "--#{key}"
73
+ elsif value == false
74
+ "--no-#{key}"
75
+ elsif value
76
+ "--#{key}=#{value}"
77
+ end
78
+ end.join(" ")
79
+ end
80
+
81
+ def support_bin
82
+ File.join(root_path, "spec", "fakes", "bin")
83
+ end
84
+
85
+ def root_path
86
+ File.expand_path("../../../", __FILE__)
87
+ end
88
+
89
+ def run_command(command)
90
+ system(command)
91
+ end
92
+
93
+ def run_rubocop
94
+ options, paths = RuboCop::Options.new.parse(["."])
95
+ runner = RuboCop::Runner.new(options, RuboCop::ConfigStore.new)
96
+ runner.run(paths)
97
+ end
98
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: potassium
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.5
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - juliogarciag
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-29 00:00:00.000000000 Z
11
+ date: 2016-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,48 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.4.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.4.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.10.3
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.10.3
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.38.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.38.0
41
83
  - !ruby/object:Gem::Dependency
42
84
  name: rails
43
85
  requirement: !ruby/object:Gem::Requirement
@@ -133,6 +175,7 @@ files:
133
175
  - ".editorconfig"
134
176
  - ".gitignore"
135
177
  - ".hound.yml"
178
+ - ".rspec"
136
179
  - ".rubocop.yml"
137
180
  - ".ruby_style.yml"
138
181
  - CHANGELOG.md
@@ -141,73 +184,106 @@ files:
141
184
  - README.md
142
185
  - Rakefile
143
186
  - bin/potassium
144
- - docs/dsl.md
187
+ - circle.yml
188
+ - docs/CONTRIBUTING.md
189
+ - docs/DSL.md
145
190
  - lib/potassium.rb
191
+ - lib/potassium/assets/.bowerrc
192
+ - lib/potassium/assets/.buildpacks
193
+ - lib/potassium/assets/.editorconfig
194
+ - lib/potassium/assets/.env.example.erb
195
+ - lib/potassium/assets/.hound.yml
196
+ - lib/potassium/assets/.pryrc
197
+ - lib/potassium/assets/.rubocop.yml
198
+ - lib/potassium/assets/.ruby_style.yml
199
+ - lib/potassium/assets/Dockerfile.ci
200
+ - lib/potassium/assets/Procfile
201
+ - lib/potassium/assets/README.md.erb
202
+ - lib/potassium/assets/README.yml
203
+ - lib/potassium/assets/active_admin/active_admin.js.coffee
204
+ - lib/potassium/assets/active_admin/admin_user_policy.rb
205
+ - lib/potassium/assets/active_admin/comment_policy.rb
206
+ - lib/potassium/assets/active_admin/init_activeadmin_angular.rb
207
+ - lib/potassium/assets/active_admin/pundit_page_policy.rb
208
+ - lib/potassium/assets/api/api_error_concern.rb
209
+ - lib/potassium/assets/api/base_controller.rb
210
+ - lib/potassium/assets/api/responder.rb
211
+ - lib/potassium/assets/bin/cibuild.erb
212
+ - lib/potassium/assets/bin/setup.erb
213
+ - lib/potassium/assets/bin/setup_heroku.erb
214
+ - lib/potassium/assets/bower.json
215
+ - lib/potassium/assets/circle.yml
216
+ - lib/potassium/assets/config/database_mysql.yml.erb
217
+ - lib/potassium/assets/config/database_postgresql.yml.erb
218
+ - lib/potassium/assets/config/environments/staging.rb
219
+ - lib/potassium/assets/config/puma.rb
220
+ - lib/potassium/assets/config/secrets.yml.erb
221
+ - lib/potassium/assets/docker-compose.ci.yml
222
+ - lib/potassium/assets/es.yml
223
+ - lib/potassium/assets/testing/.rspec
224
+ - lib/potassium/assets/testing/rails_helper.rb
146
225
  - lib/potassium/cli.rb
147
226
  - lib/potassium/cli/commands/create.rb
148
227
  - lib/potassium/cli/commands/install.rb
228
+ - lib/potassium/generators/application.rb
229
+ - lib/potassium/generators/recipe.rb
230
+ - lib/potassium/helpers/answer-helpers.rb
231
+ - lib/potassium/helpers/callback-helpers.rb
232
+ - lib/potassium/helpers/docker-helpers.rb
233
+ - lib/potassium/helpers/environment-helpers.rb
234
+ - lib/potassium/helpers/gem-helpers.rb
235
+ - lib/potassium/helpers/info-helpers.rb
236
+ - lib/potassium/helpers/readme-helpers.rb
237
+ - lib/potassium/helpers/template-dsl.rb
238
+ - lib/potassium/helpers/template-helpers.rb
239
+ - lib/potassium/helpers/variable-helpers.rb
149
240
  - lib/potassium/newest_version_ensurer.rb
241
+ - lib/potassium/recipe.rb
242
+ - lib/potassium/recipes/admin.rb
243
+ - lib/potassium/recipes/angular_admin.rb
244
+ - lib/potassium/recipes/api.rb
245
+ - lib/potassium/recipes/aws_sdk.rb
246
+ - lib/potassium/recipes/bower.rb
247
+ - lib/potassium/recipes/ci.rb
248
+ - lib/potassium/recipes/cleanup.rb
249
+ - lib/potassium/recipes/database.rb
250
+ - lib/potassium/recipes/delayed_job.rb
251
+ - lib/potassium/recipes/devise.rb
252
+ - lib/potassium/recipes/editorconfig.rb
253
+ - lib/potassium/recipes/env.rb
254
+ - lib/potassium/recipes/git.rb
255
+ - lib/potassium/recipes/github.rb
256
+ - lib/potassium/recipes/heroku.rb
257
+ - lib/potassium/recipes/i18n.rb
258
+ - lib/potassium/recipes/paperclip.rb
259
+ - lib/potassium/recipes/production.rb
260
+ - lib/potassium/recipes/pry.rb
261
+ - lib/potassium/recipes/puma.rb
262
+ - lib/potassium/recipes/pundit.rb
263
+ - lib/potassium/recipes/rack_cors.rb
264
+ - lib/potassium/recipes/readme.rb
265
+ - lib/potassium/recipes/ruby.rb
266
+ - lib/potassium/recipes/script.rb
267
+ - lib/potassium/recipes/secrets.rb
268
+ - lib/potassium/recipes/staging.rb
269
+ - lib/potassium/recipes/style.rb
270
+ - lib/potassium/recipes/testing.rb
150
271
  - lib/potassium/template_finder.rb
151
- - lib/potassium/templates/application/assets/.bowerrc
152
- - lib/potassium/templates/application/assets/.editorconfig
153
- - lib/potassium/templates/application/assets/.pryrc
154
- - lib/potassium/templates/application/assets/.rbenv-vars.example
155
- - lib/potassium/templates/application/assets/active_admin/active_admin.js.coffee
156
- - lib/potassium/templates/application/assets/active_admin/admin_user_policy.rb
157
- - lib/potassium/templates/application/assets/active_admin/comment_policy.rb
158
- - lib/potassium/templates/application/assets/active_admin/init_activeadmin_angular.rb
159
- - lib/potassium/templates/application/assets/active_admin/pundit_page_policy.rb
160
- - lib/potassium/templates/application/assets/api/api_error_concern.rb
161
- - lib/potassium/templates/application/assets/api/base_controller.rb
162
- - lib/potassium/templates/application/assets/api/responder.rb
163
- - lib/potassium/templates/application/assets/bower.json
164
- - lib/potassium/templates/application/assets/config/database_mysql.yml
165
- - lib/potassium/templates/application/assets/config/database_postgresql.yml
166
- - lib/potassium/templates/application/assets/es.yml
167
- - lib/potassium/templates/application/assets/testing/.rspec
168
- - lib/potassium/templates/application/assets/testing/rails_helper.rb
169
- - lib/potassium/templates/application/generator.rb
170
- - lib/potassium/templates/application/helpers/callback-helpers.rb
171
- - lib/potassium/templates/application/helpers/environment-helpers.rb
172
- - lib/potassium/templates/application/helpers/gem-helpers.rb
173
- - lib/potassium/templates/application/helpers/recipe-helpers.rb
174
- - lib/potassium/templates/application/helpers/template-dsl.rb
175
- - lib/potassium/templates/application/helpers/template-helpers.rb
176
- - lib/potassium/templates/application/helpers/variable-helpers.rb
177
- - lib/potassium/templates/application/recipe_generator.rb
178
- - lib/potassium/templates/application/recipe_template.rb
179
- - lib/potassium/templates/application/recipes/admin.rb
180
- - lib/potassium/templates/application/recipes/angular_admin.rb
181
- - lib/potassium/templates/application/recipes/api.rb
182
- - lib/potassium/templates/application/recipes/asks/admin.rb
183
- - lib/potassium/templates/application/recipes/asks/api.rb
184
- - lib/potassium/templates/application/recipes/asks/database.rb
185
- - lib/potassium/templates/application/recipes/asks/devise.rb
186
- - lib/potassium/templates/application/recipes/asks/i18n.rb
187
- - lib/potassium/templates/application/recipes/asks/paperclip.rb
188
- - lib/potassium/templates/application/recipes/asks/pundit.rb
189
- - lib/potassium/templates/application/recipes/aws_sdk.rb
190
- - lib/potassium/templates/application/recipes/bower.rb
191
- - lib/potassium/templates/application/recipes/checks/devise.rb
192
- - lib/potassium/templates/application/recipes/database.rb
193
- - lib/potassium/templates/application/recipes/dependencies/admin.rb
194
- - lib/potassium/templates/application/recipes/devise.rb
195
- - lib/potassium/templates/application/recipes/editorconfig.rb
196
- - lib/potassium/templates/application/recipes/git.rb
197
- - lib/potassium/templates/application/recipes/i18n.rb
198
- - lib/potassium/templates/application/recipes/paperclip.rb
199
- - lib/potassium/templates/application/recipes/production.rb
200
- - lib/potassium/templates/application/recipes/pry.rb
201
- - lib/potassium/templates/application/recipes/pundit.rb
202
- - lib/potassium/templates/application/recipes/rack-cors.rb
203
- - lib/potassium/templates/application/recipes/rbenv.rb
204
- - lib/potassium/templates/application/recipes/readme.rb
205
- - lib/potassium/templates/application/recipes/testing.rb
206
- - lib/potassium/templates/application/recipes/unicorn.rb
207
- - lib/potassium/templates/application/template.rb
272
+ - lib/potassium/templates/application.rb
273
+ - lib/potassium/templates/recipe.rb
208
274
  - lib/potassium/text_spinner.rb
209
275
  - lib/potassium/version.rb
210
276
  - potassium.gemspec
277
+ - spec/fakes/bin/heroku
278
+ - spec/fakes/bin/hub
279
+ - spec/features/ci_spec.rb
280
+ - spec/features/github_spec.rb
281
+ - spec/features/heroku_spec.rb
282
+ - spec/features/new_project_spec.rb
283
+ - spec/spec_helper.rb
284
+ - spec/support/fake_github.rb
285
+ - spec/support/fake_heroku.rb
286
+ - spec/support/potassium_test_helpers.rb
211
287
  homepage: https://github.com/platanus/potassium
212
288
  licenses:
213
289
  - MIT
@@ -228,8 +304,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
304
  version: '0'
229
305
  requirements: []
230
306
  rubyforge_project:
231
- rubygems_version: 2.5.1
307
+ rubygems_version: 2.5.2
232
308
  signing_key:
233
309
  specification_version: 4
234
310
  summary: An application generator from Platanus
235
- test_files: []
311
+ test_files:
312
+ - spec/fakes/bin/heroku
313
+ - spec/fakes/bin/hub
314
+ - spec/features/ci_spec.rb
315
+ - spec/features/github_spec.rb
316
+ - spec/features/heroku_spec.rb
317
+ - spec/features/new_project_spec.rb
318
+ - spec/spec_helper.rb
319
+ - spec/support/fake_github.rb
320
+ - spec/support/fake_heroku.rb
321
+ - spec/support/potassium_test_helpers.rb
322
+ has_rdoc: