thredded_create_app 0.1.16 → 0.1.17

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 63c67451a346d7cf30ee4088aa6da71aa0f5c262
4
- data.tar.gz: e3d3a3ee6579c3b385ad949395bc94ee9d6c9e99
3
+ metadata.gz: 317de5cb8dc2f463948d4aaa240ad6d546e88440
4
+ data.tar.gz: 6f61cf6b2c942359d761e45f3e85dd7026e5cc7c
5
5
  SHA512:
6
- metadata.gz: 2d1c6cef277dfbc4a0040beaa41044fb0f964b590e63ac36f104669b65a72c251b6428f53f302237c742585b5aad7b92692fecf5813591f3754faf6cb6f6c20a
7
- data.tar.gz: 2ca16dd5bf5a25fac8ebc0be75bed2303e0323efd534df98f592d84ae969ac2c25ab156b012f59cab2b4c7e75446a514a85549c8ca05c9ddf4f39bbb2963c774
6
+ metadata.gz: 5be5c1c0ad6a6eaef3a0e8a2e19eee17251486e42d383e75108e7ed1cb6d815a35d25afd950b4abd2d0fde8e70aeb4ec64f514466b3c7a2f35aa1171ee130529
7
+ data.tar.gz: a4d0710842921f74c8fdde1b9a47aa9f339a2cd5f1ef7eb0f3be2cd18d38cb4c71e5d8288a8129640e3cb5ff01b550023a2abb5d02b213b6b3052824d64e1ca8
@@ -16,7 +16,8 @@ module ThreddedCreateApp
16
16
  install_gem_bundler_rails: true,
17
17
  start_server: true,
18
18
  simple_form: true,
19
- database: :postgresql
19
+ database: :postgresql,
20
+ rails_version: nil
20
21
  }.freeze
21
22
 
22
23
  def self.start(argv)
@@ -85,13 +86,18 @@ module ThreddedCreateApp
85
86
  ) do |op|
86
87
  flags = Flags.new(op, options)
87
88
 
88
- db_adapters = %i(postgresql mysql2 sqlite3)
89
+ db_adapters = %i[postgresql mysql2 sqlite3]
89
90
  op.on '--database DATABASE', db_adapters,
90
91
  "The database adapter, one of: #{db_adapters.join(', ')} " \
91
92
  "(default: #{DEFAULTS[:database]})" do |v|
92
93
  options[:database] = v.to_sym
93
94
  end
94
95
 
96
+ op.on '--rails-version VERSION',
97
+ 'The exact version of Rails to use (default: latest)' do |value|
98
+ options[:rails_version] = value
99
+ end
100
+
95
101
  flags.bool :simple_form, '--[no-]simple-form', 'Use simple_form'
96
102
 
97
103
  op.separator "\nOther options:"
@@ -57,8 +57,8 @@ module ThreddedCreateApp
57
57
  replace 'app/views/devise/registrations/edit.html.erb',
58
58
  ', :back %>', ', back_url %>'
59
59
  # Make the views render-able outside Devise controllers
60
- %w(app/views/devise/sessions/new.html.erb
61
- app/views/devise/shared/_links.html.erb).each do |path|
60
+ %w[app/views/devise/sessions/new.html.erb
61
+ app/views/devise/shared/_links.html.erb].each do |path|
62
62
  replace path, 'resource_class', 'User', optional: true
63
63
  replace path, /resource_name(?!:)/, ':user'
64
64
  replace path, /resource(?!:)/, ':user', optional: true
@@ -39,8 +39,8 @@ module ThreddedCreateApp
39
39
  inject_into_file 'app/controllers/application_controller.rb',
40
40
  after: /protect_from_forgery.*\n/,
41
41
  content: devise_permitted_params_rb
42
- %w(app/views/devise/registrations/new.html.erb
43
- app/views/devise/registrations/edit.html.erb).each do |path|
42
+ %w[app/views/devise/registrations/new.html.erb
43
+ app/views/devise/registrations/edit.html.erb].each do |path|
44
44
  autofocus = File.read(path).include?(', autofocus: true')
45
45
  replace path, ', autofocus: true', '' if autofocus
46
46
  if @simple_form
@@ -1,33 +1,41 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'yaml'
3
4
  require 'thredded_create_app/tasks/base'
5
+
4
6
  module ThreddedCreateApp
5
7
  module Tasks
6
8
  class CreateRailsApp < Base
7
- def initialize(install_gem_bundler_rails:, database:, **args)
9
+ def initialize(install_gem_bundler_rails:, rails_version:, database:,
10
+ **args)
8
11
  super
9
12
  @install_gem_bundler_rails = install_gem_bundler_rails
10
13
  @database = database
14
+ @rails_version = rails_version
15
+ @user_install = !File.writable?(Gem.dir)
11
16
  end
12
17
 
13
18
  def summary
14
- "Create Rails app #{app_name.inspect} with #{rails_database} and rspec"
19
+ "Create a Rails v#{@rails_version} app #{app_name.inspect} with"\
20
+ " #{rails_database} and rspec"
15
21
  end
16
22
 
17
23
  def before_bundle
18
24
  if @install_gem_bundler_rails
19
- user_install = !File.writable?(Gem.dir)
20
- run 'gem update --system --no-document --quiet' unless user_install
21
- run 'gem install bundler rails --no-document' \
22
- "#{' --user' if user_install}"
25
+ run 'gem update --system --no-document --quiet' unless @user_install
26
+ install_gem 'bundler'
27
+ install_gem 'rails', version: @rails_version
23
28
  end
29
+ @rails_version ||= latest_installed_rails_version
30
+
24
31
  # I have no idea why this bundle exec is necessary on Travis.
25
32
  run "#{'bundle exec ' if ENV['TRAVIS']}" \
26
- "rails new . --skip-bundle --database=#{rails_database} " \
27
- "--skip-test#{verbose? ? ' --verbose' : ' --quiet'}"
33
+ "rails _#{@rails_version}_ new . --skip-bundle" \
34
+ " --database=#{rails_database} " \
35
+ " --skip-test#{verbose? ? ' --verbose' : ' --quiet'}"
28
36
  replace 'Gemfile', /gem 'sass-rails'.*$/, "gem 'sassc-rails'"
29
- add_gem 'rspec-rails', groups: %i(test)
30
- add_gem 'capybara', groups: %i(test)
37
+ add_gem 'rspec-rails', groups: %i[test]
38
+ add_gem 'capybara', groups: %i[test]
31
39
  git_commit summary
32
40
  end
33
41
 
@@ -38,9 +46,21 @@ module ThreddedCreateApp
38
46
 
39
47
  private
40
48
 
49
+ def install_gem(gem_name, version: nil)
50
+ run ["gem install #{gem_name} --no-document",
51
+ ('--user' if @user_install),
52
+ ("-v #{version}" if version)].compact.join(' ')
53
+ end
54
+
41
55
  def rails_database
42
56
  { mysql2: :mysql }.fetch(@database, @database)
43
57
  end
58
+
59
+ def latest_installed_rails_version
60
+ # rubocop:disable Security/YAMLLoad
61
+ YAML.load(`gem specification rails`).version.to_s
62
+ # rubocop:enable Security/YAMLLoad
63
+ end
44
64
  end
45
65
  end
46
66
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ThreddedCreateApp
4
- VERSION = '0.1.16'
4
+ VERSION = '0.1.17'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thredded_create_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16
4
+ version: 0.1.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Mazovetskiy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-02 00:00:00.000000000 Z
11
+ date: 2017-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: term-ansicolor
@@ -205,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
205
  version: '0'
206
206
  requirements: []
207
207
  rubyforge_project:
208
- rubygems_version: 2.6.11
208
+ rubygems_version: 2.6.12
209
209
  signing_key:
210
210
  specification_version: 4
211
211
  summary: Rails app generator for Thredded.