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 +4 -1
- data/README.md +16 -1
- data/Rakefile +3 -1
- data/css_image_embedder.gemspec +11 -10
- data/lib/css_image_embedder/compressor.rb +21 -0
- data/lib/css_image_embedder/converter.rb +6 -60
- data/lib/css_image_embedder/engine.rb +78 -0
- data/lib/css_image_embedder/helper.rb +31 -30
- data/lib/css_image_embedder.rb +2 -0
- data/spec/css_image_embedder_spec.rb +28 -0
- metadata +60 -70
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
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
|
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.
|
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
|
data/css_image_embedder.gemspec
CHANGED
@@ -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.
|
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 = [
|
9
|
-
s.
|
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 = [
|
14
|
-
s.files = [
|
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 = [
|
17
|
-
s.require_paths = [
|
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
|
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
|
-
#
|
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
|
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
|
-
|
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
|
-
|
77
|
-
|
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
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
17
|
-
|
18
|
-
|
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
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
data/lib/css_image_embedder.rb
CHANGED
@@ -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
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
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
|
-
|
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
|
-
|
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:
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
57
44
|
type: :development
|
58
|
-
|
59
|
-
|
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
|
-
-
|
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:
|
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:
|
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
|
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
|
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
|