potassium 1.3.5 → 2.0.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.
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: