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
@@ -0,0 +1,26 @@
|
|
1
|
+
class Recipes::I18n < Rails::AppBuilder
|
2
|
+
def ask
|
3
|
+
languages = {
|
4
|
+
es: "Spanish",
|
5
|
+
en: "English"
|
6
|
+
}
|
7
|
+
|
8
|
+
lang = answer(:lang) do
|
9
|
+
languages.keys[Ask.list("What is the main language of your app?", languages.values)]
|
10
|
+
end
|
11
|
+
|
12
|
+
set(:lang, lang)
|
13
|
+
end
|
14
|
+
|
15
|
+
def create
|
16
|
+
gather_gem('rails-i18n')
|
17
|
+
|
18
|
+
if equals?(:lang, :es)
|
19
|
+
template('../assets/es.yml', 'config/locales/es.yml')
|
20
|
+
end
|
21
|
+
|
22
|
+
gsub_file 'config/application.rb', /# config\.i18n\.default_locale =[^\n]+\n/ do
|
23
|
+
"config.i18n.default_locale = :#{get(:lang)}\n"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,37 @@
|
|
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
|
+
add_paperclip if selected?(:paperclip)
|
9
|
+
end
|
10
|
+
|
11
|
+
def install
|
12
|
+
add_paperclip
|
13
|
+
end
|
14
|
+
|
15
|
+
def installed?
|
16
|
+
gem_exists?(/paperclip/)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def add_paperclip
|
22
|
+
gather_gem 'paperclip', '~> 4.3'
|
23
|
+
paperclip_config =
|
24
|
+
<<-RUBY.gsub(/^ {7}/, '')
|
25
|
+
config.paperclip_defaults = {
|
26
|
+
storage: :s3,
|
27
|
+
s3_credentials: {
|
28
|
+
bucket: ENV['AWS_BUCKET']
|
29
|
+
}
|
30
|
+
}
|
31
|
+
RUBY
|
32
|
+
application paperclip_config.strip, env: 'production'
|
33
|
+
append_to_file '.env.example', 'AWS_BUCKET='
|
34
|
+
append_to_file '.env', 'AWS_BUCKET='
|
35
|
+
add_readme_section :internal_dependencies, :paperclip
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Recipes::Puma < Rails::AppBuilder
|
2
|
+
def create
|
3
|
+
gather_gem 'puma'
|
4
|
+
|
5
|
+
gather_gems(:production, :staging) do
|
6
|
+
gather_gem 'rack-timeout'
|
7
|
+
end
|
8
|
+
|
9
|
+
copy_file '../assets/config/puma.rb', 'config/puma.rb'
|
10
|
+
|
11
|
+
# Configure rack-timout
|
12
|
+
rack_timeout_config =
|
13
|
+
<<-RUBY.gsub(/^ {9}/, '')
|
14
|
+
Rack::Timeout.timeout = (ENV["RACK_TIMEOUT"] || 10).to_i
|
15
|
+
RUBY
|
16
|
+
|
17
|
+
append_file "config/environments/production.rb", rack_timeout_config
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
class Recipes::Pundit < Rails::AppBuilder
|
2
|
+
def ask
|
3
|
+
if get(:authentication).present?
|
4
|
+
use_pundit = answer(:pundit) { Ask.confirm("Do you want to use Pundit for authorization?") }
|
5
|
+
set(:authorization, use_pundit)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
def create
|
10
|
+
if selected?(:authorization)
|
11
|
+
run_pundit_installer
|
12
|
+
recipe = self
|
13
|
+
|
14
|
+
if selected?(:admin_mode)
|
15
|
+
after(:admin_install) do
|
16
|
+
recipe.install_admin_pundit
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def install
|
23
|
+
run_pundit_installer
|
24
|
+
|
25
|
+
active_admin = load_recipe(:admin)
|
26
|
+
install_admin_pundit if active_admin.installed?
|
27
|
+
end
|
28
|
+
|
29
|
+
def installed?
|
30
|
+
gem_exists?(/pundit/)
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def run_pundit_installer
|
36
|
+
gather_gem 'pundit'
|
37
|
+
|
38
|
+
after(:gem_install) do
|
39
|
+
application_controller = "app/controllers/application_controller.rb"
|
40
|
+
gsub_file application_controller, "protect_from_forgery" do
|
41
|
+
"include Pundit\n protect_from_forgery"
|
42
|
+
end
|
43
|
+
generate "pundit:install"
|
44
|
+
add_readme_section :internal_dependencies, :pundit
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def install_admin_pundit
|
49
|
+
initializer = "config/initializers/active_admin.rb"
|
50
|
+
gsub_file initializer, /# config\.authorization_adapter =[^\n]+\n/ do
|
51
|
+
"config.authorization_adapter = ActiveAdmin::PunditAdapter\n"
|
52
|
+
end
|
53
|
+
|
54
|
+
template "../assets/active_admin/pundit_page_policy.rb",
|
55
|
+
"app/policies/active_admin/page_policy.rb"
|
56
|
+
template "../assets/active_admin/comment_policy.rb",
|
57
|
+
"app/policies/active_admin/comment_policy.rb"
|
58
|
+
template "../assets/active_admin/admin_user_policy.rb",
|
59
|
+
"app/policies/admin_user_policy.rb"
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Recipes::RackCors < Rails::AppBuilder
|
2
|
+
def create
|
3
|
+
gather_gem('rack-cors', '~> 0.4.0')
|
4
|
+
after(:gem_install) do
|
5
|
+
rack_cors_config =
|
6
|
+
<<-RUBY.gsub(/^ {7}/, '')
|
7
|
+
config.middleware.insert_before 0, "Rack::Cors" do
|
8
|
+
allow do
|
9
|
+
origins '*'
|
10
|
+
resource '*',
|
11
|
+
headers: :any,
|
12
|
+
expose: ['X-Page', 'X-PageTotal'],
|
13
|
+
methods: [:get, :post, :delete, :put, :options]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
RUBY
|
17
|
+
|
18
|
+
application rack_cors_config.strip
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'semantic'
|
3
|
+
|
4
|
+
class Recipes::Ruby < Rails::AppBuilder
|
5
|
+
def create
|
6
|
+
info 'Getting platanus latest ruby version...'
|
7
|
+
info "Using ruby version #{version_alias}"
|
8
|
+
create_file '.ruby-version', version_alias
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def latest
|
14
|
+
Net::HTTP.get(URI.parse('http://ruby.platan.us/latest'))
|
15
|
+
rescue
|
16
|
+
RUBY_VERSION
|
17
|
+
end
|
18
|
+
|
19
|
+
def version_alias
|
20
|
+
version = latest
|
21
|
+
Semantic::Version.new(version).instance_eval { "#{major}.#{minor}" }
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Recipes::Script < Rails::AppBuilder
|
2
|
+
def create
|
3
|
+
template "../assets/bin/setup.erb", "bin/setup", force: true
|
4
|
+
run "chmod a+x bin/setup"
|
5
|
+
end
|
6
|
+
|
7
|
+
def install
|
8
|
+
heroku = load_recipe(:heroku)
|
9
|
+
set(:heroku, heroku.installed?)
|
10
|
+
create
|
11
|
+
end
|
12
|
+
|
13
|
+
def installed?
|
14
|
+
file_exist?("bin/setup")
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Recipes::Style < Rails::AppBuilder
|
2
|
+
def create
|
3
|
+
copy_file '../assets/.rubocop.yml', '.rubocop.yml'
|
4
|
+
copy_file '../assets/.ruby_style.yml', '.ruby_style.yml'
|
5
|
+
copy_file '../assets/.hound.yml', '.hound.yml'
|
6
|
+
append_to_file '.gitignore', '.rubocop-http*\n'
|
7
|
+
add_readme_header :style_guide
|
8
|
+
end
|
9
|
+
|
10
|
+
def install
|
11
|
+
create
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class Recipes::Testing < Rails::AppBuilder
|
2
|
+
def create
|
3
|
+
gather_gems(:development, :test) do
|
4
|
+
gather_gem('rspec-rails')
|
5
|
+
gather_gem('factory_girl_rails')
|
6
|
+
gather_gem('guard-rspec', require: false)
|
7
|
+
gather_gem('rspec-nc', require: false)
|
8
|
+
end
|
9
|
+
|
10
|
+
gather_gems(:test) do
|
11
|
+
gather_gem('shoulda-matchers', require: false)
|
12
|
+
end
|
13
|
+
|
14
|
+
after(:gem_install) do
|
15
|
+
remove_dir 'test'
|
16
|
+
|
17
|
+
generate "rspec:install"
|
18
|
+
|
19
|
+
remove_file 'spec/rails_helper.rb'
|
20
|
+
copy_file '../assets/testing/rails_helper.rb', 'spec/rails_helper.rb'
|
21
|
+
|
22
|
+
remove_file '.rspec'
|
23
|
+
copy_file '../assets/testing/.rspec', '.rspec'
|
24
|
+
|
25
|
+
empty_directory 'spec/support'
|
26
|
+
create_file 'spec/support/.keep'
|
27
|
+
|
28
|
+
run "bundle exec guard init"
|
29
|
+
run "bundle binstubs rspec-core"
|
30
|
+
end
|
31
|
+
|
32
|
+
raise_delivery_errors_regexp = /config.action_mailer.raise_delivery_errors = false\n/
|
33
|
+
gsub_file 'config/environments/development.rb', raise_delivery_errors_regexp do
|
34
|
+
"config.action_mailer.raise_delivery_errors = true"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
set :app_name, app_name
|
2
|
+
set :titleized_app_name, get(:app_name).titleize
|
3
|
+
set :underscorized_app_name, get(:app_name).underscore
|
4
|
+
set :dasherized_app_name, get(:app_name).dasherize
|
5
|
+
|
6
|
+
run_action(:cleaning) do
|
7
|
+
clean_gemfile
|
8
|
+
gather_gem("spring")
|
9
|
+
end
|
10
|
+
|
11
|
+
run_action(:asking) do
|
12
|
+
ask :database
|
13
|
+
ask :devise
|
14
|
+
ask :admin
|
15
|
+
ask :angular_admin
|
16
|
+
ask :delayed_job
|
17
|
+
ask :pundit
|
18
|
+
ask :i18n
|
19
|
+
ask :api
|
20
|
+
ask :paperclip
|
21
|
+
ask :heroku
|
22
|
+
ask :github
|
23
|
+
end
|
24
|
+
|
25
|
+
run_action(:recipe_loading) do
|
26
|
+
create :readme
|
27
|
+
create :heroku
|
28
|
+
create :ci
|
29
|
+
create :style
|
30
|
+
create :puma
|
31
|
+
create :database
|
32
|
+
create :ruby
|
33
|
+
create :env
|
34
|
+
create :bower
|
35
|
+
create :editorconfig
|
36
|
+
create :aws_sdk
|
37
|
+
create :i18n
|
38
|
+
create :pry
|
39
|
+
create :devise
|
40
|
+
create :admin
|
41
|
+
create :angular_admin
|
42
|
+
create :delayed_job
|
43
|
+
create :pundit
|
44
|
+
create :testing
|
45
|
+
create :production
|
46
|
+
create :staging
|
47
|
+
create :secrets
|
48
|
+
create :git
|
49
|
+
create :api
|
50
|
+
create :rack_cors
|
51
|
+
create :paperclip
|
52
|
+
create :script
|
53
|
+
create :github
|
54
|
+
create :cleanup
|
55
|
+
end
|
56
|
+
|
57
|
+
info "Gathered enough information. Applying the template. Wait a minute."
|
58
|
+
|
59
|
+
run_action(:gem_install) do
|
60
|
+
build_gemfile
|
61
|
+
run "bundle install"
|
62
|
+
end
|
63
|
+
|
64
|
+
run_action(:database_creation) do
|
65
|
+
run "rake db:create db:migrate"
|
66
|
+
run "RAILS_ENV=test rake db:create db:migrate"
|
67
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
set :app_name, app_name
|
2
|
+
set :titleized_app_name, get(:app_name).titleize
|
3
|
+
set :underscorized_app_name, get(:app_name).underscore
|
4
|
+
set :dasherized_app_name, get(:app_name).dasherize
|
5
|
+
recipe_name = ARGV.first
|
6
|
+
|
7
|
+
run_action(:recipe_loading) do
|
8
|
+
install recipe_name.to_sym
|
9
|
+
run_action(:gem_install) do
|
10
|
+
run "bundle install" if build_gemfile
|
11
|
+
end
|
12
|
+
end
|
@@ -30,7 +30,6 @@ module Potassium
|
|
30
30
|
sleep interval
|
31
31
|
self.counter += 1
|
32
32
|
end
|
33
|
-
clear_message
|
34
33
|
self.started = false
|
35
34
|
end
|
36
35
|
end
|
@@ -44,10 +43,6 @@ module Potassium
|
|
44
43
|
print "\r#{base_message}#{message_continuation}"
|
45
44
|
end
|
46
45
|
|
47
|
-
def clear_message
|
48
|
-
print "\r#{' ' * (base_message.size * 2)}\r"
|
49
|
-
end
|
50
|
-
|
51
46
|
def already_started_message
|
52
47
|
"Please don't start this text spinner while is running. It can cause race conditions."
|
53
48
|
end
|
data/lib/potassium/version.rb
CHANGED
data/potassium.gemspec
CHANGED
@@ -20,6 +20,9 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.7"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency "rspec", "~> 3.4.0"
|
24
|
+
spec.add_development_dependency "pry", "~> 0.10.3"
|
25
|
+
spec.add_development_dependency "rubocop", Potassium::RUBOCOP_VERSION
|
23
26
|
spec.add_runtime_dependency "rails", Potassium::RAILS_VERSION
|
24
27
|
spec.add_runtime_dependency "gli", "~> 2.12.2"
|
25
28
|
spec.add_runtime_dependency "inquirer", "~> 0.2"
|