inline_styles_mailer 0.0.2 → 0.0.3

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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## v0.0.3
2
+
3
+ Now copes with .sass and .css files (as well as .scss).
4
+
1
5
  ## v0.0.2
2
6
 
3
7
  Documentation changes only.
data/README.md CHANGED
@@ -46,9 +46,11 @@ class FooMailer < ActionMailer::Base
46
46
  end
47
47
  ```
48
48
 
49
- The location of that file (<code>app/assets/stylesheets/</code>), and the fact that it uses [SASS](http://sass-lang.com/) is fixed at this time.
49
+ The location of that file (<code>app/assets/stylesheets/</code>) is fixed. It will use one of three preprocessing methods based on the filename:
50
50
 
51
- <strong>TODO</strong>: get it to work out what sort of preprocessing, if any, to do based on the filename.
51
+ * .scss
52
+ * .sass
53
+ * .css (i.e. no preprocessing at all)
52
54
 
53
55
  ## Development
54
56
 
@@ -1,3 +1,3 @@
1
1
  module InlineStylesMailer
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -23,15 +23,20 @@ module InlineStylesMailer
23
23
  end
24
24
 
25
25
  def css_content
26
- puts "#{`pwd`}"
27
26
  @stylesheets ||= ["_#{self.name.underscore}"]
28
27
  @css_content ||= @stylesheets.map {|stylesheet|
29
28
  file = locate_css_file(stylesheet)
30
29
  if File.exist?(file)
31
- puts "Processing #{file}"
32
- Sass::Engine.new(File.read(file), syntax: :scss).render
30
+ case file
31
+ when /\.scss$/
32
+ Sass::Engine.new(File.read(file), syntax: :scss).render
33
+ when /\.sass$/
34
+ Sass::Engine.new(File.read(file), syntax: :sass).render
35
+ else
36
+ # Plain old CSS? Let's assume it is.
37
+ File.read(file)
38
+ end
33
39
  else
34
- puts "Skipping #{file}"
35
40
  nil
36
41
  end
37
42
  }.compact.join
@@ -45,6 +50,12 @@ module InlineStylesMailer
45
50
  @page ||= InlineStyles::Page.new.with_css(css_content)
46
51
  end
47
52
 
53
+ # For testing
54
+ def reset
55
+ @css_content = nil
56
+ @page = nil
57
+ end
58
+
48
59
  end
49
60
 
50
61
  def mail(options, &block)
@@ -0,0 +1,6 @@
1
+ body {
2
+ background: yellow;
3
+ }
4
+ body p {
5
+ color: red;
6
+ }
@@ -0,0 +1,6 @@
1
+ body
2
+ :background yellow
3
+ p
4
+ :color red
5
+
6
+
@@ -3,13 +3,45 @@ require 'foo_mailer'
3
3
  require 'rails/all'
4
4
 
5
5
  describe InlineStylesMailer do
6
-
7
- it "should instantiate FooMailer" do
8
- FooMailer.should_receive(:locate_css_file).and_return(File.join("spec", "fixtures", "assets", "stylesheets", "_foo_mailer.css.scss"))
6
+ before(:each) do
7
+ FooMailer.reset
9
8
  Rails.should_receive(:root).any_number_of_times.and_return(Pathname.new(File.join("spec", "fixtures")))
10
- mail = FooMailer.foo
11
- mail.body.should =~ /<p style="color: red;">Testing foo\.<\/p>/
12
- mail.body.should =~ /<body style="background: yellow;">/
9
+ end
10
+
11
+ context "SCSS preprocessing" do
12
+ before(:each) do
13
+ file = File.join("spec", "fixtures", "assets", "stylesheets", "_foo_mailer.css.scss")
14
+ FooMailer.should_receive(:locate_css_file).and_return(file)
15
+ end
16
+ it "should inline the CSS" do
17
+ mail = FooMailer.foo
18
+ mail.body.should =~ /<p style="color: red;">Testing foo\.<\/p>/
19
+ mail.body.should =~ /<body style="background: yellow;">/
20
+ end
21
+ end
22
+
23
+ context "SASS preprocessing" do
24
+ before(:each) do
25
+ file = File.join("spec", "fixtures", "assets", "stylesheets", "_foo_mailer.css.sass")
26
+ FooMailer.should_receive(:locate_css_file).and_return(file)
27
+ end
28
+ it "should inline the CSS" do
29
+ mail = FooMailer.foo
30
+ mail.body.should =~ /<p style="color: red;">Testing foo\.<\/p>/
31
+ mail.body.should =~ /<body style="background: yellow;">/
32
+ end
33
+ end
34
+
35
+ context "No preprocessing (plain old CSS)" do
36
+ before(:each) do
37
+ file = File.join("spec", "fixtures", "assets", "stylesheets", "_foo_mailer.css")
38
+ FooMailer.should_receive(:locate_css_file).and_return(file)
39
+ end
40
+ it "should inline the CSS" do
41
+ mail = FooMailer.foo
42
+ mail.body.should =~ /<p style="color: red;">Testing foo\.<\/p>/
43
+ mail.body.should =~ /<body style="background: yellow;">/
44
+ end
13
45
  end
14
46
 
15
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inline_styles_mailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-12-06 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70359248851080 !ruby/object:Gem::Requirement
16
+ requirement: &70232207558180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70359248851080
24
+ version_requirements: *70232207558180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: inline_styles
27
- requirement: &70359248840280 !ruby/object:Gem::Requirement
27
+ requirement: &70232207556740 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70359248840280
35
+ version_requirements: *70232207556740
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rails
38
- requirement: &70359248839080 !ruby/object:Gem::Requirement
38
+ requirement: &70232207555480 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '3.1'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70359248839080
46
+ version_requirements: *70232207555480
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: sass-rails
49
- requirement: &70359248838200 !ruby/object:Gem::Requirement
49
+ requirement: &70232207554600 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70359248838200
57
+ version_requirements: *70232207554600
58
58
  description: Convenient use of inline_styles gem with Rails 3.1
59
59
  email:
60
60
  - bill@logicalcobwebs.com
@@ -73,6 +73,8 @@ files:
73
73
  - inline_styles_mailer.gemspec
74
74
  - lib/inline_styles_mailer.rb
75
75
  - lib/inline_styles_mailer/version.rb
76
+ - spec/fixtures/assets/stylesheets/_foo_mailer.css
77
+ - spec/fixtures/assets/stylesheets/_foo_mailer.css.sass
76
78
  - spec/fixtures/assets/stylesheets/_foo_mailer.css.scss
77
79
  - spec/fixtures/layout.html.erb
78
80
  - spec/fixtures/views/foo_mailer/foo.html
@@ -94,7 +96,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
94
96
  version: '0'
95
97
  segments:
96
98
  - 0
97
- hash: -2803439903542406270
99
+ hash: 1465499495019503480
98
100
  required_rubygems_version: !ruby/object:Gem::Requirement
99
101
  none: false
100
102
  requirements:
@@ -103,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
105
  version: '0'
104
106
  segments:
105
107
  - 0
106
- hash: -2803439903542406270
108
+ hash: 1465499495019503480
107
109
  requirements: []
108
110
  rubyforge_project: inline_styles_mailer
109
111
  rubygems_version: 1.8.10
@@ -111,6 +113,8 @@ signing_key:
111
113
  specification_version: 3
112
114
  summary: Convenient use of inline_styles gem with Rails 3.1
113
115
  test_files:
116
+ - spec/fixtures/assets/stylesheets/_foo_mailer.css
117
+ - spec/fixtures/assets/stylesheets/_foo_mailer.css.sass
114
118
  - spec/fixtures/assets/stylesheets/_foo_mailer.css.scss
115
119
  - spec/fixtures/layout.html.erb
116
120
  - spec/fixtures/views/foo_mailer/foo.html