potassium 5.2.2 → 6.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +103 -28
- data/.circleci/setup-rubygems.sh +3 -0
- data/.gitignore +2 -1
- data/.node-version +1 -0
- data/.rubocop.yml +530 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +92 -1
- data/README.md +51 -45
- data/docs/DSL.md +5 -5
- data/lib/potassium/assets/.circleci/config.yml.erb +151 -0
- data/lib/potassium/assets/.eslintrc.json +352 -0
- data/lib/potassium/assets/.github/pull_request_template.md +9 -0
- data/lib/potassium/assets/.rubocop.yml +528 -0
- data/lib/potassium/assets/.stylelintrc.json +46 -0
- data/lib/potassium/assets/Makefile.erb +21 -32
- data/lib/potassium/assets/README.yml +59 -15
- data/lib/potassium/assets/active_admin/admin-component.vue +35 -0
- data/lib/potassium/assets/active_admin/admin_application.js +14 -0
- data/lib/potassium/assets/active_admin/init_activeadmin_vue.rb +10 -0
- data/lib/potassium/assets/app/graphql/graphql_controller.rb +55 -0
- data/lib/potassium/assets/app/graphql/mutations/login_mutation.rb +23 -0
- data/lib/potassium/assets/app/graphql/queries/base_query.rb +4 -0
- data/lib/potassium/assets/app/graphql/types/base/base_argument.rb +4 -0
- data/lib/potassium/assets/app/graphql/types/base/base_enum.rb +4 -0
- data/lib/potassium/assets/app/graphql/types/base/base_field.rb +5 -0
- data/lib/potassium/assets/app/graphql/types/base/base_input_object.rb +5 -0
- data/lib/potassium/assets/app/graphql/types/base/base_interface.rb +7 -0
- data/lib/potassium/assets/app/graphql/types/base/base_object.rb +5 -0
- data/lib/potassium/assets/app/graphql/types/base/base_scalar.rb +4 -0
- data/lib/potassium/assets/app/graphql/types/base/base_union.rb +4 -0
- data/lib/potassium/assets/app/graphql/types/mutation_type.rb +10 -0
- data/lib/potassium/assets/app/graphql/types/query_type.rb +13 -0
- data/lib/potassium/assets/app/javascript/app.spec.js +14 -0
- data/lib/potassium/assets/app/uploaders/base_uploader.rb +11 -0
- data/lib/potassium/assets/app/uploaders/image_uploader.rb +5 -0
- data/lib/potassium/assets/app/views/shared/_gtm_body.html.erb +4 -0
- data/lib/potassium/assets/app/views/shared/_gtm_head.html.erb +7 -0
- data/lib/potassium/assets/bin/release +1 -1
- data/lib/potassium/assets/bin/setup.erb +1 -1
- data/lib/potassium/assets/config/database_mysql.yml.erb +2 -2
- data/lib/potassium/assets/config/database_postgresql.yml.erb +2 -2
- data/lib/potassium/assets/config/graphql_playground.rb +20 -0
- data/lib/potassium/assets/config/puma.rb +1 -1
- data/lib/potassium/assets/config/shrine.rb +36 -0
- data/lib/potassium/assets/lib/tasks/auto_annotate_models.rake +2 -1
- data/lib/potassium/assets/package.json +4 -1
- data/lib/potassium/assets/redis.yml +1 -2
- data/lib/potassium/assets/testing/rails_helper.rb +2 -0
- data/lib/potassium/cli/commands/create.rb +12 -19
- data/lib/potassium/cli_options.rb +77 -26
- data/lib/potassium/helpers/gem-helpers.rb +1 -1
- data/lib/potassium/helpers/template-helpers.rb +8 -0
- data/lib/potassium/newest_version_ensurer.rb +19 -36
- data/lib/potassium/node_version_ensurer.rb +30 -0
- data/lib/potassium/recipes/admin.rb +3 -3
- data/lib/potassium/recipes/annotate.rb +1 -1
- data/lib/potassium/recipes/api.rb +93 -21
- data/lib/potassium/recipes/background_processor.rb +66 -19
- data/lib/potassium/recipes/ci.rb +10 -38
- data/lib/potassium/recipes/data_migrate.rb +44 -0
- data/lib/potassium/recipes/database.rb +4 -0
- data/lib/potassium/recipes/database_container.rb +7 -5
- data/lib/potassium/recipes/draper.rb +1 -10
- data/lib/potassium/recipes/file_storage.rb +66 -0
- data/lib/potassium/recipes/front_end.rb +225 -9
- data/lib/potassium/recipes/github.rb +93 -15
- data/lib/potassium/recipes/google_tag_manager.rb +90 -0
- data/lib/potassium/recipes/heroku.rb +42 -29
- data/lib/potassium/recipes/mailer.rb +18 -2
- data/lib/potassium/recipes/monitoring.rb +5 -0
- data/lib/potassium/recipes/node.rb +21 -0
- data/lib/potassium/recipes/rack_cors.rb +18 -15
- data/lib/potassium/recipes/schedule.rb +17 -2
- data/lib/potassium/recipes/style.rb +21 -3
- data/lib/potassium/recipes/vue_admin.rb +124 -0
- data/lib/potassium/templates/application.rb +10 -7
- data/lib/potassium/version.rb +7 -4
- data/potassium.gemspec +11 -6
- data/spec/features/api_spec.rb +25 -0
- data/spec/features/background_processor_spec.rb +19 -6
- data/spec/features/ci_spec.rb +7 -4
- data/spec/features/data_migrate_spec.rb +14 -0
- data/spec/features/database_container_spec.rb +1 -5
- data/spec/features/draper_spec.rb +1 -6
- data/spec/features/file_storage_spec.rb +75 -0
- data/spec/features/front_end_spec.rb +102 -0
- data/spec/features/github_spec.rb +53 -8
- data/spec/features/google_tag_manager_spec.rb +59 -0
- data/spec/features/graphql_spec.rb +71 -0
- data/spec/features/heroku_spec.rb +1 -1
- data/spec/features/mailer_spec.rb +16 -0
- data/spec/features/new_project_spec.rb +6 -14
- data/spec/features/node_spec.rb +28 -0
- data/spec/features/power_types_spec.rb +5 -16
- data/spec/features/schedule_spec.rb +11 -4
- data/spec/features/vue_admin_spec.rb +47 -0
- data/spec/spec_helper.rb +5 -0
- data/spec/support/fake_octokit.rb +31 -0
- data/spec/support/potassium_test_helpers.rb +26 -9
- data/tmp/.keep +0 -0
- metadata +152 -46
- data/lib/potassium/assets/.circleci/config.yml +0 -20
- data/lib/potassium/assets/Dockerfile.ci +0 -6
- data/lib/potassium/assets/active_admin/active_admin.js.coffee +0 -4
- data/lib/potassium/assets/active_admin/init_activeadmin_angular.rb +0 -8
- data/lib/potassium/assets/api/api_error_concern.rb +0 -32
- data/lib/potassium/assets/api/base_controller.rb +0 -9
- data/lib/potassium/assets/api/draper_responder.rb +0 -62
- data/lib/potassium/assets/api/responder.rb +0 -41
- data/lib/potassium/assets/aws.rb +0 -1
- data/lib/potassium/assets/bin/cibuild.erb +0 -100
- data/lib/potassium/assets/docker-compose.ci.yml +0 -11
- data/lib/potassium/assets/sidekiq_scheduler.yml +0 -9
- data/lib/potassium/assets/testing/paperclip.rb +0 -59
- data/lib/potassium/recipes/active_storage.rb +0 -40
- data/lib/potassium/recipes/angular_admin.rb +0 -56
- data/lib/potassium/recipes/aws_sdk.rb +0 -7
- data/lib/potassium/recipes/paperclip.rb +0 -47
- data/spec/features/active_storage_spec.rb +0 -30
- data/spec/features/front_end.rb +0 -30
@@ -1,47 +0,0 @@
|
|
1
|
-
class Recipes::Paperclip < Rails::AppBuilder
|
2
|
-
def ask
|
3
|
-
paperclip = answer(:paperclip) { Ask.confirm("Do you want to use Paperclip for uploads?") }
|
4
|
-
set(:paperclip, paperclip)
|
5
|
-
end
|
6
|
-
|
7
|
-
def create
|
8
|
-
return unless selected?(:paperclip)
|
9
|
-
add_paperclip
|
10
|
-
config_rspec
|
11
|
-
end
|
12
|
-
|
13
|
-
def install
|
14
|
-
add_paperclip
|
15
|
-
config_rspec if gem_exists?(/rspec-rails/)
|
16
|
-
end
|
17
|
-
|
18
|
-
def installed?
|
19
|
-
gem_exists?(/paperclip/)
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def add_paperclip
|
25
|
-
gather_gem 'paperclip', '~> 5.0'
|
26
|
-
paperclip_config =
|
27
|
-
<<~RUBY
|
28
|
-
config.paperclip_defaults = {
|
29
|
-
storage: :s3,
|
30
|
-
s3_protocol: 'https',
|
31
|
-
s3_region: ENV.fetch('AWS_REGION', 'us-east-1'),
|
32
|
-
s3_credentials: {
|
33
|
-
bucket: ENV['S3_BUCKET']
|
34
|
-
}
|
35
|
-
}
|
36
|
-
RUBY
|
37
|
-
application paperclip_config, env: 'production'
|
38
|
-
append_to_file '.env.development', "S3_BUCKET=\n"
|
39
|
-
append_to_file '.gitignore', "/public/system/*\n"
|
40
|
-
add_readme_section :internal_dependencies, :paperclip
|
41
|
-
end
|
42
|
-
|
43
|
-
def config_rspec
|
44
|
-
copy_file '../assets/testing/platanus.png', 'spec/assets/platanus.png'
|
45
|
-
copy_file '../assets/testing/paperclip.rb', 'spec/support/paperclip.rb'
|
46
|
-
end
|
47
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe "Active Storage" do
|
4
|
-
before :all do
|
5
|
-
drop_dummy_database
|
6
|
-
remove_project_directory
|
7
|
-
create_dummy_project("active_storage" => true)
|
8
|
-
end
|
9
|
-
|
10
|
-
it "customizes config file" do
|
11
|
-
content = IO.read("#{project_path}/config/storage.yml")
|
12
|
-
expect(content).to include("bucket: <%= ENV['S3_BUCKET'] %>")
|
13
|
-
end
|
14
|
-
|
15
|
-
it "adds brief to README file" do
|
16
|
-
content = IO.read("#{project_path}/README.md")
|
17
|
-
expect(content).to include("Active Storage")
|
18
|
-
end
|
19
|
-
|
20
|
-
it "uses amazon on production env" do
|
21
|
-
content = IO.read("#{project_path}/config/environments/production.rb")
|
22
|
-
expect(content).to include("config.active_storage.service = :amazon")
|
23
|
-
end
|
24
|
-
|
25
|
-
it "adds amazon ENV vars" do
|
26
|
-
content = IO.read("#{project_path}/.env.development")
|
27
|
-
expect(content).to include("AWS_REGION=")
|
28
|
-
expect(content).to include("S3_BUCKET=")
|
29
|
-
end
|
30
|
-
end
|
data/spec/features/front_end.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe "Front end" do
|
4
|
-
before(:all) { drop_dummy_database }
|
5
|
-
before(:each) { remove_project_directory }
|
6
|
-
|
7
|
-
it "creates a project wihtout a front end framework" do
|
8
|
-
create_dummy_project("front_end" => "None")
|
9
|
-
gemfile = IO.read("#{project_path}/Gemfile")
|
10
|
-
expect(gemfile).not_to include('webpacker')
|
11
|
-
end
|
12
|
-
|
13
|
-
it "creates a project wihtout vue as front end framework" do
|
14
|
-
create_dummy_project("front_end" => "angular")
|
15
|
-
gemfile = IO.read("#{project_path}/Gemfile")
|
16
|
-
node_modules_file = IO.read("#{project_path}/package.json")
|
17
|
-
|
18
|
-
expect(gemfile).to include('webpacker')
|
19
|
-
expect(node_modules_file).to include("\"@angular/core\"")
|
20
|
-
end
|
21
|
-
|
22
|
-
it "creates a project wihtout vue as front end framework" do
|
23
|
-
create_dummy_project("front_end" => "vue")
|
24
|
-
gemfile = IO.read("#{project_path}/Gemfile")
|
25
|
-
node_modules_file = IO.read("#{project_path}/package.json")
|
26
|
-
|
27
|
-
expect(gemfile).to include('webpacker')
|
28
|
-
expect(node_modules_file).to include("\"vue\"")
|
29
|
-
end
|
30
|
-
end
|