potassium 1.3.5 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rspec +3 -0
- data/.rubocop.yml +1 -1
- data/.ruby_style.yml +6 -2
- data/CHANGELOG.md +19 -1
- data/README.md +79 -74
- data/circle.yml +9 -0
- data/docs/CONTRIBUTING.md +132 -0
- data/docs/{dsl.md → DSL.md} +146 -18
- data/lib/potassium/{templates/application/assets → assets}/.bowerrc +0 -0
- data/lib/potassium/assets/.buildpacks +3 -0
- data/lib/potassium/{templates/application/assets → assets}/.editorconfig +0 -0
- data/lib/potassium/assets/.env.example.erb +8 -0
- data/lib/potassium/assets/.hound.yml +2 -0
- data/lib/potassium/{templates/application/assets → assets}/.pryrc +0 -0
- data/lib/potassium/assets/.rubocop.yml +3 -0
- data/lib/potassium/assets/.ruby_style.yml +0 -0
- data/lib/potassium/assets/Dockerfile.ci +4 -0
- data/lib/potassium/assets/Procfile +1 -0
- data/lib/potassium/assets/README.md.erb +2 -0
- data/lib/potassium/assets/README.yml +83 -0
- data/lib/potassium/{templates/application/assets → assets}/active_admin/active_admin.js.coffee +0 -0
- data/lib/potassium/{templates/application/assets → assets}/active_admin/admin_user_policy.rb +0 -0
- data/lib/potassium/{templates/application/assets → assets}/active_admin/comment_policy.rb +0 -0
- data/lib/potassium/{templates/application/assets → assets}/active_admin/init_activeadmin_angular.rb +0 -0
- data/lib/potassium/{templates/application/assets → assets}/active_admin/pundit_page_policy.rb +0 -0
- data/lib/potassium/{templates/application/assets → assets}/api/api_error_concern.rb +0 -0
- data/lib/potassium/{templates/application/assets → assets}/api/base_controller.rb +0 -0
- data/lib/potassium/{templates/application/assets → assets}/api/responder.rb +0 -0
- data/lib/potassium/assets/bin/cibuild.erb +27 -0
- data/lib/potassium/assets/bin/setup.erb +22 -0
- data/lib/potassium/assets/bin/setup_heroku.erb +21 -0
- data/lib/potassium/{templates/application/assets → assets}/bower.json +0 -0
- data/lib/potassium/assets/circle.yml +16 -0
- data/lib/potassium/assets/config/database_mysql.yml.erb +25 -0
- data/lib/potassium/assets/config/database_postgresql.yml.erb +25 -0
- data/lib/potassium/assets/config/environments/staging.rb +5 -0
- data/lib/potassium/assets/config/puma.rb +29 -0
- data/lib/potassium/assets/config/secrets.yml.erb +14 -0
- data/lib/potassium/assets/docker-compose.ci.yml +6 -0
- data/lib/potassium/{templates/application/assets → assets}/es.yml +0 -0
- data/lib/potassium/{templates/application/assets → assets}/testing/.rspec +0 -0
- data/lib/potassium/{templates/application/assets → assets}/testing/rails_helper.rb +0 -0
- data/lib/potassium/cli/commands/create.rb +55 -4
- data/lib/potassium/cli/commands/install.rb +27 -13
- data/lib/potassium/{templates/application/generator.rb → generators/application.rb} +7 -2
- data/lib/potassium/{templates/application/recipe_generator.rb → generators/recipe.rb} +11 -2
- data/lib/potassium/helpers/answer-helpers.rb +21 -0
- data/lib/potassium/{templates/application/helpers → helpers}/callback-helpers.rb +0 -0
- data/lib/potassium/helpers/docker-helpers.rb +37 -0
- data/lib/potassium/{templates/application/helpers → helpers}/environment-helpers.rb +0 -0
- data/lib/potassium/{templates/application/helpers → helpers}/gem-helpers.rb +6 -2
- data/lib/potassium/helpers/info-helpers.rb +16 -0
- data/lib/potassium/helpers/readme-helpers.rb +85 -0
- data/lib/potassium/{templates/application/helpers → helpers}/template-dsl.rb +8 -0
- data/lib/potassium/helpers/template-helpers.rb +97 -0
- data/lib/potassium/{templates/application/helpers → helpers}/variable-helpers.rb +0 -0
- data/lib/potassium/recipe.rb +2 -0
- data/lib/potassium/{templates/application/recipes → recipes}/admin.rb +36 -6
- data/lib/potassium/recipes/angular_admin.rb +56 -0
- data/lib/potassium/recipes/api.rb +43 -0
- data/lib/potassium/recipes/aws_sdk.rb +5 -0
- data/lib/potassium/recipes/bower.rb +13 -0
- data/lib/potassium/recipes/ci.rb +42 -0
- data/lib/potassium/recipes/cleanup.rb +10 -0
- data/lib/potassium/recipes/database.rb +42 -0
- data/lib/potassium/recipes/delayed_job.rb +41 -0
- data/lib/potassium/recipes/devise.rb +64 -0
- data/lib/potassium/recipes/editorconfig.rb +5 -0
- data/lib/potassium/recipes/env.rb +10 -0
- data/lib/potassium/recipes/git.rb +13 -0
- data/lib/potassium/recipes/github.rb +27 -0
- data/lib/potassium/recipes/heroku.rb +138 -0
- data/lib/potassium/recipes/i18n.rb +26 -0
- data/lib/potassium/recipes/paperclip.rb +37 -0
- data/lib/potassium/recipes/production.rb +7 -0
- data/lib/potassium/recipes/pry.rb +10 -0
- data/lib/potassium/recipes/puma.rb +19 -0
- data/lib/potassium/recipes/pundit.rb +61 -0
- data/lib/potassium/recipes/rack_cors.rb +21 -0
- data/lib/potassium/recipes/readme.rb +7 -0
- data/lib/potassium/recipes/ruby.rb +23 -0
- data/lib/potassium/recipes/script.rb +16 -0
- data/lib/potassium/recipes/secrets.rb +5 -0
- data/lib/potassium/recipes/staging.rb +5 -0
- data/lib/potassium/recipes/style.rb +13 -0
- data/lib/potassium/recipes/testing.rb +37 -0
- data/lib/potassium/templates/application.rb +67 -0
- data/lib/potassium/templates/recipe.rb +12 -0
- data/lib/potassium/text_spinner.rb +0 -5
- data/lib/potassium/version.rb +2 -1
- data/potassium.gemspec +3 -0
- data/spec/fakes/bin/heroku +5 -0
- data/spec/fakes/bin/hub +5 -0
- data/spec/features/ci_spec.rb +14 -0
- data/spec/features/github_spec.rb +22 -0
- data/spec/features/heroku_spec.rb +61 -0
- data/spec/features/new_project_spec.rb +38 -0
- data/spec/spec_helper.rb +33 -0
- data/spec/support/fake_github.rb +25 -0
- data/spec/support/fake_heroku.rb +77 -0
- data/spec/support/potassium_test_helpers.rb +98 -0
- metadata +149 -62
- data/lib/potassium/templates/application/assets/.rbenv-vars.example +0 -8
- data/lib/potassium/templates/application/assets/config/database_mysql.yml +0 -40
- data/lib/potassium/templates/application/assets/config/database_postgresql.yml +0 -26
- data/lib/potassium/templates/application/helpers/recipe-helpers.rb +0 -5
- data/lib/potassium/templates/application/helpers/template-helpers.rb +0 -35
- data/lib/potassium/templates/application/recipe_template.rb +0 -23
- data/lib/potassium/templates/application/recipes/angular_admin.rb +0 -26
- data/lib/potassium/templates/application/recipes/api.rb +0 -22
- data/lib/potassium/templates/application/recipes/asks/admin.rb +0 -9
- data/lib/potassium/templates/application/recipes/asks/api.rb +0 -2
- data/lib/potassium/templates/application/recipes/asks/database.rb +0 -9
- data/lib/potassium/templates/application/recipes/asks/devise.rb +0 -10
- data/lib/potassium/templates/application/recipes/asks/i18n.rb +0 -8
- data/lib/potassium/templates/application/recipes/asks/paperclip.rb +0 -2
- data/lib/potassium/templates/application/recipes/asks/pundit.rb +0 -4
- data/lib/potassium/templates/application/recipes/aws_sdk.rb +0 -1
- data/lib/potassium/templates/application/recipes/bower.rb +0 -3
- data/lib/potassium/templates/application/recipes/checks/devise.rb +0 -1
- data/lib/potassium/templates/application/recipes/database.rb +0 -22
- data/lib/potassium/templates/application/recipes/dependencies/admin.rb +0 -3
- data/lib/potassium/templates/application/recipes/devise.rb +0 -28
- data/lib/potassium/templates/application/recipes/editorconfig.rb +0 -1
- data/lib/potassium/templates/application/recipes/git.rb +0 -9
- data/lib/potassium/templates/application/recipes/i18n.rb +0 -9
- data/lib/potassium/templates/application/recipes/paperclip.rb +0 -20
- data/lib/potassium/templates/application/recipes/production.rb +0 -3
- data/lib/potassium/templates/application/recipes/pry.rb +0 -6
- data/lib/potassium/templates/application/recipes/pundit.rb +0 -33
- data/lib/potassium/templates/application/recipes/rack-cors.rb +0 -15
- data/lib/potassium/templates/application/recipes/rbenv.rb +0 -23
- data/lib/potassium/templates/application/recipes/readme.rb +0 -2
- data/lib/potassium/templates/application/recipes/testing.rb +0 -32
- data/lib/potassium/templates/application/recipes/unicorn.rb +0 -5
- data/lib/potassium/templates/application/template.rb +0 -58
@@ -1,40 +0,0 @@
|
|
1
|
-
<%
|
2
|
-
socket = [
|
3
|
-
ENV["BOXEN_MYSQL_SOCKET"],
|
4
|
-
"/var/run/mysql5/mysqld.sock",
|
5
|
-
"/tmp/mysql.sock"
|
6
|
-
].detect { |f| f && File.exist?(f) }
|
7
|
-
|
8
|
-
port = ENV["BOXEN_MYSQL_PORT"] || "3306"
|
9
|
-
%>
|
10
|
-
|
11
|
-
production:
|
12
|
-
adapter: mysql2
|
13
|
-
encoding: utf8
|
14
|
-
database: <%= ENV['DB_NAME'] %>
|
15
|
-
pool: 5
|
16
|
-
username: <%= ENV['DB_USER'] %>
|
17
|
-
password: <%= ENV['DB_PASSWORD'] %>
|
18
|
-
host: <%= ENV['DB_HOST'] %>
|
19
|
-
|
20
|
-
development: &development
|
21
|
-
adapter: mysql2
|
22
|
-
encoding: utf8
|
23
|
-
database: <%= ENV['DB_NAME'] %>_development
|
24
|
-
username: <%= ENV['DB_USER'] %>
|
25
|
-
password: <%= ENV['DB_PASSWORD'] %>
|
26
|
-
<% if socket %>
|
27
|
-
host: localhost
|
28
|
-
socket: <%= socket %>
|
29
|
-
<% else %>
|
30
|
-
host: 127.0.0.1
|
31
|
-
port: <%= port %>
|
32
|
-
<% end %>
|
33
|
-
|
34
|
-
# Warning: The database defined as "test" will be erased and
|
35
|
-
# re-generated from your development database when you run "rake".
|
36
|
-
# Do not set this db to the same as development or production.
|
37
|
-
test:
|
38
|
-
<<: *development
|
39
|
-
database: <%= ENV['DB_NAME'] %>_test
|
40
|
-
pool: 5
|
@@ -1,26 +0,0 @@
|
|
1
|
-
production:
|
2
|
-
adapter: postgresql
|
3
|
-
encoding: utf8
|
4
|
-
database: <%= ENV['DB_NAME'] %>
|
5
|
-
pool: 5
|
6
|
-
username: <%= ENV['DB_USER'] %>
|
7
|
-
password: <%= ENV['DB_PASSWORD'] %>
|
8
|
-
host: <%= ENV['DB_HOST'] %>
|
9
|
-
port: <%= ENV['DB_PORT'] %>
|
10
|
-
|
11
|
-
development: &development
|
12
|
-
adapter: postgresql
|
13
|
-
encoding: utf8
|
14
|
-
database: <%= ENV['DB_NAME'] %>_development
|
15
|
-
username: <%= ENV['DB_USER'] %>
|
16
|
-
password: <%= ENV['DB_PASSWORD'] %>
|
17
|
-
host: <%= ENV["BOXEN_POSTGRESQL_HOST"] || "127.0.0.1" %>
|
18
|
-
port: <%= ENV["BOXEN_POSTGRESQL_PORT"] || 5432 %>
|
19
|
-
|
20
|
-
# Warning: The database defined as "test" will be erased and
|
21
|
-
# re-generated from your development database when you run "rake".
|
22
|
-
# Do not set this db to the same as development or production.
|
23
|
-
test:
|
24
|
-
<<: *development
|
25
|
-
database: <%= ENV['DB_NAME'] %>_test
|
26
|
-
pool: 5
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module TemplateHelpers
|
2
|
-
def load_recipe(recipe)
|
3
|
-
return if exists?(recipe)
|
4
|
-
eval_file_with_rescue "recipes/checks/#{recipe}.rb"
|
5
|
-
eval_file_with_rescue "recipes/dependencies/#{recipe}.rb"
|
6
|
-
eval_file_with_rescue "recipes/asks/#{recipe}.rb"
|
7
|
-
eval_file "recipes/#{recipe}.rb"
|
8
|
-
end
|
9
|
-
|
10
|
-
def eval_file_with_rescue(source)
|
11
|
-
eval_file(source)
|
12
|
-
rescue StandardError
|
13
|
-
end
|
14
|
-
|
15
|
-
def eval_file(source)
|
16
|
-
location = File.expand_path(find_in_source_paths(source))
|
17
|
-
unique_name = SecureRandom.hex
|
18
|
-
|
19
|
-
define_singleton_method unique_name do
|
20
|
-
instance_eval File.read(location)
|
21
|
-
end
|
22
|
-
|
23
|
-
public_send unique_name
|
24
|
-
end
|
25
|
-
|
26
|
-
def source_path(path)
|
27
|
-
define_singleton_method :source_paths do
|
28
|
-
[File.expand_path(File.dirname(path))]
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def erase_comments(file)
|
33
|
-
gsub_file file, /^\s*#[^\n]*\n/, ''
|
34
|
-
end
|
35
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
recipe = ARGV.first
|
2
|
-
|
3
|
-
# Consider all the recipe's questions as true
|
4
|
-
def selected?(_key, _val = nil)
|
5
|
-
true
|
6
|
-
end
|
7
|
-
|
8
|
-
run_action(:recipe_loading) do
|
9
|
-
load_recipe(recipe)
|
10
|
-
end
|
11
|
-
|
12
|
-
run_action(:gem_install) do
|
13
|
-
build_gemfile
|
14
|
-
run "bundle install"
|
15
|
-
end
|
16
|
-
|
17
|
-
# Ensure all the recipe's callbacks are executed
|
18
|
-
get(:callbacks).each do |_name, callbacks|
|
19
|
-
puts "Processing #{name} callbacks"
|
20
|
-
callbacks.each do |_event, event_callbacks|
|
21
|
-
event_callbacks.each { |callback| instance_exec(&callback) }
|
22
|
-
end
|
23
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
if selected?(:angular_admin)
|
2
|
-
|
3
|
-
after(:admin_install) do
|
4
|
-
copy_file 'assets/active_admin/init_activeadmin_angular.rb',
|
5
|
-
'config/initializers/init_activeadmin_angular.rb'
|
6
|
-
|
7
|
-
create_file 'app/assets/javascripts/admin_app.js', "angular.module('ActiveAdmin', []);"
|
8
|
-
|
9
|
-
copy_file 'assets/active_admin/active_admin.js.coffee',
|
10
|
-
'app/assets/javascripts/active_admin.js.coffee',
|
11
|
-
force: true
|
12
|
-
|
13
|
-
empty_directory 'app/assets/javascripts/admin'
|
14
|
-
empty_directory 'app/assets/javascripts/admin/controllers'
|
15
|
-
empty_directory 'app/assets/javascripts/admin/services'
|
16
|
-
empty_directory 'app/assets/javascripts/admin/directives'
|
17
|
-
|
18
|
-
create_file 'app/assets/javascripts/admin/controllers/.keep'
|
19
|
-
create_file 'app/assets/javascripts/admin/services/.keep'
|
20
|
-
create_file 'app/assets/javascripts/admin/directives/.keep'
|
21
|
-
|
22
|
-
inside('.') do
|
23
|
-
run('bower install angular --save')
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
if get(:api_support)
|
2
|
-
gather_gem 'versionist'
|
3
|
-
gather_gem 'responders'
|
4
|
-
gather_gem 'active_model_serializers', '~> 0.9.3'
|
5
|
-
gather_gem 'simple_token_authentication', '~> 1.0'
|
6
|
-
|
7
|
-
after(:gem_install) do
|
8
|
-
line = "Rails.application.routes.draw do\n"
|
9
|
-
insert_into_file "config/routes.rb", after: line do
|
10
|
-
<<-HERE.gsub(/^ {7}/, '')
|
11
|
-
scope path: '/api' do
|
12
|
-
api_version(:module => "Api::V1", :path => {:value => "v1"}) do
|
13
|
-
end
|
14
|
-
end
|
15
|
-
HERE
|
16
|
-
end
|
17
|
-
|
18
|
-
copy_file 'assets/api/base_controller.rb', 'app/controllers/api/v1/base_controller.rb'
|
19
|
-
copy_file 'assets/api/api_error_concern.rb', 'app/controllers/concerns/api_error_concern.rb'
|
20
|
-
copy_file 'assets/api/responder.rb', 'app/responders/api_responder.rb'
|
21
|
-
end
|
22
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
if selected?(:authentication, :devise)
|
2
|
-
admin_mode = Ask.confirm "Do you want to use ActiveAdmin?"
|
3
|
-
if admin_mode
|
4
|
-
angular_admin = Ask.confirm "Do you want Angular support for ActiveAdmin?"
|
5
|
-
set(:angular_admin, angular_admin)
|
6
|
-
end
|
7
|
-
|
8
|
-
set(:admin_mode, admin_mode)
|
9
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
use_devise = Ask.confirm "Do you want to use Devise for authentication? (required for ActiveAdmin)"
|
2
|
-
|
3
|
-
if use_devise
|
4
|
-
set(:authentication, :devise)
|
5
|
-
|
6
|
-
create_user_model = Ask.confirm "Do you want to create a user model for Devise?"
|
7
|
-
if create_user_model
|
8
|
-
set(:authentication_model, :user)
|
9
|
-
end
|
10
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
gather_gem('aws-sdk', '< 2')
|
@@ -1 +0,0 @@
|
|
1
|
-
set(:devise_exists, gem_exists?(/"devise"/))
|
@@ -1,22 +0,0 @@
|
|
1
|
-
def activate_for_active_record(db)
|
2
|
-
remove_file 'config/database.yml'
|
3
|
-
copy_file "assets/config/database_#{db[:name]}.yml", 'config/database.yml'
|
4
|
-
|
5
|
-
discard_gem 'sqlite3'
|
6
|
-
if db[:version]
|
7
|
-
gather_gem db[:gem_name], db[:version]
|
8
|
-
else
|
9
|
-
gather_gem db[:gem_name]
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
databases = {
|
14
|
-
mysql: { name: 'mysql', gem_name: 'mysql2', version: '~> 0.3.18', relational: true },
|
15
|
-
postgresql: { name: 'postgresql', gem_name: 'pg', relational: true }
|
16
|
-
}
|
17
|
-
|
18
|
-
if db = databases[get(:database).to_sym]
|
19
|
-
if db[:relational]
|
20
|
-
activate_for_active_record(db)
|
21
|
-
end
|
22
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
authentication_framework = {
|
2
|
-
devise: -> do
|
3
|
-
gather_gem 'devise'
|
4
|
-
gather_gem 'devise-i18n'
|
5
|
-
|
6
|
-
after(:gem_install) do
|
7
|
-
generate "devise:install"
|
8
|
-
|
9
|
-
if auth_model = get(:authentication_model)
|
10
|
-
generate "devise #{auth_model}"
|
11
|
-
end
|
12
|
-
|
13
|
-
gsub_file "config/initializers/devise.rb", /(\# config.secret_key.+)/i do |_match|
|
14
|
-
"config.secret_key = ENV['DEVISE_SECRET_KEY']"
|
15
|
-
end
|
16
|
-
|
17
|
-
gsub_file "config/initializers/devise.rb", /(config.mailer_sender.+)/i do |_match|
|
18
|
-
"config.mailer_sender = ENV['DEFAULT_EMAIL_ADDRESS']"
|
19
|
-
end
|
20
|
-
|
21
|
-
append_to_file '.rbenv-vars.example', 'DEVISE_SECRET_KEY='
|
22
|
-
end
|
23
|
-
end
|
24
|
-
}
|
25
|
-
|
26
|
-
if get(:authentication)
|
27
|
-
instance_exec(&(authentication_framework[get(:authentication)] || -> {}))
|
28
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
copy_file 'assets/.editorconfig', '.editorconfig'
|
@@ -1,20 +0,0 @@
|
|
1
|
-
if selected?(:paperclip)
|
2
|
-
gather_gem('paperclip', '~> 4.3')
|
3
|
-
|
4
|
-
gsub_file "config/environments/production.rb", /^end$/o do |_match|
|
5
|
-
%{
|
6
|
-
|
7
|
-
# Paperclip support for S3
|
8
|
-
config.paperclip_defaults = {
|
9
|
-
:storage => :s3,
|
10
|
-
:s3_credentials => {
|
11
|
-
:bucket => ENV['AWS_BUCKET']
|
12
|
-
}
|
13
|
-
}
|
14
|
-
end}
|
15
|
-
end
|
16
|
-
|
17
|
-
append_to_file '.rbenv-vars.example', 'AWS_BUCKET='
|
18
|
-
append_to_file '.rbenv-vars', 'AWS_BUCKET='
|
19
|
-
|
20
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
authorization_framework = {
|
2
|
-
pundit: -> do
|
3
|
-
gather_gem 'pundit'
|
4
|
-
|
5
|
-
after(:gem_install) do
|
6
|
-
application_controller = "app/controllers/application_controller.rb"
|
7
|
-
gsub_file application_controller, "protect_from_forgery" do
|
8
|
-
"include Pundit\n protect_from_forgery"
|
9
|
-
end
|
10
|
-
generate "pundit:install"
|
11
|
-
end
|
12
|
-
|
13
|
-
if get(:admin_mode)
|
14
|
-
after(:admin_install) do
|
15
|
-
initializer = "config/initializers/active_admin.rb"
|
16
|
-
gsub_file initializer, /# config\.authorization_adapter =[^\n]+\n/ do
|
17
|
-
"config.authorization_adapter = ActiveAdmin::PunditAdapter\n"
|
18
|
-
end
|
19
|
-
|
20
|
-
template "assets/active_admin/pundit_page_policy.rb",
|
21
|
-
"app/policies/active_admin/page_policy.rb"
|
22
|
-
template "assets/active_admin/comment_policy.rb",
|
23
|
-
"app/policies/active_admin/comment_policy.rb"
|
24
|
-
template "assets/active_admin/admin_user_policy.rb",
|
25
|
-
"app/policies/admin_user_policy.rb"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
}
|
30
|
-
|
31
|
-
if get(:authorization)
|
32
|
-
instance_exec(&(authorization_framework[get(:authorization)] || -> {}))
|
33
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
gather_gem('rack-cors', '~> 0.4.0')
|
2
|
-
after(:gem_install) do
|
3
|
-
application %{
|
4
|
-
# Enables CORS for all requests
|
5
|
-
config.middleware.insert_before 0, "Rack::Cors" do
|
6
|
-
allow do
|
7
|
-
origins '*'
|
8
|
-
resource '*',
|
9
|
-
:headers => :any,
|
10
|
-
:expose => ['X-Page', 'X-PageTotal'],
|
11
|
-
:methods => [:get, :post, :delete, :put, :options]
|
12
|
-
end
|
13
|
-
end
|
14
|
-
}
|
15
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'net/http'
|
2
|
-
require 'semantic'
|
3
|
-
require 'pry'
|
4
|
-
|
5
|
-
def latest
|
6
|
-
printf 'Getting platanus latest ruby version...'
|
7
|
-
Net::HTTP.get(URI.parse('http://ruby.platan.us/latest'))
|
8
|
-
rescue
|
9
|
-
puts " not found, using #{RUBY_VERSION}"
|
10
|
-
RUBY_VERSION
|
11
|
-
end
|
12
|
-
|
13
|
-
def version_alias
|
14
|
-
version = latest
|
15
|
-
|
16
|
-
puts "using #{version}"
|
17
|
-
Semantic::Version.new(version).instance_eval { "#{major}.#{minor}" }
|
18
|
-
end
|
19
|
-
|
20
|
-
create_file '.rbenv-vars'
|
21
|
-
template 'assets/.rbenv-vars.example', '.rbenv-vars.example'
|
22
|
-
run "cp .rbenv-vars.example .rbenv-vars"
|
23
|
-
create_file '.ruby-version', version_alias
|