roadie-rails 1.1.0.rc2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +12 -2
- data/lib/roadie/rails/inline_on_delivery.rb +12 -1
- data/lib/roadie/rails/railtie.rb +8 -2
- data/lib/roadie/rails/version.rb +1 -1
- data/roadie-rails.gemspec +1 -1
- data/spec/integration_spec.rb +26 -66
- data/spec/railsapps/rails_42_sprockets_rails_3/.gitignore +16 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/Gemfile +6 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/bin/rails +4 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/config.ru +4 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/config/application.rb +13 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/config/boot.rb +4 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/config/environment.rb +5 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/config/environments/development.rb +9 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/config/initializers/assets.rb +1 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/config/initializers/secret_token.rb +1 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/config/initializers/session_store.rb +1 -0
- data/spec/railsapps/rails_42_sprockets_rails_3/config/routes.rb +2 -0
- data/spec/support/rails_app.rb +7 -2
- metadata +33 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65ec310d7987a54efad5de41cb80afdade9f53bd
|
4
|
+
data.tar.gz: b47b19fb46061806845b24b8a807302d23a97184
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfbed57e1c9f8efd5cc758538e95021c921e435c89427a4ab1f68c89ae90d12b6ea15f441b792a0f5b345b07f1b855bcba5d4d4b12ed090dda4fe84933e96699
|
7
|
+
data.tar.gz: ab96f1282ee2d333cd4f5d251c70e5d5ff984cc951c709094fa3fdad77bef3afc8f27761a5316ca96e9d70d61e7962d0739aab22e313fb30769cbc62ce0ab3d2
|
data/Changelog.md
CHANGED
@@ -1,8 +1,18 @@
|
|
1
1
|
### development version
|
2
2
|
|
3
|
-
[full changelog](https://github.com/Mange/roadie-rails/compare/v1.1.0
|
3
|
+
[full changelog](https://github.com/Mange/roadie-rails/compare/v1.1.0...master)
|
4
4
|
|
5
|
-
|
5
|
+
* Nothing yet.
|
6
|
+
|
7
|
+
### 1.1.0
|
8
|
+
|
9
|
+
[full changelog](https://github.com/Mange/roadie-rails/compare/v1.1.0.rc2...v1.1.0)
|
10
|
+
|
11
|
+
* Bug fixes:
|
12
|
+
* Support for sprockets-rails 3 (#46) — [Rafael Mendonça França (rafaelfranca)](https://github.com/rafaelfranca)
|
13
|
+
* Support `Mailer#deliver!` in `AutomaticMailer` (#47) — [Julien Vanier (monkbroc)](https://github.com/monkbroc)
|
14
|
+
|
15
|
+
### 1.1.0.rc2
|
6
16
|
|
7
17
|
[full changelog](https://github.com/Mange/roadie-rails/compare/v1.1.0.rc1...v1.1.0.rc2)
|
8
18
|
|
@@ -7,10 +7,21 @@ module Roadie
|
|
7
7
|
attr_accessor :roadie_options
|
8
8
|
|
9
9
|
def deliver
|
10
|
+
inline_styles
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
def deliver!
|
15
|
+
inline_styles
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def inline_styles
|
10
22
|
if (options = roadie_options)
|
11
23
|
MailInliner.new(self, options).execute
|
12
24
|
end
|
13
|
-
super
|
14
25
|
end
|
15
26
|
end
|
16
27
|
end
|
data/lib/roadie/rails/railtie.rb
CHANGED
@@ -13,8 +13,14 @@ module Roadie
|
|
13
13
|
# Saying config.assets.enabled here does not work in Rails 3.1-3.2, but
|
14
14
|
# APP.config.assets work. There is a difference between "config" and
|
15
15
|
# "app.config" on those versions.
|
16
|
-
if app.config.respond_to?(:assets) && app.config.assets.enabled != false
|
17
|
-
|
16
|
+
if app.config.respond_to?(:assets) && app.config.assets.enabled != false
|
17
|
+
if app.assets
|
18
|
+
config.roadie.asset_providers << AssetPipelineProvider.new(app.assets)
|
19
|
+
else
|
20
|
+
app.config.assets.configure do |env|
|
21
|
+
config.roadie.asset_providers << AssetPipelineProvider.new(env)
|
22
|
+
end
|
23
|
+
end
|
18
24
|
end
|
19
25
|
end
|
20
26
|
end
|
data/lib/roadie/rails/version.rb
CHANGED
data/roadie-rails.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.extra_rdoc_files = %w[README.md Changelog.md LICENSE.txt]
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_dependency "roadie", "
|
22
|
+
spec.add_dependency "roadie", "~> 3.1"
|
23
23
|
spec.add_dependency "railties", ">= 3.0", "< 4.3"
|
24
24
|
|
25
25
|
spec.add_development_dependency "rails", ">= 3.0", "< 4.3"
|
data/spec/integration_spec.rb
CHANGED
@@ -8,21 +8,21 @@ describe "Integrations" do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
[
|
11
|
-
RailsApp.new("Rails 3.0.x", 'rails_30', runner: :script, asset_pipeline: false),
|
11
|
+
RailsApp.new("Rails 3.0.x", 'rails_30', runner: :script, asset_pipeline: false, digests: false),
|
12
12
|
## We do not yet support live-compilation through asset pipeline
|
13
|
-
RailsApp.new("Rails 3.1.x", 'rails_31', runner: :script, asset_pipeline: true),
|
14
|
-
RailsApp.new("Rails 3.2.x", 'rails_32', runner: :script, asset_pipeline: true),
|
15
|
-
RailsApp.new("Rails 4.0.x", 'rails_40', runner: :bin, asset_pipeline: true),
|
16
|
-
RailsApp.new("Rails 4.0.x (without asset pipeline)", 'rails_40_no_pipeline', runner: :bin, asset_pipeline: false),
|
17
|
-
RailsApp.new("Rails 4.
|
18
|
-
RailsApp.new("Rails 4.
|
13
|
+
RailsApp.new("Rails 3.1.x", 'rails_31', runner: :script, asset_pipeline: true, digests: false),
|
14
|
+
RailsApp.new("Rails 3.2.x", 'rails_32', runner: :script, asset_pipeline: true, digests: false),
|
15
|
+
RailsApp.new("Rails 4.0.x", 'rails_40', runner: :bin, asset_pipeline: true, digests: false),
|
16
|
+
RailsApp.new("Rails 4.0.x (without asset pipeline)", 'rails_40_no_pipeline', runner: :bin, asset_pipeline: false, digests: false),
|
17
|
+
RailsApp.new("Rails 4.0.x (precompiled)", 'rails_40_precompiled', runner: :bin, asset_pipeline: true, digests: true),
|
18
|
+
RailsApp.new("Rails 4.1.x", 'rails_41', runner: :bin, asset_pipeline: true, digests: false),
|
19
|
+
RailsApp.new("Rails 4.2.x", 'rails_42', runner: :bin, asset_pipeline: true, digests: false),
|
20
|
+
RailsApp.new("Rails 4.2.x (with sprockets-rails 3)", 'rails_42_sprockets_rails_3', runner: :bin, asset_pipeline: true, digests: true, sprockets3: true),
|
19
21
|
].each do |app|
|
20
22
|
describe "with #{app}" do
|
21
23
|
before { app.reset }
|
22
24
|
|
23
|
-
|
24
|
-
email = app.read_email(:normal_email)
|
25
|
-
|
25
|
+
def validate_email(app, email)
|
26
26
|
expect(email.to).to eq(['example@example.org'])
|
27
27
|
expect(email.from).to eq(['john@example.com'])
|
28
28
|
expect(email).to have(2).parts
|
@@ -36,7 +36,13 @@ describe "Integrations" do
|
|
36
36
|
document = parse_html_in_email(email)
|
37
37
|
expect(document).to have_selector('body h1')
|
38
38
|
|
39
|
-
if app.
|
39
|
+
if app.digested?
|
40
|
+
if app.sprockets3?
|
41
|
+
expected_image_url = 'https://example.app.org/assets/rails-322506f9917889126e81df2833a6eecdf2e394658d53dad347e9882dd4dbf28e.png'
|
42
|
+
else
|
43
|
+
expected_image_url = 'https://example.app.org/assets/rails-231a680f23887d9dd70710ea5efd3c62.png'
|
44
|
+
end
|
45
|
+
elsif app.using_asset_pipeline?
|
40
46
|
expected_image_url = 'https://example.app.org/assets/rails.png'
|
41
47
|
else
|
42
48
|
expected_image_url = 'https://example.app.org/images/rails.png'
|
@@ -48,32 +54,16 @@ describe "Integrations" do
|
|
48
54
|
email.deliver
|
49
55
|
end
|
50
56
|
|
51
|
-
it "
|
52
|
-
|
53
|
-
|
54
|
-
expect(email.to).to eq(['example@example.org'])
|
55
|
-
expect(email.from).to eq(['john@example.com'])
|
56
|
-
expect(email).to have(2).parts
|
57
|
-
|
58
|
-
expect(email.text_part.body.decoded).not_to match(/<.*>/)
|
59
|
-
|
60
|
-
html = email.html_part.body.decoded
|
61
|
-
expect(html).to include '<!DOCTYPE'
|
62
|
-
expect(html).to include '<head'
|
63
|
-
|
64
|
-
document = parse_html_in_email(email)
|
65
|
-
expect(document).to have_selector('body h1')
|
57
|
+
it "inlines styles for multipart emails" do
|
58
|
+
validate_email app, app.read_email(:normal_email)
|
59
|
+
end
|
66
60
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
expected_image_url = 'https://example.app.org/images/rails.png'
|
71
|
-
end
|
72
|
-
expect(document).to have_styling('background' => "url(#{expected_image_url})").at_selector('.image')
|
61
|
+
it "automatically inlines styles with automatic mailer" do
|
62
|
+
validate_email app, app.read_delivered_email(:normal_email)
|
63
|
+
end
|
73
64
|
|
74
|
-
|
75
|
-
|
76
|
-
email.deliver
|
65
|
+
it "automatically inlines styles with automatic mailer and forced delivery" do
|
66
|
+
validate_email app, app.read_delivered_email(:normal_email, force_delivery: true)
|
77
67
|
end
|
78
68
|
|
79
69
|
it "inlines no styles when roadie_options are nil" do
|
@@ -91,7 +81,7 @@ describe "Integrations" do
|
|
91
81
|
email.deliver
|
92
82
|
end
|
93
83
|
|
94
|
-
if app.using_asset_pipeline?
|
84
|
+
if app.using_asset_pipeline? || app.digested?
|
95
85
|
it "has a AssetPipelineProvider together with a FilesystemProvider" do
|
96
86
|
expect(app.read_providers).to eq(%w[Roadie::FilesystemProvider Roadie::Rails::AssetPipelineProvider])
|
97
87
|
end
|
@@ -102,34 +92,4 @@ describe "Integrations" do
|
|
102
92
|
end
|
103
93
|
end
|
104
94
|
end
|
105
|
-
|
106
|
-
describe "with precompiled assets" do
|
107
|
-
let(:app) {
|
108
|
-
RailsApp.new("Rails 4.0.x (precompiled)", 'rails_40_precompiled', runner: :bin, asset_pipeline: false)
|
109
|
-
}
|
110
|
-
|
111
|
-
before { app.reset }
|
112
|
-
|
113
|
-
let(:document) do
|
114
|
-
parse_html_in_email app.read_email(:normal_email)
|
115
|
-
end
|
116
|
-
|
117
|
-
# It still has an AssetPipelineProvider in case some asset isn't
|
118
|
-
# precompiled, or the user want to combine. As long as the user is using
|
119
|
-
# the correct asset helpers a precompiled asset will be picked up by the
|
120
|
-
# FilesystemProvider.
|
121
|
-
it "has a AssetPipelineProvider together with a FilesystemProvider" do
|
122
|
-
expect(app.read_providers).to eq(%w[Roadie::FilesystemProvider Roadie::Rails::AssetPipelineProvider])
|
123
|
-
end
|
124
|
-
|
125
|
-
it "inlines the precompiled stylesheet" do
|
126
|
-
# Precompiled version has green color; the file in app/assets have red
|
127
|
-
expect(document).to have_styling('background-color' => 'green').at_selector('body')
|
128
|
-
end
|
129
|
-
|
130
|
-
it "inlines images with digests" do
|
131
|
-
image_url = "https://example.app.org/assets/rails-231a680f23887d9dd70710ea5efd3c62.png"
|
132
|
-
expect(document).to have_styling('background' => "url(#{image_url})").at_selector('.image')
|
133
|
-
end
|
134
|
-
end
|
135
95
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
2
|
+
#
|
3
|
+
# If you find yourself ignoring temporary files generated by your text editor
|
4
|
+
# or operating system, you probably want to add a global ignore instead:
|
5
|
+
# git config --global core.excludesfile '~/.gitignore_global'
|
6
|
+
|
7
|
+
# Ignore bundler config.
|
8
|
+
/.bundle
|
9
|
+
|
10
|
+
# Ignore the default SQLite database.
|
11
|
+
/db/*.sqlite3
|
12
|
+
/db/*.sqlite3-journal
|
13
|
+
|
14
|
+
# Ignore all logfiles and tempfiles.
|
15
|
+
/log/*.log
|
16
|
+
/tmp
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require "action_controller/railtie"
|
4
|
+
require "action_mailer/railtie"
|
5
|
+
require "sprockets/railtie"
|
6
|
+
|
7
|
+
Bundler.require(:default, Rails.env)
|
8
|
+
|
9
|
+
module Rails42
|
10
|
+
class Application < Rails::Application
|
11
|
+
config.roadie.url_options = {host: 'example.app.org'}
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
Rails42::Application.configure do
|
2
|
+
config.cache_classes = false
|
3
|
+
config.eager_load = false
|
4
|
+
config.consider_all_requests_local = true
|
5
|
+
config.action_controller.perform_caching = false
|
6
|
+
config.action_mailer.raise_delivery_errors = false
|
7
|
+
config.active_support.deprecation = :log
|
8
|
+
config.assets.debug = true
|
9
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Rails.application.config.assets.precompile += %w( email.css )
|
@@ -0,0 +1 @@
|
|
1
|
+
Rails42::Application.config.secret_key_base = '4fc45a45fecece06ff370f3271d9c2f29cdd0b029bde255d77318418e5066681d42c706f5e504b9298f2b5ccbd2c013c39d474e6521ef4c4f056b1368ce22c8f'
|
@@ -0,0 +1 @@
|
|
1
|
+
Rails42::Application.config.session_store :cookie_store, key: '_rails_42_session'
|
data/spec/support/rails_app.rb
CHANGED
@@ -4,11 +4,15 @@ class RailsApp
|
|
4
4
|
@path = File.expand_path("../../railsapps/#{path}", __FILE__)
|
5
5
|
@runner = options.fetch(:runner)
|
6
6
|
@using_asset_pipeline = options.fetch(:asset_pipeline)
|
7
|
+
@digests = options.fetch(:digests)
|
8
|
+
@sprockets3 = options[:sprockets3]
|
7
9
|
reset
|
8
10
|
end
|
9
11
|
|
10
12
|
def to_s() @name end
|
11
13
|
def using_asset_pipeline?() @using_asset_pipeline end
|
14
|
+
def digested?() @digests end
|
15
|
+
def sprockets3?() @sprockets3 end
|
12
16
|
|
13
17
|
def read_email(mail_name)
|
14
18
|
result = run("puts Mailer.#{mail_name}.to_s")
|
@@ -16,8 +20,9 @@ class RailsApp
|
|
16
20
|
Mail.read_from_string(result)
|
17
21
|
end
|
18
22
|
|
19
|
-
def read_delivered_email(mail_name)
|
20
|
-
|
23
|
+
def read_delivered_email(mail_name, options = {})
|
24
|
+
deliver = options[:force_delivery] ? "deliver!" : "deliver"
|
25
|
+
result = run("mail = AutoMailer.#{mail_name}; mail.delivery_method(:test); mail.#{deliver}; puts mail.to_s")
|
21
26
|
raise "No email returned. Did the rails application crash?" if result.strip.empty?
|
22
27
|
Mail.read_from_string(result)
|
23
28
|
end
|
metadata
CHANGED
@@ -1,35 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roadie-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Magnus Bergmark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: roadie
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 3.1.0.rc1
|
20
|
-
- - "<"
|
17
|
+
- - "~>"
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
19
|
+
version: '3.1'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 3.1.0.rc1
|
30
|
-
- - "<"
|
24
|
+
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
26
|
+
version: '3.1'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: railties
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -258,6 +252,18 @@ files:
|
|
258
252
|
- spec/railsapps/rails_42/config/initializers/secret_token.rb
|
259
253
|
- spec/railsapps/rails_42/config/initializers/session_store.rb
|
260
254
|
- spec/railsapps/rails_42/config/routes.rb
|
255
|
+
- spec/railsapps/rails_42_sprockets_rails_3/.gitignore
|
256
|
+
- spec/railsapps/rails_42_sprockets_rails_3/Gemfile
|
257
|
+
- spec/railsapps/rails_42_sprockets_rails_3/bin/rails
|
258
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config.ru
|
259
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/application.rb
|
260
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/boot.rb
|
261
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/environment.rb
|
262
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/environments/development.rb
|
263
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/initializers/assets.rb
|
264
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/initializers/secret_token.rb
|
265
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/initializers/session_store.rb
|
266
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/routes.rb
|
261
267
|
- spec/railsapps/shared/all/app/mailers/auto_mailer.rb
|
262
268
|
- spec/railsapps/shared/all/app/mailers/mailer.rb
|
263
269
|
- spec/railsapps/shared/all/app/views/mailer/normal_email.html.erb
|
@@ -284,12 +290,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
284
290
|
version: '0'
|
285
291
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
286
292
|
requirements:
|
287
|
-
- - "
|
293
|
+
- - ">="
|
288
294
|
- !ruby/object:Gem::Version
|
289
|
-
version:
|
295
|
+
version: '0'
|
290
296
|
requirements: []
|
291
297
|
rubyforge_project:
|
292
|
-
rubygems_version: 2.
|
298
|
+
rubygems_version: 2.2.2
|
293
299
|
signing_key:
|
294
300
|
specification_version: 4
|
295
301
|
summary: Making HTML emails comfortable for the Rails rockstars
|
@@ -394,6 +400,18 @@ test_files:
|
|
394
400
|
- spec/railsapps/rails_42/config/initializers/secret_token.rb
|
395
401
|
- spec/railsapps/rails_42/config/initializers/session_store.rb
|
396
402
|
- spec/railsapps/rails_42/config/routes.rb
|
403
|
+
- spec/railsapps/rails_42_sprockets_rails_3/.gitignore
|
404
|
+
- spec/railsapps/rails_42_sprockets_rails_3/Gemfile
|
405
|
+
- spec/railsapps/rails_42_sprockets_rails_3/bin/rails
|
406
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config.ru
|
407
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/application.rb
|
408
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/boot.rb
|
409
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/environment.rb
|
410
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/environments/development.rb
|
411
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/initializers/assets.rb
|
412
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/initializers/secret_token.rb
|
413
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/initializers/session_store.rb
|
414
|
+
- spec/railsapps/rails_42_sprockets_rails_3/config/routes.rb
|
397
415
|
- spec/railsapps/shared/all/app/mailers/auto_mailer.rb
|
398
416
|
- spec/railsapps/shared/all/app/mailers/mailer.rb
|
399
417
|
- spec/railsapps/shared/all/app/views/mailer/normal_email.html.erb
|