compass-rmagick-engine 0.0.1 → 0.0.2
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/Readme.md +7 -6
- data/compass-rmagick-engine.gemspec +1 -1
- data/lib/compass-rmagick-engine.rb +19 -12
- data/lib/compass-rmagick-engine/version.rb +1 -1
- data/spec/rmagick_spec.rb +2 -2
- metadata +24 -3
data/Readme.md
CHANGED
@@ -6,15 +6,16 @@ Compass Rmagick Engine is a drop in replacement for creating sprites using chunk
|
|
6
6
|
|
7
7
|
### Rails
|
8
8
|
|
9
|
-
In your gem file add
|
10
|
-
|
11
|
-
1. `gem 'compass-rmagick-engine'`
|
9
|
+
1. In your gem file add `gem 'compass-rmagick-engine', '~> 0.0.1'`
|
12
10
|
2. Add `sprite_engine = :rmagick` to your compass config
|
13
11
|
|
14
12
|
Standalone
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
First run `gem install compass-rmagick-engine`
|
15
|
+
|
16
|
+
Then open your compass config file and add
|
17
|
+
|
18
|
+
require 'compass-rmagick-engine'
|
19
|
+
sprite_engine = :rmagick
|
19
20
|
|
20
21
|
|
@@ -1,33 +1,39 @@
|
|
1
1
|
require 'rmagick'
|
2
|
+
|
2
3
|
module Compass
|
3
4
|
module SassExtensions
|
4
5
|
module Sprites
|
5
|
-
|
6
|
-
|
7
|
-
alias :save :write
|
8
|
-
end
|
9
|
-
|
6
|
+
class RmagickEngine < Compass::SassExtensions::Sprites::Engine
|
7
|
+
|
10
8
|
def construct_sprite
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
@canvas = Magick::Image.new(width, height)
|
10
|
+
@canvas.background_color = 'none'
|
11
|
+
@canvas.format = 'PNG24'
|
14
12
|
images.each do |image|
|
15
13
|
input_png = Magick::Image.read(image.file).first
|
16
14
|
if image.repeat == "no-repeat"
|
17
|
-
|
15
|
+
@canvas = composite_images(@canvas, input_png, image.left, image.top)
|
18
16
|
else
|
19
17
|
x = image.left - (image.left / image.width).ceil * image.width
|
20
18
|
while x < width do
|
21
|
-
|
19
|
+
@canvas = composite_images(@canvas, input_png, x, image.top)
|
22
20
|
x += image.width
|
23
21
|
end
|
24
22
|
end
|
25
23
|
end
|
26
|
-
|
24
|
+
@canvas
|
25
|
+
end
|
26
|
+
|
27
|
+
def save(filename)
|
28
|
+
if canvas.nil?
|
29
|
+
construct_sprite
|
30
|
+
end
|
31
|
+
|
32
|
+
canvas.write(filename)
|
27
33
|
end
|
28
34
|
|
29
35
|
private #===============================================================================>
|
30
|
-
|
36
|
+
|
31
37
|
def composite_images(dest_image, src_image, x, y)
|
32
38
|
width = [src_image.columns + x, dest_image.columns].max
|
33
39
|
height = [src_image.rows + y, dest_image.rows].max
|
@@ -36,6 +42,7 @@ module Compass
|
|
36
42
|
image.composite!(src_image, x, y, Magick::CopyCompositeOp)
|
37
43
|
image
|
38
44
|
end
|
45
|
+
|
39
46
|
end
|
40
47
|
end
|
41
48
|
end
|
data/spec/rmagick_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
require 'compass-rmagick-engine'
|
3
3
|
require 'digest/md5'
|
4
4
|
|
5
|
-
describe Compass::Sprites do
|
5
|
+
describe Compass::SassExtensions::Sprites::RmagickEngine do
|
6
6
|
|
7
7
|
before :each do
|
8
8
|
@images_src_path = File.join(File.dirname(__FILE__), 'test_project', 'public', 'images')
|
@@ -59,7 +59,7 @@ describe Compass::Sprites do
|
|
59
59
|
SCSS
|
60
60
|
css.should == <<-CSS
|
61
61
|
.squares-sprite, .squares-ten-by-ten, .squares-twenty-by-twenty {
|
62
|
-
background: url('/squares-
|
62
|
+
background: url('/squares-s1cd84c9068.png') no-repeat;
|
63
63
|
}
|
64
64
|
|
65
65
|
.squares-ten-by-ten {
|
metadata
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: compass-rmagick-engine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
13
|
- Scott Davis
|
@@ -10,7 +15,7 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2011-
|
18
|
+
date: 2011-06-21 00:00:00 -04:00
|
14
19
|
default_executable:
|
15
20
|
dependencies:
|
16
21
|
- !ruby/object:Gem::Dependency
|
@@ -21,7 +26,12 @@ dependencies:
|
|
21
26
|
requirements:
|
22
27
|
- - ~>
|
23
28
|
- !ruby/object:Gem::Version
|
24
|
-
|
29
|
+
hash: 53
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 11
|
33
|
+
- 3
|
34
|
+
version: 0.11.3
|
25
35
|
type: :runtime
|
26
36
|
version_requirements: *id001
|
27
37
|
- !ruby/object:Gem::Dependency
|
@@ -32,6 +42,11 @@ dependencies:
|
|
32
42
|
requirements:
|
33
43
|
- - ~>
|
34
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 57
|
46
|
+
segments:
|
47
|
+
- 2
|
48
|
+
- 13
|
49
|
+
- 1
|
35
50
|
version: 2.13.1
|
36
51
|
type: :runtime
|
37
52
|
version_requirements: *id002
|
@@ -74,12 +89,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
74
89
|
requirements:
|
75
90
|
- - ">="
|
76
91
|
- !ruby/object:Gem::Version
|
92
|
+
hash: 3
|
93
|
+
segments:
|
94
|
+
- 0
|
77
95
|
version: "0"
|
78
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
97
|
none: false
|
80
98
|
requirements:
|
81
99
|
- - ">="
|
82
100
|
- !ruby/object:Gem::Version
|
101
|
+
hash: 3
|
102
|
+
segments:
|
103
|
+
- 0
|
83
104
|
version: "0"
|
84
105
|
requirements: []
|
85
106
|
|