panacea-rails 0.1.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.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rubocop.yml +17 -0
- data/.travis.yml +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +69 -0
- data/LICENSE.txt +21 -0
- data/README.md +39 -0
- data/Rakefile +21 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/config/questions.yml +318 -0
- data/exe/panacea +9 -0
- data/lib/panacea/rails.rb +77 -0
- data/lib/panacea/rails/arguments_parser.rb +27 -0
- data/lib/panacea/rails/customizer.rb +164 -0
- data/lib/panacea/rails/generator.rb +316 -0
- data/lib/panacea/rails/runner.rb +39 -0
- data/lib/panacea/rails/stats.rb +65 -0
- data/lib/panacea/rails/template.rb +56 -0
- data/lib/panacea/rails/version.rb +7 -0
- data/panacea-rails.gemspec +33 -0
- data/templates/Gemfile.tt +90 -0
- data/templates/PANACEA.tt +188 -0
- data/templates/Procfile.tt +11 -0
- data/templates/README.tt +68 -0
- data/templates/Rakefile.tt +10 -0
- data/templates/application_system_test.tt +28 -0
- data/templates/default_locale.tt +4 -0
- data/templates/dotenv.tt +2 -0
- data/templates/githook.tt +3 -0
- data/templates/minitest_test_helper.tt +45 -0
- data/templates/oj_initializer.tt +3 -0
- data/templates/rspec_test_helper.tt +68 -0
- data/templates/rubocop.tt +6 -0
- data/templates/simplecov.tt +7 -0
- metadata +183 -0
@@ -0,0 +1,11 @@
|
|
1
|
+
web: bin/rails s -p $PORT
|
2
|
+
<% if @panacea.dig("background_job") == "sidekiq" -%>
|
3
|
+
redis: redis-server
|
4
|
+
sidekiq: bundle exec sidekiq -q default -q mailers
|
5
|
+
<% elsif @panacea.dig("background_job") == "resque" -%>
|
6
|
+
redis: redis-server
|
7
|
+
resque: bundle exec rake resque:work QUEUE='*'
|
8
|
+
<% end -%>
|
9
|
+
<% if @panacea.dig("webpack") -%>
|
10
|
+
webpack: bin/webpack-dev-server
|
11
|
+
<% end -%>
|
data/templates/README.tt
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
# README
|
2
|
+
|
3
|
+
This README would normally document whatever steps are necessary to get the
|
4
|
+
application up and running.
|
5
|
+
|
6
|
+
Edit/Remove the following sections as you wish.
|
7
|
+
|
8
|
+
## System Requirements
|
9
|
+
|
10
|
+
- Ruby 2.5.1
|
11
|
+
- Rails 5.2.1
|
12
|
+
- Yarn
|
13
|
+
|
14
|
+
## Dependencies
|
15
|
+
|
16
|
+
### Ruby
|
17
|
+
|
18
|
+
bundle install
|
19
|
+
|
20
|
+
### Javascript
|
21
|
+
|
22
|
+
yarn install
|
23
|
+
|
24
|
+
### System
|
25
|
+
|
26
|
+
## Database Management
|
27
|
+
|
28
|
+
To setup database you either run:
|
29
|
+
|
30
|
+
bundle exec rails db:setup
|
31
|
+
|
32
|
+
or:
|
33
|
+
|
34
|
+
bundle exec rails db:create
|
35
|
+
bundle exec rails db:migrate
|
36
|
+
bundle exec rails db:seed
|
37
|
+
|
38
|
+
### Running migrations
|
39
|
+
|
40
|
+
To run migrations use the following command:
|
41
|
+
|
42
|
+
bundle exec rails db:migrate
|
43
|
+
|
44
|
+
## Services (job queues, cache servers, search engines, etc.)
|
45
|
+
|
46
|
+
## Tests
|
47
|
+
|
48
|
+
You should run the tests with the following command:
|
49
|
+
|
50
|
+
bundle exec rake
|
51
|
+
|
52
|
+
## Linting
|
53
|
+
|
54
|
+
You can lint the code running Rubocop:
|
55
|
+
|
56
|
+
bundle exec rubocop
|
57
|
+
|
58
|
+
## Security
|
59
|
+
|
60
|
+
Run:
|
61
|
+
|
62
|
+
bundle exec brakeman
|
63
|
+
|
64
|
+
## Deployment Instructions
|
65
|
+
|
66
|
+
## How to Contribute
|
67
|
+
|
68
|
+
## License
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
2
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
3
|
+
|
4
|
+
require_relative "config/application"
|
5
|
+
<% if @panacea.dig("background_job") == "resque" -%>
|
6
|
+
require "resque/tasks"
|
7
|
+
task "resque:setup" => :environment
|
8
|
+
<% end -%>
|
9
|
+
|
10
|
+
Rails.application.load_tasks
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
4
|
+
require "selenium/webdriver"
|
5
|
+
|
6
|
+
Capybara.register_driver :chrome do |app|
|
7
|
+
Capybara::Selenium::Driver.new(app, browser: :chrome)
|
8
|
+
end
|
9
|
+
|
10
|
+
Capybara.register_driver :headless_chrome do |app|
|
11
|
+
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
|
12
|
+
chromeOptions: { args: %w(headless disable-gpu no-sandbox) }
|
13
|
+
)
|
14
|
+
|
15
|
+
Capybara::Selenium::Driver.new app,
|
16
|
+
browser: :chrome,
|
17
|
+
desired_capabilities: capabilities
|
18
|
+
end
|
19
|
+
|
20
|
+
Capybara.javascript_driver = :headless_chrome
|
21
|
+
|
22
|
+
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
|
23
|
+
<% if @panacea.dig("devise") -%>
|
24
|
+
include Warden::Test::Helpers
|
25
|
+
|
26
|
+
<% end -%>
|
27
|
+
driven_by :headless_chrome
|
28
|
+
end
|
data/templates/dotenv.tt
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
ENV["RAILS_ENV"] = "test"
|
4
|
+
|
5
|
+
require_relative "support/simplecov"
|
6
|
+
require_relative "../config/environment"
|
7
|
+
require "rails/test_help"
|
8
|
+
require "minitest/rails"
|
9
|
+
<% if @panacea.dig("faker") -%>
|
10
|
+
require "faker"
|
11
|
+
<% end -%>
|
12
|
+
<% if @panacea.dig("http_stubs") == "vcr" -%>
|
13
|
+
require "vcr"
|
14
|
+
<% end -%>
|
15
|
+
<% if @panacea.dig("http_stubs") == "webmock" -%>
|
16
|
+
require "webmock/minitest"
|
17
|
+
<% end -%>
|
18
|
+
|
19
|
+
# To add Capybara feature tests add `gem "minitest-rails-capybara"`
|
20
|
+
# to the test group in the Gemfile and uncomment the following:
|
21
|
+
# require "minitest/rails/capybara"
|
22
|
+
|
23
|
+
# Uncomment for awesome colorful output
|
24
|
+
# require "minitest/pride"
|
25
|
+
|
26
|
+
<% if @panacea.dig("http_stubs") == "vcr" -%>
|
27
|
+
VCR.configure do |config|
|
28
|
+
config.cassette_library_dir = "test/vcr_cassettes"
|
29
|
+
config.hook_into :webmock
|
30
|
+
end
|
31
|
+
<% end -%>
|
32
|
+
|
33
|
+
class ActiveSupport::TestCase
|
34
|
+
<% if @panacea.dig("factory_bot") -%>
|
35
|
+
include FactoryBot::Syntax::Methods
|
36
|
+
<% end -%>
|
37
|
+
|
38
|
+
fixtures :all
|
39
|
+
end
|
40
|
+
|
41
|
+
<% if @panacea.dig("devise") -%>
|
42
|
+
class ActionDispatch::IntegrationTest
|
43
|
+
include Devise::Test::IntegrationHelpers
|
44
|
+
end
|
45
|
+
<% end -%>
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "support/simplecov"
|
4
|
+
require "spec_helper"
|
5
|
+
ENV["RAILS_ENV"] ||= "test"
|
6
|
+
require_relative "../config/environment"
|
7
|
+
|
8
|
+
# Prevent database truncation if the environment is production
|
9
|
+
abort("The Rails environment is running in production mode!") if Rails.env.production?
|
10
|
+
|
11
|
+
require "rspec/rails"
|
12
|
+
require "capybara/rspec"
|
13
|
+
<% if @panacea.dig("faker") -%>
|
14
|
+
require "faker"
|
15
|
+
<% end -%>
|
16
|
+
<% if @panacea.dig("http_stubs") == "vcr" -%>
|
17
|
+
require "vcr"
|
18
|
+
<% end -%>
|
19
|
+
<% if @panacea.dig("http_stubs") == "webmock" -%>
|
20
|
+
require "webmock/rspec"
|
21
|
+
<% end -%>
|
22
|
+
|
23
|
+
# Add additional requires below this line. Rails is not loaded until this point!
|
24
|
+
|
25
|
+
# Checks for pending migrations and applies them before tests are run.
|
26
|
+
# If you are not using ActiveRecord, you can remove these lines.
|
27
|
+
begin
|
28
|
+
ActiveRecord::Migration.maintain_test_schema!
|
29
|
+
rescue ActiveRecord::PendingMigrationError => e
|
30
|
+
puts e.to_s.strip
|
31
|
+
exit 1
|
32
|
+
end
|
33
|
+
|
34
|
+
<% if @panacea.dig("http_stubs") == "vcr" -%>
|
35
|
+
VCR.configure do |config|
|
36
|
+
config.cassette_library_dir = "spec/vcr_cassettes"
|
37
|
+
config.hook_into :webmock
|
38
|
+
end
|
39
|
+
<% end -%>
|
40
|
+
|
41
|
+
RSpec.configure do |config|
|
42
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
43
|
+
config.use_transactional_fixtures = true
|
44
|
+
config.infer_spec_type_from_file_location!
|
45
|
+
config.filter_rails_from_backtrace!
|
46
|
+
<% if @panacea.dig("devise") -%>
|
47
|
+
config.include Devise::Test::IntegrationHelpers, type: :request
|
48
|
+
<% end -%>
|
49
|
+
<% if @panacea.dig("factory_bot") -%>
|
50
|
+
config.include FactoryBot::Syntax::Methods
|
51
|
+
<% end -%>
|
52
|
+
|
53
|
+
<% if @panacea.dig("headless_chrome") -%>
|
54
|
+
Capybara.register_driver :chrome do |app|
|
55
|
+
Capybara::Selenium::Driver.new(app, browser: :chrome)
|
56
|
+
end
|
57
|
+
|
58
|
+
Capybara.register_driver :headless_chrome do |app|
|
59
|
+
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
|
60
|
+
chromeOptions: { args: %w(headless disable-gpu no-sandbox) }
|
61
|
+
)
|
62
|
+
|
63
|
+
Capybara::Selenium::Driver.new app, browser: :chrome, desired_capabilities: capabilities
|
64
|
+
end
|
65
|
+
|
66
|
+
Capybara.javascript_driver = :headless_chrome
|
67
|
+
<% end %>
|
68
|
+
end
|
metadata
ADDED
@@ -0,0 +1,183 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: panacea-rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Guillermo Moreno
|
8
|
+
- Rafael Ramos
|
9
|
+
- Eduardo Figarola
|
10
|
+
autorequire:
|
11
|
+
bindir: exe
|
12
|
+
cert_chain: []
|
13
|
+
date: 2018-09-03 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: bundler
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '1'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: slop
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '4.6'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '4.6'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: tty-prompt
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0.17'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0.17'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: minitest
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '5.0'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - "~>"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '5.0'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: rake
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '10.0'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - "~>"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '10.0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: rubocop
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0.58'
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - "~>"
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0.58'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: sdoc
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "~>"
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '1.0'
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - "~>"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '1.0'
|
113
|
+
description:
|
114
|
+
email:
|
115
|
+
- guillermo@michelada.io
|
116
|
+
- rafael@michelada.io
|
117
|
+
- eduardo@michelada.io
|
118
|
+
executables:
|
119
|
+
- panacea
|
120
|
+
extensions: []
|
121
|
+
extra_rdoc_files: []
|
122
|
+
files:
|
123
|
+
- ".gitignore"
|
124
|
+
- ".rubocop.yml"
|
125
|
+
- ".travis.yml"
|
126
|
+
- CODE_OF_CONDUCT.md
|
127
|
+
- Gemfile
|
128
|
+
- Gemfile.lock
|
129
|
+
- LICENSE.txt
|
130
|
+
- README.md
|
131
|
+
- Rakefile
|
132
|
+
- bin/console
|
133
|
+
- bin/setup
|
134
|
+
- config/questions.yml
|
135
|
+
- exe/panacea
|
136
|
+
- lib/panacea/rails.rb
|
137
|
+
- lib/panacea/rails/arguments_parser.rb
|
138
|
+
- lib/panacea/rails/customizer.rb
|
139
|
+
- lib/panacea/rails/generator.rb
|
140
|
+
- lib/panacea/rails/runner.rb
|
141
|
+
- lib/panacea/rails/stats.rb
|
142
|
+
- lib/panacea/rails/template.rb
|
143
|
+
- lib/panacea/rails/version.rb
|
144
|
+
- panacea-rails.gemspec
|
145
|
+
- templates/Gemfile.tt
|
146
|
+
- templates/PANACEA.tt
|
147
|
+
- templates/Procfile.tt
|
148
|
+
- templates/README.tt
|
149
|
+
- templates/Rakefile.tt
|
150
|
+
- templates/application_system_test.tt
|
151
|
+
- templates/default_locale.tt
|
152
|
+
- templates/dotenv.tt
|
153
|
+
- templates/githook.tt
|
154
|
+
- templates/minitest_test_helper.tt
|
155
|
+
- templates/oj_initializer.tt
|
156
|
+
- templates/rspec_test_helper.tt
|
157
|
+
- templates/rubocop.tt
|
158
|
+
- templates/simplecov.tt
|
159
|
+
homepage: https://www.panacea.website
|
160
|
+
licenses:
|
161
|
+
- MIT
|
162
|
+
metadata: {}
|
163
|
+
post_install_message:
|
164
|
+
rdoc_options: []
|
165
|
+
require_paths:
|
166
|
+
- lib
|
167
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - ">="
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
|
+
requirements: []
|
178
|
+
rubyforge_project:
|
179
|
+
rubygems_version: 2.7.6
|
180
|
+
signing_key:
|
181
|
+
specification_version: 4
|
182
|
+
summary: Rails Apps Generator
|
183
|
+
test_files: []
|