thredded_create_app 0.1.14 → 0.1.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -4
- data/lib/thredded_create_app/generator.rb +2 -0
- data/lib/thredded_create_app/tasks/add_devise.rb +14 -0
- data/lib/thredded_create_app/tasks/add_rails_config.rb +36 -0
- data/lib/thredded_create_app/tasks/add_roadie.rb +2 -2
- data/lib/thredded_create_app/tasks/add_thredded.rb +9 -4
- data/lib/thredded_create_app/tasks/base.rb +4 -3
- data/lib/thredded_create_app/tasks/setup_app_skeleton/{en.yml.erb → config/locales/en.yml.erb} +0 -0
- data/lib/thredded_create_app/tasks/setup_app_skeleton/config/settings.yml.erb +3 -0
- data/lib/thredded_create_app/tasks/setup_app_skeleton/initializers/02_i18n.rb +5 -0
- data/lib/thredded_create_app/tasks/setup_app_skeleton.rb +15 -4
- data/lib/thredded_create_app/version.rb +1 -1
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0516299291ce7b4cfd720cadd5f34ad94893402
|
4
|
+
data.tar.gz: 5c4f3936a075560f5df3b1c6a2c754bacd9ef729
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cebe5537c3c942aa0704b5e55351e922b3b19502b0f3486ce6a8762ed9ffe67156370b710dedac8fe2004f578e8dceb3b19a5b5307f1089dc9cdbf415043e3b
|
7
|
+
data.tar.gz: bc6209c773afd635ff952185dfa275b951ade1aa6711521a94707610e9702dd47854be51fef1f8f317373ba0aab4ebba60cae66d1729fb9a96b627c7254682b8
|
data/README.md
CHANGED
@@ -189,20 +189,27 @@ The app is now deployed, but you'll also need to set up emailing.
|
|
189
189
|
|
190
190
|
The easiest way to do this is via the Mailgun Heroku add-on.
|
191
191
|
|
192
|
-
1.
|
192
|
+
1. Set the `APP_HOST` environment variable on Heroku so that the app knows its
|
193
|
+
domain.
|
194
|
+
|
195
|
+
```bash
|
196
|
+
heroku config:set APP_HOST='e.g. myapp.herokuapp.com'
|
197
|
+
```
|
198
|
+
|
199
|
+
2. Enable the Mailgun add-on:
|
193
200
|
|
194
201
|
```bash
|
195
202
|
heroku addons:create mailgun:starter # Enable Mailgun with the free plan
|
196
203
|
```
|
197
204
|
|
198
|
-
|
205
|
+
3. Copy the following snippet into `config/environments/production.rb`:
|
199
206
|
|
200
207
|
```ruby
|
201
208
|
config.action_mailer.perform_deliveries = true
|
202
209
|
config.action_mailer.raise_delivery_errors = true
|
203
210
|
config.action_mailer.delivery_method = :smtp
|
204
211
|
config.action_mailer.smtp_settings = {
|
205
|
-
domain:
|
212
|
+
domain: Settings.hostname,
|
206
213
|
port: ENV['MAILGUN_SMTP_PORT'],
|
207
214
|
address: ENV['MAILGUN_SMTP_SERVER'],
|
208
215
|
user_name: ENV['MAILGUN_SMTP_LOGIN'],
|
@@ -213,7 +220,10 @@ The easiest way to do this is via the Mailgun Heroku add-on.
|
|
213
220
|
|
214
221
|
Set the `domain` in the snippet above to your domain.
|
215
222
|
|
216
|
-
|
223
|
+
4. Commit and push to Heroku.
|
224
|
+
|
225
|
+
By default, emails are send from `no-reply@`. You can configure this in
|
226
|
+
`config/settings.yml`.
|
217
227
|
|
218
228
|
### Performance
|
219
229
|
|
@@ -4,6 +4,7 @@ require 'fileutils'
|
|
4
4
|
require 'shellwords'
|
5
5
|
require 'thredded_create_app/tasks/base'
|
6
6
|
require 'thredded_create_app/tasks/create_rails_app'
|
7
|
+
require 'thredded_create_app/tasks/add_rails_config'
|
7
8
|
require 'thredded_create_app/tasks/add_simple_form'
|
8
9
|
require 'thredded_create_app/tasks/add_devise'
|
9
10
|
require 'thredded_create_app/tasks/add_roadie'
|
@@ -63,6 +64,7 @@ module ThreddedCreateApp
|
|
63
64
|
def tasks
|
64
65
|
@tasks ||= [
|
65
66
|
Tasks::CreateRailsApp,
|
67
|
+
Tasks::AddRailsConfig,
|
66
68
|
(Tasks::AddSimpleForm if @options[:simple_form]),
|
67
69
|
Tasks::AddDevise,
|
68
70
|
Tasks::AddRailsEmailPreview,
|
@@ -20,6 +20,7 @@ module ThreddedCreateApp
|
|
20
20
|
run_generator 'devise:install'
|
21
21
|
run_generator 'devise User'
|
22
22
|
setup_views
|
23
|
+
setup_emails
|
23
24
|
setup_after_sign_in_behaviour
|
24
25
|
git_commit 'Setup Devise'
|
25
26
|
end
|
@@ -65,6 +66,19 @@ module ThreddedCreateApp
|
|
65
66
|
optional: true
|
66
67
|
end
|
67
68
|
end
|
69
|
+
|
70
|
+
def setup_emails
|
71
|
+
replace 'config/initializers/devise.rb',
|
72
|
+
/# config\.parent_mailer = .*/,
|
73
|
+
<<~'RUBY'.chomp
|
74
|
+
config.parent_mailer = 'ApplicationMailer'
|
75
|
+
RUBY
|
76
|
+
replace 'config/initializers/devise.rb',
|
77
|
+
/( *)config\.mailer_sender = .*/,
|
78
|
+
'\1' + <<~'RUBY'.chomp
|
79
|
+
config.mailer_sender = %("#{I18n.t('brand.name')}" <#{Settings.email_sender}>)
|
80
|
+
RUBY
|
81
|
+
end
|
68
82
|
end
|
69
83
|
end
|
70
84
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'thredded_create_app/tasks/base'
|
4
|
+
module ThreddedCreateApp
|
5
|
+
module Tasks
|
6
|
+
class AddRailsConfig < Base
|
7
|
+
def summary
|
8
|
+
'Add the config gem'
|
9
|
+
end
|
10
|
+
|
11
|
+
def before_bundle
|
12
|
+
add_gem 'config'
|
13
|
+
end
|
14
|
+
|
15
|
+
def after_bundle
|
16
|
+
run_generator 'config:install'
|
17
|
+
git_commit 'Add Rails Config configuration (rails g config:install)'
|
18
|
+
inject_into_file 'config/initializers/config.rb',
|
19
|
+
before: /\A/,
|
20
|
+
content: config_initializer_header
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def config_initializer_header
|
26
|
+
<<~'RUBY'
|
27
|
+
# frozen_string_literal: true
|
28
|
+
|
29
|
+
# This file *must* be named "config.rb". It is loaded manually by the config
|
30
|
+
# gem before everything else, so you can use the Settings constant even in
|
31
|
+
# config/application.rb and config/environments/*.
|
32
|
+
RUBY
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -13,7 +13,7 @@ module ThreddedCreateApp
|
|
13
13
|
add_gem 'plain-david' # for plain text email generation
|
14
14
|
end
|
15
15
|
|
16
|
-
def after_bundle
|
16
|
+
def after_bundle # rubocop:disable Metrics/AbcSize
|
17
17
|
inject_into_file 'app/mailers/application_mailer.rb',
|
18
18
|
after: "ActionMailer::Base\n",
|
19
19
|
content: " include Roadie::Rails::Automatic\n"
|
@@ -56,7 +56,7 @@ module ThreddedCreateApp
|
|
56
56
|
<<~'RUBY'
|
57
57
|
# Set the default URL options for both Roadie and ActionMailer:
|
58
58
|
config.roadie.url_options = config.action_mailer.default_url_options = {
|
59
|
-
host:
|
59
|
+
host: Settings.hostname,
|
60
60
|
protocol: 'https',
|
61
61
|
}
|
62
62
|
RUBY
|
@@ -26,8 +26,8 @@ module ThreddedCreateApp
|
|
26
26
|
git_commit 'Configure Thredded (routes, assets, behaviour, tests)'
|
27
27
|
add_admin_column_to_users
|
28
28
|
git_commit 'Add the admin column to users'
|
29
|
-
|
30
|
-
git_commit 'Configure Thredded email styles with Roadie'
|
29
|
+
setup_thredded_emails
|
30
|
+
git_commit 'Configure Thredded emails and email styles with Roadie'
|
31
31
|
configure_rails_email_preview
|
32
32
|
git_commit 'Configure RailsEmailPreview with Thredded and Roadie'
|
33
33
|
run 'bundle exec rails thredded:install:emoji'
|
@@ -79,7 +79,7 @@ module ThreddedCreateApp
|
|
79
79
|
Dir['db/migrate/*_add_admin_to_users.rb'][0]
|
80
80
|
end
|
81
81
|
|
82
|
-
def
|
82
|
+
def setup_thredded_emails
|
83
83
|
File.write 'app/assets/stylesheets/email.scss', <<~'SCSS', mode: 'a'
|
84
84
|
@import "variables";
|
85
85
|
@import "thredded-variables";
|
@@ -87,8 +87,13 @@ module ThreddedCreateApp
|
|
87
87
|
SCSS
|
88
88
|
|
89
89
|
replace 'config/initializers/thredded.rb',
|
90
|
-
|
90
|
+
/# Thredded\.parent_mailer = .*/,
|
91
91
|
"Thredded.parent_mailer = 'ApplicationMailer'"
|
92
|
+
replace 'config/initializers/thredded.rb',
|
93
|
+
/# Thredded\.email_from = .*/,
|
94
|
+
<<~'RUBY'.chomp
|
95
|
+
Thredded.email_from = %("#{I18n.t('brand.name')}" <#{Settings.email_sender}>)
|
96
|
+
RUBY
|
92
97
|
|
93
98
|
add_precompile_asset 'email.css'
|
94
99
|
|
@@ -11,13 +11,14 @@ module ThreddedCreateApp
|
|
11
11
|
class Base
|
12
12
|
include ThreddedCreateApp::Logging
|
13
13
|
|
14
|
-
attr_reader :app_name, :app_path, :gems
|
14
|
+
attr_reader :app_name, :app_hostname, :app_path, :gems
|
15
15
|
|
16
16
|
def initialize(app_path:, verbose: false, **_args)
|
17
17
|
@app_path = app_path
|
18
18
|
@app_name = File.basename(File.expand_path(app_path))
|
19
|
-
@
|
20
|
-
@
|
19
|
+
@app_hostname = "#{@app_name.tr(' ', '_').downcase}.com"
|
20
|
+
@verbose = verbose
|
21
|
+
@gems = []
|
21
22
|
end
|
22
23
|
|
23
24
|
def summary
|
data/lib/thredded_create_app/tasks/setup_app_skeleton/{en.yml.erb → config/locales/en.yml.erb}
RENAMED
File without changes
|
@@ -24,16 +24,17 @@ module ThreddedCreateApp
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def after_bundle
|
27
|
+
add_config_vars
|
28
|
+
add_i18n
|
29
|
+
add_seeds
|
27
30
|
add_favicon_and_touch_icons
|
28
31
|
add_javascripts
|
29
32
|
add_styles
|
30
33
|
add_user_page
|
31
34
|
add_home_page
|
32
|
-
add_i18n
|
33
35
|
add_app_layout
|
34
36
|
copy 'setup_app_skeleton/spec/features/homepage_spec.rb',
|
35
37
|
'spec/features/homepage_spec.rb'
|
36
|
-
add_seeds
|
37
38
|
git_commit 'Set up basic app navigation and styles'
|
38
39
|
end
|
39
40
|
|
@@ -94,9 +95,19 @@ module ThreddedCreateApp
|
|
94
95
|
add_precompile_asset 'night.css'
|
95
96
|
end
|
96
97
|
|
98
|
+
def add_config_vars
|
99
|
+
copy_template 'setup_app_skeleton/config/settings.yml.erb',
|
100
|
+
'config/settings.yml'
|
101
|
+
replace 'app/mailers/application_mailer.rb',
|
102
|
+
/default from: .*/,
|
103
|
+
'default from: Settings.email_sender'
|
104
|
+
end
|
105
|
+
|
97
106
|
def add_i18n
|
98
|
-
copy_template 'setup_app_skeleton/en.yml.erb',
|
107
|
+
copy_template 'setup_app_skeleton/config/locales/en.yml.erb',
|
99
108
|
'config/locales/en.yml'
|
109
|
+
copy_template 'setup_app_skeleton/initializers/02_i18n.rb',
|
110
|
+
'config/initializers/02_i18n.rb'
|
100
111
|
inject_into_file'config/application.rb',
|
101
112
|
before: / *end\nend\n\z/,
|
102
113
|
content: indent(4, <<~'RUBY')
|
@@ -186,7 +197,7 @@ module ThreddedCreateApp
|
|
186
197
|
end
|
187
198
|
|
188
199
|
def admin_email
|
189
|
-
"admin@#{
|
200
|
+
"admin@#{app_hostname}"
|
190
201
|
end
|
191
202
|
|
192
203
|
def admin_password
|
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.
|
4
|
+
version: 0.1.15
|
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-03-
|
11
|
+
date: 2017-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: term-ansicolor
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0.44'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rake
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
description: Generates a Rails app with Thredded installed.
|
98
112
|
email:
|
99
113
|
- glex.spb@gmail.com
|
@@ -114,6 +128,7 @@ files:
|
|
114
128
|
- lib/thredded_create_app/tasks/add_display_name_to_users.rb
|
115
129
|
- lib/thredded_create_app/tasks/add_display_name_to_users/add_display_name_to_users.rb
|
116
130
|
- lib/thredded_create_app/tasks/add_memcached_support.rb
|
131
|
+
- lib/thredded_create_app/tasks/add_rails_config.rb
|
117
132
|
- lib/thredded_create_app/tasks/add_rails_email_preview.rb
|
118
133
|
- lib/thredded_create_app/tasks/add_rails_email_preview/_rails_email_preview-custom.scss
|
119
134
|
- lib/thredded_create_app/tasks/add_roadie.rb
|
@@ -140,9 +155,11 @@ files:
|
|
140
155
|
- lib/thredded_create_app/tasks/setup_app_skeleton/_header.html.erb
|
141
156
|
- lib/thredded_create_app/tasks/setup_app_skeleton/application.body.html.erb
|
142
157
|
- lib/thredded_create_app/tasks/setup_app_skeleton/application_helper_methods.rb
|
143
|
-
- lib/thredded_create_app/tasks/setup_app_skeleton/en.yml.erb
|
158
|
+
- lib/thredded_create_app/tasks/setup_app_skeleton/config/locales/en.yml.erb
|
159
|
+
- lib/thredded_create_app/tasks/setup_app_skeleton/config/settings.yml.erb
|
144
160
|
- lib/thredded_create_app/tasks/setup_app_skeleton/home_show.html.erb.erb
|
145
161
|
- lib/thredded_create_app/tasks/setup_app_skeleton/images/brightness.svg
|
162
|
+
- lib/thredded_create_app/tasks/setup_app_skeleton/initializers/02_i18n.rb
|
146
163
|
- lib/thredded_create_app/tasks/setup_app_skeleton/javascripts/app.js
|
147
164
|
- lib/thredded_create_app/tasks/setup_app_skeleton/javascripts/app/monkey-patch-turbolinks.js
|
148
165
|
- lib/thredded_create_app/tasks/setup_app_skeleton/javascripts/app/theme.js
|