css_image_embedder 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest CHANGED
@@ -1,12 +1,14 @@
1
1
  CHANGELOG.rdoc
2
2
  Gemfile
3
3
  LICENCE
4
- Manifest
5
4
  README.md
6
5
  Rakefile
6
+ css_image_embedder.gemspec
7
7
  init.rb
8
8
  lib/css_image_embedder.rb
9
+ lib/css_image_embedder/compressor.rb
9
10
  lib/css_image_embedder/converter.rb
11
+ lib/css_image_embedder/engine.rb
10
12
  lib/css_image_embedder/exception.rb
11
13
  lib/css_image_embedder/helper.rb
12
14
  spec/css_image_embedder_spec.rb
@@ -21,3 +23,4 @@ spec/files/std_converted.css
21
23
  spec/files/too_big.css
22
24
  spec/files/too_big.jpg
23
25
  spec/spec_helper.rb
26
+ Manifest
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # CSS Image Embedder
2
2
 
3
- Css Image Embedder puts your background files directly into corresponding CSS file. Thanks to that - your server needs to handle fewer requests and the page layout renders smoothly (whole stylesheet at once).
3
+ Css Image Embedder puts your background files directly into corresponding CSS file. Thanks to this - your server needs to handle fewer requests and the page layout renders smoothly (whole stylesheet at once).
4
4
 
5
5
  ## INSTALL
6
6
 
@@ -8,6 +8,8 @@ Css Image Embedder puts your background files directly into corresponding CSS fi
8
8
 
9
9
  # USAGE
10
10
 
11
+ ## Rails 3.0
12
+
11
13
  Add gem to your gemfile:
12
14
 
13
15
  gem 'css_image_embedder'
@@ -18,11 +20,19 @@ and then you will gain a helper method called `image_embed_stylesheet_link_tag`.
18
20
 
19
21
  method will act the same way as `stylesheet_link_tag`. Also - you will not see any effect in development environment (except when you turn caching on).
20
22
 
23
+ ## Rails 3.1
24
+
25
+ In environments/production.rb:
26
+
27
+ config.assets.css_compressor = CssImageEmbedder::Compressor.new(File.join(Rails.root, 'public'))
28
+
21
29
  ## Disadvantages
22
30
 
23
31
  Css Image Embedder has one major disadvantage. Files converted into base64 are approximately 30% bigger then normal, so when you embed them into CSS file, the total size of CSS with backgrounds will not be equal to sum of CSS file and backgrounds files. However, if you use gzip compression on your server - it will compress CSS file and the total size will be approximately equal. So just turn gzip compression on :)
24
32
  ## Example
25
33
 
34
+ ### Rails 3.0 (and probably 2.3.7 ;) )
35
+
26
36
  Suppose we have two backgrounds: `bg1.png` and `bg2.jpg` and two CSS files (each for background declaration): `first.css` and `second.css`.
27
37
 
28
38
  The background declarations will be normal. You don't need to do anything special in your CSS files. So lets take `first.css`:
@@ -42,6 +52,11 @@ Now lets just use them in our layout:
42
52
 
43
53
  This will produce nice `cached_stylesheet` with both background images embedded directly into cached CSS file.
44
54
 
55
+ ### Rails 3.1
56
+
57
+ We set up CssImageEmbedder::Compressor as a css compressor and... thats all :)
58
+
59
+ config.assets.css_compressor = CssImageEmbedder::Compressor.new(File.join(Rails.root, 'public'))
45
60
 
46
61
  ## Note on Patches/Pull Requests
47
62
 
data/Rakefile CHANGED
@@ -1,12 +1,14 @@
1
+ require 'psych'
1
2
  require 'rubygems'
2
3
  require 'rake'
3
4
  require 'echoe'
4
5
 
5
- Echoe.new('css_image_embedder', '0.1.2') do |p|
6
+ Echoe.new('css_image_embedder', '0.2.0') do |p|
6
7
  p.description = "Css Image Embedder puts your background files directly into corresponding CSS file. Thanks to that - your server needs to handle fewer requests and the page layout renders smoothly (whole stylesheet at once)."
7
8
  p.url = "https://github.com/mensfeld/Css-Image-Embedder"
8
9
  p.author = "Maciej Mensfeld"
9
10
  p.email = "maciej@mensfeld.pl"
10
11
  p.ignore_pattern = ["tmp/*", "script/*"]
11
12
  p.development_dependencies = ["rspec >=2.0.0", "rails"]
13
+ p.dependencies = ["sass"]
12
14
  end
@@ -2,35 +2,36 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{css_image_embedder}
5
- s.version = "0.1.2"
5
+ s.version = "0.2.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Maciej Mensfeld"]
9
- s.cert_chain = ["/home/mencio/.cert_keys/gem-public_cert.pem"]
10
- s.date = %q{2011-04-17}
8
+ s.authors = [%q{Maciej Mensfeld}]
9
+ s.date = %q{2011-08-14}
11
10
  s.description = %q{Css Image Embedder puts your background files directly into corresponding CSS file. Thanks to that - your server needs to handle fewer requests and the page layout renders smoothly (whole stylesheet at once).}
12
11
  s.email = %q{maciej@mensfeld.pl}
13
- s.extra_rdoc_files = ["CHANGELOG.rdoc", "README.md", "lib/css_image_embedder.rb", "lib/css_image_embedder/converter.rb", "lib/css_image_embedder/exception.rb", "lib/css_image_embedder/helper.rb"]
14
- s.files = ["CHANGELOG.rdoc", "Gemfile", "LICENCE", "Manifest", "README.md", "Rakefile", "init.rb", "lib/css_image_embedder.rb", "lib/css_image_embedder/converter.rb", "lib/css_image_embedder/exception.rb", "lib/css_image_embedder/helper.rb", "spec/css_image_embedder_spec.rb", "spec/files/bg.png", "spec/files/bg_base64.png", "spec/files/big_converted.css", "spec/files/file_sources_invalid.css", "spec/files/oneliner.css", "spec/files/oneliner_converted.css", "spec/files/std.css", "spec/files/std_converted.css", "spec/files/too_big.css", "spec/files/too_big.jpg", "spec/spec_helper.rb", "css_image_embedder.gemspec"]
12
+ s.extra_rdoc_files = [%q{CHANGELOG.rdoc}, %q{README.md}, %q{lib/css_image_embedder.rb}, %q{lib/css_image_embedder/compressor.rb}, %q{lib/css_image_embedder/converter.rb}, %q{lib/css_image_embedder/engine.rb}, %q{lib/css_image_embedder/exception.rb}, %q{lib/css_image_embedder/helper.rb}]
13
+ s.files = [%q{CHANGELOG.rdoc}, %q{Gemfile}, %q{LICENCE}, %q{README.md}, %q{Rakefile}, %q{css_image_embedder.gemspec}, %q{init.rb}, %q{lib/css_image_embedder.rb}, %q{lib/css_image_embedder/compressor.rb}, %q{lib/css_image_embedder/converter.rb}, %q{lib/css_image_embedder/engine.rb}, %q{lib/css_image_embedder/exception.rb}, %q{lib/css_image_embedder/helper.rb}, %q{spec/css_image_embedder_spec.rb}, %q{spec/files/bg.png}, %q{spec/files/bg_base64.png}, %q{spec/files/big_converted.css}, %q{spec/files/file_sources_invalid.css}, %q{spec/files/oneliner.css}, %q{spec/files/oneliner_converted.css}, %q{spec/files/std.css}, %q{spec/files/std_converted.css}, %q{spec/files/too_big.css}, %q{spec/files/too_big.jpg}, %q{spec/spec_helper.rb}, %q{Manifest}]
15
14
  s.homepage = %q{https://github.com/mensfeld/Css-Image-Embedder}
16
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Css_image_embedder", "--main", "README.md"]
17
- s.require_paths = ["lib"]
15
+ s.rdoc_options = [%q{--line-numbers}, %q{--inline-source}, %q{--title}, %q{Css_image_embedder}, %q{--main}, %q{README.md}]
16
+ s.require_paths = [%q{lib}]
18
17
  s.rubyforge_project = %q{css_image_embedder}
19
- s.rubygems_version = %q{1.5.2}
20
- s.signing_key = %q{/home/mencio/.cert_keys/gem-private_key.pem}
18
+ s.rubygems_version = %q{1.8.5}
21
19
  s.summary = %q{Css Image Embedder puts your background files directly into corresponding CSS file. Thanks to that - your server needs to handle fewer requests and the page layout renders smoothly (whole stylesheet at once).}
22
20
 
23
21
  if s.respond_to? :specification_version then
24
22
  s.specification_version = 3
25
23
 
26
24
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
25
+ s.add_runtime_dependency(%q<sass>, [">= 0"])
27
26
  s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
28
27
  s.add_development_dependency(%q<rails>, [">= 0"])
29
28
  else
29
+ s.add_dependency(%q<sass>, [">= 0"])
30
30
  s.add_dependency(%q<rspec>, [">= 2.0.0"])
31
31
  s.add_dependency(%q<rails>, [">= 0"])
32
32
  end
33
33
  else
34
+ s.add_dependency(%q<sass>, [">= 0"])
34
35
  s.add_dependency(%q<rspec>, [">= 2.0.0"])
35
36
  s.add_dependency(%q<rails>, [">= 0"])
36
37
  end
@@ -0,0 +1,21 @@
1
+ # Css Image Embedder connected with SASS CSS compressor
2
+ # Used to minimize CSS and then embed into it base64 images
3
+
4
+ require 'sass'
5
+
6
+ module CssImageEmbedder
7
+ class Compressor
8
+
9
+ # img_root - root of imgs position ( public/ in Rails)
10
+ # img_max_size - maximum file size (in kb) - bigger will not be embedded
11
+ def initialize(img_root, img_max_size = 32)
12
+ @img_root = img_root
13
+ @img_max_size = img_max_size
14
+ end
15
+
16
+ def compress(string)
17
+ engine = Sass::Engine.new(string, :syntax => :scss, :style => :compressed)
18
+ CssImageEmbedder::Engine.new(@img_root, @img_max_size).compress(engine.render)
19
+ end
20
+ end
21
+ end
@@ -2,13 +2,13 @@
2
2
 
3
3
  # Converts CSS files - it will embed any img file attached as background
4
4
  # background: url(...)... --> (base64) --> url(data:image/png;base64,...)
5
- # Domyślnie osadza w CSSie tylko pliki mniejsze niz 32kb
5
+ # By default will embed only images smaller then 32kb
6
6
 
7
- require 'base64'
8
7
  module CssImageEmbedder
8
+
9
9
  class Converter
10
10
  # IE does not accept embed files bigger then 32kb
11
- DEFAULT_MAX_IMG_SIZE = 32*1024
11
+ DEFAULT_MAX_IMG_SIZE = 32
12
12
 
13
13
  attr_reader :result
14
14
 
@@ -36,23 +36,7 @@ module CssImageEmbedder
36
36
 
37
37
  # Performe converting
38
38
  def convert
39
- if elements = pull
40
- source = @source
41
- elements.each do |el|
42
- file_base64 = File.join(@root_path, el[:converted_path])
43
- file_ext = el[:converted_path].split('.').last
44
- begin
45
- next if File.size?(file_base64) > @img_max_size
46
- file_base64 = self.class.file_to_base64(file_base64)
47
- source.gsub!(el[:original_url], "url(data:image/#{file_ext.downcase};base64,#{file_base64})")
48
- rescue
49
- next
50
- end
51
- end
52
- @result = source
53
- else
54
- @result = @source
55
- end
39
+ @result = CssImageEmbedder::Engine.new(@root_path, @img_max_size).compress(@source)
56
40
  end
57
41
 
58
42
  # Saves converted result to file
@@ -73,46 +57,8 @@ module CssImageEmbedder
73
57
  save(filename)
74
58
  end
75
59
 
76
- # Convert to base64 without new lines
77
- def self.file_to_base64(path)
78
- str = File.open(path, 'r') { |file| file.read }
79
- Base64.encode64(str).gsub("\n", '')
80
- end
81
-
82
- private
83
-
84
- # Pulls out files paths from url(smthng)
85
- # Returns an array containing:
86
- # - original path (./images/smthng.png)
87
- # - converted path (/images/smthng.png)
88
- # - original url (url(./images/smthng.png))
89
- def pull
90
- # Whole urls including stuff around (url('/images/smthng.png') )
91
- whole_urls = @source.scan(/url\(.+?\)/i)
92
- return nil if whole_urls.count == 0
93
-
94
- img_bg_paths = []
95
- whole_urls.each do |url|
96
- img_bg_paths << url.scan(/url\(\s*["']?([^"']+)["']?\s*\)/i)[0][0]
97
- end
98
- img_bg_paths_original = img_bg_paths.clone
99
-
100
- img_bg_paths.collect! do |img|
101
- img = img.gsub('./', '/')
102
- img = "/#{img}" if img[0] != '/'
103
- img
104
- end
105
-
106
- result = []
107
- img_bg_paths.each_with_index do |el, i|
108
- result <<
109
- {:original_path =>img_bg_paths_original[i],
110
- :converted_path => el,
111
- :original_url => whole_urls[i]
112
- }
113
- end
114
- result.uniq!
115
- result
60
+ def self.file_to_base64(file)
61
+ CssImageEmbedder::Engine.file_to_base64(file)
116
62
  end
117
63
 
118
64
  end
@@ -0,0 +1,78 @@
1
+ require 'base64'
2
+
3
+ # Css image embedder engine - used to embed images into CSS
4
+ module CssImageEmbedder
5
+ class Engine
6
+
7
+ # img_root - root of imgs position ( public/ in Rails)
8
+ # img_max_size - maximum file size (in kb) - bigger will not be embedded
9
+ def initialize(img_root, img_max_size = 32)
10
+ @img_root = img_root
11
+ @img_max_size = img_max_size*1024
12
+ end
13
+
14
+ def compress(string)
15
+ if elements = pull(string)
16
+ source = string
17
+ elements.each do |el|
18
+ file_base64 = File.join(@img_root, el[:converted_path])
19
+ file_ext = el[:converted_path].split('.').last
20
+ begin
21
+ next if File.size?(file_base64) > @img_max_size
22
+ file_base64 = self.class.file_to_base64(file_base64)
23
+ source.gsub!(el[:original_url], "url(data:image/#{file_ext.downcase};base64,#{file_base64})")
24
+ rescue
25
+ next
26
+ end
27
+ end
28
+ @result = source
29
+ else
30
+ @result = string
31
+ end
32
+ end
33
+
34
+ # Convert to base64 without new lines
35
+ def self.file_to_base64(path)
36
+ str = File.open(path, 'r') { |file| file.read }
37
+ Base64.encode64(str).gsub("\n", '')
38
+ end
39
+
40
+
41
+ private
42
+
43
+ # Pulls out files paths from url(smthng)
44
+ # Returns an array containing:
45
+ # - original path (./images/smthng.png)
46
+ # - converted path (/images/smthng.png)
47
+ # - original url (url(./images/smthng.png))
48
+ def pull(css)
49
+ # Whole urls including stuff around (url('/images/smthng.png') )
50
+ whole_urls = css.scan(/url\(.+?\)/i)
51
+ return nil if whole_urls.count == 0
52
+
53
+ img_bg_paths = []
54
+ whole_urls.each do |url|
55
+ img_bg_paths << url.scan(/url\(\s*["']?([^"']+)["']?\s*\)/i)[0][0]
56
+ end
57
+ img_bg_paths_original = img_bg_paths.clone
58
+
59
+ img_bg_paths.collect! do |img|
60
+ img = img.gsub('./', '/')
61
+ img = "/#{img}" if img[0] != '/'
62
+ img
63
+ end
64
+
65
+ result = []
66
+ img_bg_paths.each_with_index do |el, i|
67
+ result <<
68
+ {:original_path =>img_bg_paths_original[i],
69
+ :converted_path => el,
70
+ :original_url => whole_urls[i]
71
+ }
72
+ end
73
+ result.uniq!
74
+ result
75
+ end
76
+
77
+ end
78
+ end
@@ -3,41 +3,42 @@ module CssImageEmbedder
3
3
 
4
4
  module Helper
5
5
 
6
- # Basicly it's just stylesheet_link_tag with one small difference ;)
7
- # Will not test it - Rails guys already did it
8
- def image_embed_stylesheet_link_tag(*sources)
9
- options = sources.extract_options!.stringify_keys
10
- concat = options.delete("concat")
11
- cache = concat || options.delete("cache")
12
- recursive = options.delete("recursive")
13
- root = options.delete("root") || File.join(Rails.root, 'public')
14
- env = options.delete("env") || Rails.env
6
+ if Rails.version.to_s.include?('3.0')
7
+ # Basicly it's just stylesheet_link_tag with one small difference ;)
8
+ # Will not test it - Rails guys already did it
9
+ def image_embed_stylesheet_link_tag(*sources)
10
+ options = sources.extract_options!.stringify_keys
11
+ concat = options.delete("concat")
12
+ cache = concat || options.delete("cache")
13
+ recursive = options.delete("recursive")
14
+ root = options.delete("root") || File.join(Rails.root, 'public')
15
+ env = options.delete("env") || Rails.env
15
16
 
16
- if concat || (config.perform_caching && cache)
17
- joined_stylesheet_name = (cache == true ? "all" : cache) + ".css"
18
- joined_stylesheet_path = File.join(joined_stylesheet_name[/^#{File::SEPARATOR}/] ? config.assets_dir : config.stylesheets_dir, joined_stylesheet_name)
17
+ if concat || (config.perform_caching && cache)
18
+ joined_stylesheet_name = (cache == true ? "all" : cache) + ".css"
19
+ joined_stylesheet_path = File.join(joined_stylesheet_name[/^#{File::SEPARATOR}/] ? config.assets_dir : config.stylesheets_dir, joined_stylesheet_name)
19
20
 
20
- unless config.perform_caching && File.exists?(joined_stylesheet_path)
21
- write_asset_file_contents(joined_stylesheet_path, compute_stylesheet_paths(sources, recursive))
22
- # here's the magic ;)
23
- css = CssImageEmbedder::Converter.new(
24
- :path => joined_stylesheet_path,
25
- :overwrite => true,
26
- :root => root)
27
- css.convert
28
- css.save!
21
+ unless config.perform_caching && File.exists?(joined_stylesheet_path)
22
+ write_asset_file_contents(joined_stylesheet_path, compute_stylesheet_paths(sources, recursive))
23
+ # here's the magic ;)
24
+ css = CssImageEmbedder::Converter.new(
25
+ :path => joined_stylesheet_path,
26
+ :overwrite => true,
27
+ :root => root)
28
+ css.convert
29
+ css.save!
30
+ end
31
+ stylesheet_tag(joined_stylesheet_name, options)
32
+ else
33
+ sources = expand_stylesheet_sources(sources, recursive)
34
+ # When we use SASS and test env - will not work - and will raise
35
+ # exception - that css files does not exist. We make a workaround
36
+ # by not checking sources in test env
37
+ ensure_stylesheet_sources!(sources) if cache && env != 'test'
38
+ sources.collect { |source| stylesheet_tag(source, options) }.join("\n").html_safe
29
39
  end
30
- stylesheet_tag(joined_stylesheet_name, options)
31
- else
32
- sources = expand_stylesheet_sources(sources, recursive)
33
- # When we use SASS and test env - will not work - and will raise
34
- # exception - that css files does not exist. We make a workaround
35
- # by not checking sources in test env
36
- ensure_stylesheet_sources!(sources) if cache && env != 'test'
37
- sources.collect { |source| stylesheet_tag(source, options) }.join("\n").html_safe
38
40
  end
39
41
  end
40
-
41
42
  end # Helper
42
43
 
43
44
  end # Base64CssEmbedder
@@ -2,4 +2,6 @@ path = File.expand_path(File.dirname(__FILE__))
2
2
 
3
3
  require "#{path}/css_image_embedder/exception"
4
4
  require "#{path}/css_image_embedder/helper"
5
+ require "#{path}/css_image_embedder/engine"
5
6
  require "#{path}/css_image_embedder/converter"
7
+ require "#{path}/css_image_embedder/compressor"
@@ -17,6 +17,7 @@ def files_equal?(f1, f2)
17
17
  end
18
18
 
19
19
  describe CssImageEmbedder::Converter do
20
+
20
21
  subject { CssImageEmbedder::Converter }
21
22
 
22
23
  # Should clear all css files created in test
@@ -138,3 +139,30 @@ describe CssImageEmbedder::Converter do
138
139
  end
139
140
 
140
141
  end
142
+
143
+ describe CssImageEmbedder::Compressor do
144
+
145
+ subject { CssImageEmbedder::Compressor }
146
+
147
+ context "when we have a CSS file withount anything special" do
148
+ context "and it is in multiply lines" do
149
+ it "should compress it" do
150
+ s = subject.new(ROOT)
151
+ css = '
152
+ #test { background: #ffffff; }
153
+ #test2 { background: #000000; }
154
+ '
155
+ s.compress(css).should == "#test{background:#ffffff}#test2{background:#000000}\n"
156
+ end
157
+ end
158
+ end
159
+
160
+ context "when we have CSS file without any strange stuff" do
161
+ it "should convert std css file and embed pictures into it" do
162
+ s = subject.new(ROOT)
163
+ sass = Sass::Engine.new(file_content("#{FILES_ROOT}/std_converted.css"), :syntax => :scss, :style => :compressed)
164
+ s.compress(file_content("#{FILES_ROOT}/std.css")).should=== sass.render
165
+ end
166
+ end
167
+
168
+ end
metadata CHANGED
@@ -1,84 +1,76 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: css_image_embedder
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
4
5
  prerelease:
5
- version: 0.1.2
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Maciej Mensfeld
9
9
  autorequire:
10
10
  bindir: bin
11
- cert_chain:
12
- - |
13
- -----BEGIN CERTIFICATE-----
14
- MIIDMjCCAhqgAwIBAgIBADANBgkqhkiG9w0BAQUFADA/MQ8wDQYDVQQDDAZtYWNp
15
- ZWoxGDAWBgoJkiaJk/IsZAEZFghtZW5zZmVsZDESMBAGCgmSJomT8ixkARkWAnBs
16
- MB4XDTExMDQwOTA5NDcyMloXDTEyMDQwODA5NDcyMlowPzEPMA0GA1UEAwwGbWFj
17
- aWVqMRgwFgYKCZImiZPyLGQBGRYIbWVuc2ZlbGQxEjAQBgoJkiaJk/IsZAEZFgJw
18
- bDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL0+nG3V4/exIeiJ0IN+
19
- wVfq8Utcu4Qpo+58EIVMIu3FiK+8w6MBvatZnUrRu12pqWLw9xrUkCiYeRErD+jF
20
- AmdggIM/tu9CcjvURXH7VeTzOVA+pnV+eJWMD61o8HljFVcb/nyEYYVKErtr9/O4
21
- QrIGv5lnszq1PMj2sBMy2gOP1YnzawncMLmkpp/T5SU4JZ5gAktGMRVz8RxmZzF5
22
- 6NVqFLbuqSRSU5U//WJvZVJt8dycCGgQzBM4Vi3nkOWyjIF0BANf1TqnlU2u6s8d
23
- UK1AoDZfg5feef5e8eqoomHebX1opNGM/SOQhu3LRgax4rJfnl6VS3I2wighohsf
24
- AgcCAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4EFgQUGlrWBqxVieAPk7NEzBDp
25
- kM+iAMMwCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEBBQUAA4IBAQAJMoyBaJs8boiz
26
- lFpbw6MWjk+7ZhqoHpFrWEV4nzb5GzyHZ7GU/pa1fSEQR0SCs+LnTLQbAYNQyUTT
27
- O+UsTuA7xzI//v6cSodv3Q9NbfoDlou74xv1NXorWoosQFMpVWrXv+c/1RqU3cq4
28
- WUr+rRiveEXG4tXOwkrpX8KH8xVp2vQZcGw3AXPqhzfqDGzpHd6ws3lk+8HoSrSo
29
- 2L68tDoxraF2Z2toAg9vfFw1+mOeDk1xVIPVcBy3tJxstHfHGHlQuMiRiDQX2b2D
30
- YYU8UWVt2841IwB5Dgl4O+atXhe9ZTBO0W32pl4Bq5CP9lhQRT1KL7sxfznJlF7Y
31
- BH3YFsdk
32
- -----END CERTIFICATE-----
33
-
34
- date: 2011-04-17 00:00:00 +02:00
35
- default_executable:
36
- dependencies:
37
- - !ruby/object:Gem::Dependency
38
- name: rspec
11
+ cert_chain: []
12
+ date: 2011-08-14 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sass
16
+ requirement: &23530700 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
39
23
  prerelease: false
40
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: *23530700
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &23530160 !ruby/object:Gem::Requirement
41
28
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
45
32
  version: 2.0.0
46
33
  type: :development
47
- version_requirements: *id001
48
- - !ruby/object:Gem::Dependency
49
- name: rails
50
34
  prerelease: false
51
- requirement: &id002 !ruby/object:Gem::Requirement
35
+ version_requirements: *23530160
36
+ - !ruby/object:Gem::Dependency
37
+ name: rails
38
+ requirement: &23529740 !ruby/object:Gem::Requirement
52
39
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
57
44
  type: :development
58
- version_requirements: *id002
59
- description: Css Image Embedder puts your background files directly into corresponding CSS file. Thanks to that - your server needs to handle fewer requests and the page layout renders smoothly (whole stylesheet at once).
45
+ prerelease: false
46
+ version_requirements: *23529740
47
+ description: Css Image Embedder puts your background files directly into corresponding
48
+ CSS file. Thanks to that - your server needs to handle fewer requests and the page
49
+ layout renders smoothly (whole stylesheet at once).
60
50
  email: maciej@mensfeld.pl
61
51
  executables: []
62
-
63
52
  extensions: []
64
-
65
- extra_rdoc_files:
53
+ extra_rdoc_files:
66
54
  - CHANGELOG.rdoc
67
55
  - README.md
68
56
  - lib/css_image_embedder.rb
57
+ - lib/css_image_embedder/compressor.rb
69
58
  - lib/css_image_embedder/converter.rb
59
+ - lib/css_image_embedder/engine.rb
70
60
  - lib/css_image_embedder/exception.rb
71
61
  - lib/css_image_embedder/helper.rb
72
- files:
62
+ files:
73
63
  - CHANGELOG.rdoc
74
64
  - Gemfile
75
65
  - LICENCE
76
- - Manifest
77
66
  - README.md
78
67
  - Rakefile
68
+ - css_image_embedder.gemspec
79
69
  - init.rb
80
70
  - lib/css_image_embedder.rb
71
+ - lib/css_image_embedder/compressor.rb
81
72
  - lib/css_image_embedder/converter.rb
73
+ - lib/css_image_embedder/engine.rb
82
74
  - lib/css_image_embedder/exception.rb
83
75
  - lib/css_image_embedder/helper.rb
84
76
  - spec/css_image_embedder_spec.rb
@@ -93,39 +85,37 @@ files:
93
85
  - spec/files/too_big.css
94
86
  - spec/files/too_big.jpg
95
87
  - spec/spec_helper.rb
96
- - css_image_embedder.gemspec
97
- has_rdoc: true
88
+ - Manifest
98
89
  homepage: https://github.com/mensfeld/Css-Image-Embedder
99
90
  licenses: []
100
-
101
91
  post_install_message:
102
- rdoc_options:
92
+ rdoc_options:
103
93
  - --line-numbers
104
94
  - --inline-source
105
95
  - --title
106
96
  - Css_image_embedder
107
97
  - --main
108
98
  - README.md
109
- require_paths:
99
+ require_paths:
110
100
  - lib
111
- required_ruby_version: !ruby/object:Gem::Requirement
101
+ required_ruby_version: !ruby/object:Gem::Requirement
112
102
  none: false
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: "0"
117
- required_rubygems_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ! '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
108
  none: false
119
- requirements:
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- version: "1.2"
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '1.2'
123
113
  requirements: []
124
-
125
114
  rubyforge_project: css_image_embedder
126
- rubygems_version: 1.5.2
115
+ rubygems_version: 1.8.5
127
116
  signing_key:
128
117
  specification_version: 3
129
- summary: Css Image Embedder puts your background files directly into corresponding CSS file. Thanks to that - your server needs to handle fewer requests and the page layout renders smoothly (whole stylesheet at once).
118
+ summary: Css Image Embedder puts your background files directly into corresponding
119
+ CSS file. Thanks to that - your server needs to handle fewer requests and the page
120
+ layout renders smoothly (whole stylesheet at once).
130
121
  test_files: []
131
-
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
Binary file