thredded_create_app 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0a440b54c995a4acc228ea80bc49543584a7ace8
4
- data.tar.gz: 783a3ef4755e06a4e49d99ce951a56c96c247195
3
+ metadata.gz: 8321129255513f386fad12a0d97ee42921986331
4
+ data.tar.gz: 191f06d32b4a785fc7247f4727a680a813e6255f
5
5
  SHA512:
6
- metadata.gz: 9c531f266980d0071259f18c46093356931dd95da360a5f33a64106955789a46acba83d028d26568a74ece981f4d78115a26f0644e8eff4e778cdda963c4c52e
7
- data.tar.gz: 7879d3b6eece4346ea7cc797950f56006cc4f6ff2d39a89a7307c727491dd45f696796cf5afeee34c68c5cf66636eb3cf59d1f94207f68b1ed010026c104800d
6
+ metadata.gz: 03e931cd479e9d3c1ae73b51ebf6885a28c2046d21744d60262daad28a04f18647a693f0d8b546e10cc377e3c62e561308fc08d9ffc3ffcd1aaa7fe53bcbb3c4
7
+ data.tar.gz: 1275fc973cdfe0b1ab08510f3a1ffaeb3e478cf13d39dd46939c870dea6027e27b178ddc471a80bda6799f310cc0e624b6f13592bf7bc8bbe5de6ee50b5fac87
data/README.md CHANGED
@@ -20,7 +20,7 @@ Example screenshots of the generated app:
20
20
  ## Pre-requisites
21
21
 
22
22
  1. Git.
23
- 2. A supported database: PostgreSQL (recommended), MySQL v5.6.4+, or SQLite.
23
+ 2. A supported database: PostgreSQL (recommended), MySQL v5.7+, or SQLite.
24
24
  3. Ruby 2.3+.
25
25
 
26
26
  ## Usage
@@ -83,9 +83,6 @@ module ThreddedCreateApp
83
83
  ) do |op|
84
84
  flags = Flags.new(op, options)
85
85
 
86
- flags.bool :auto_confirm, '-y', 'Auto-confirm all prompts'
87
- flags.bool :simple_form, '--[no-]simple-form', 'Use simple_form'
88
-
89
86
  db_adapters = %i(postgresql mysql2 sqlite3)
90
87
  op.on '--database DATABASE', db_adapters,
91
88
  "The database adapter, one of: #{db_adapters.join(', ')} " \
@@ -93,19 +90,21 @@ module ThreddedCreateApp
93
90
  options[:database] = v.to_sym
94
91
  end
95
92
 
96
- flags.bool :start_server, '--[no-]start-server', 'Start the app server'
93
+ flags.bool :simple_form, '--[no-]simple-form', 'Use simple_form'
97
94
 
95
+ op.separator "\nOther options:"
96
+ flags.bool :start_server, '--[no-]start-server', 'Start the app server'
98
97
  flags.bool :install_gem_bundler_rails,
99
98
  '--[no-]install-gem-bundler-rails',
100
99
  'Run `gem update --system and `gem install bundler rails`'
101
-
100
+ flags.bool :auto_confirm, '-y', 'Auto-confirm all prompts'
101
+ flags.bool :verbose, '--verbose', 'Verbose output' do
102
+ @verbose = true
103
+ end
102
104
  op.on '-v', '--version', 'Print the version' do
103
105
  puts ThreddedCreateApp::VERSION
104
106
  exit
105
107
  end
106
- flags.bool :verbose, '--verbose', 'Verbose output' do
107
- @verbose = true
108
- end
109
108
  op.on '-h', '--help', 'Show this message' do
110
109
  STDERR.puts op
111
110
  exit
@@ -63,14 +63,14 @@ module ThreddedCreateApp
63
63
  File.write path, src
64
64
  end
65
65
 
66
- def add_route(route_str, append: false)
66
+ def add_route(route_str, prepend: false)
67
67
  log_verbose "Add route: #{route_str}"
68
68
  inject_into_file 'config/routes.rb',
69
- content: " #{route_str}\n",
70
- **(if append
69
+ content: "#{"\n" unless prepend} #{route_str}",
70
+ **(if prepend
71
71
  { after: /\.routes\.draw do\s*\n/m }
72
72
  else
73
- { before: /end\n\z/ }
73
+ { before: /\nend\n\z/ }
74
74
  end)
75
75
  end
76
76
 
@@ -10,7 +10,7 @@ module ThreddedCreateApp
10
10
  end
11
11
 
12
12
  def summary
13
- "Create Rails app #{app_name.inspect} with postgresql and rspec"
13
+ "Create Rails app #{app_name.inspect} with #{rails_database} and rspec"
14
14
  end
15
15
 
16
16
  def before_bundle
@@ -18,10 +18,9 @@ module ThreddedCreateApp
18
18
  run 'gem update --system --no-document --quiet'
19
19
  run 'gem install bundler rails --no-document'
20
20
  end
21
- rails_database_arg = { mysql2: :mysql }.fetch(@database, @database)
22
21
  # I have no idea why this bundle exec is necessary on Travis.
23
22
  run "#{'bundle exec ' if ENV['TRAVIS']}" \
24
- "rails new . --skip-bundle --database=#{rails_database_arg} " \
23
+ "rails new . --skip-bundle --database=#{rails_database} " \
25
24
  "--skip-test#{verbose? ? ' --verbose' : ' --quiet'}"
26
25
  replace 'Gemfile', /gem 'sass-rails'.*$/, "gem 'sassc-rails'"
27
26
  add_gem 'rspec-rails', groups: %i(test)
@@ -33,6 +32,12 @@ module ThreddedCreateApp
33
32
  run_generator 'rspec:install'
34
33
  git_commit 'rails g rspec:install'
35
34
  end
35
+
36
+ private
37
+
38
+ def rails_database
39
+ { mysql2: :mysql }.fetch(@database, @database)
40
+ end
36
41
  end
37
42
  end
38
43
  end
@@ -105,6 +105,12 @@ module ThreddedCreateApp
105
105
  'data-turbolinks-track': 'reload' %>
106
106
  ERB
107
107
 
108
+ inject_into_file 'app/views/layouts/application.html.erb',
109
+ before: '</head>',
110
+ content: <<-'ERB'
111
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
112
+ ERB
113
+
108
114
  replace 'app/views/layouts/application.html.erb',
109
115
  %r{<body>.*?</body>}m,
110
116
  File.read(
@@ -124,7 +130,11 @@ module ThreddedCreateApp
124
130
  def show
125
131
  @user = User.find(params[:id])
126
132
  RUBY
127
- add_route <<~'RUBY'
133
+ # The route must be defined after `devise_for`.
134
+ # The route is injected before Thredded in case Thredded is mount at /.
135
+ inject_into_file 'config/routes.rb',
136
+ before: /^\s*mount Thredded::Engine/,
137
+ content: indent(2, <<~'RUBY')
128
138
  resources :users, only: [:show]
129
139
  RUBY
130
140
  end
@@ -132,7 +142,7 @@ module ThreddedCreateApp
132
142
  def add_home_page
133
143
  run_generator 'controller home show' \
134
144
  ' --no-assets --no-helper --skip-routes'
135
- add_route <<~'RUBY', append: true
145
+ add_route <<~'RUBY', prepend: true
136
146
  root to: 'home#show'
137
147
  RUBY
138
148
  copy_template 'setup_app_skeleton/home_show.html.erb.erb',
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ThreddedCreateApp
3
- VERSION = '0.1.2'
3
+ VERSION = '0.1.3'
4
4
  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.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Mazovetskiy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-18 00:00:00.000000000 Z
11
+ date: 2016-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: term-ansicolor