sprite 0.1.3 → 0.1.4
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/VERSION +1 -1
- data/lib/sprite/styles.rb +2 -2
- data/lib/sprite/styles/sass_mixin_generator.rb +17 -32
- data/lib/sprite/styles/sass_yml_generator.rb +54 -0
- data/sprite.gemspec +2 -2
- metadata +2 -2
- data/lib/sprite/styles/sass_if_generator.rb +0 -39
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
data/lib/sprite/styles.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'sprite/styles/sass_generator'
|
2
2
|
require 'sprite/styles/css_generator'
|
3
|
+
require 'sprite/styles/sass_yml_generator'
|
3
4
|
require 'sprite/styles/sass_mixin_generator'
|
4
|
-
require 'sprite/styles/sass_if_generator'
|
5
5
|
|
6
6
|
module Sprite::Styles
|
7
7
|
GENERATORS = {
|
8
8
|
"css" => "CssGenerator",
|
9
9
|
"sass" => "SassGenerator",
|
10
10
|
"sass_mixin" => "SassMixinGenerator",
|
11
|
-
"
|
11
|
+
"sass_yml" => "SassYmlGenerator"
|
12
12
|
}
|
13
13
|
|
14
14
|
def self.get(config)
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'yaml'
|
2
1
|
module Sprite
|
3
2
|
module Styles
|
4
3
|
# renders a yml file that is later parsed by a sass extension when generating the mixins
|
@@ -7,44 +6,30 @@ module Sprite
|
|
7
6
|
@builder = builder
|
8
7
|
end
|
9
8
|
|
10
|
-
def write(path, sprite_files)
|
11
|
-
# build the yml file
|
12
|
-
config_location = write_config(path, sprite_files)
|
13
|
-
|
9
|
+
def write(path, sprite_files)
|
14
10
|
# write the sass mixins to disk
|
15
11
|
File.open(File.join(Sprite.root, path), 'w') do |f|
|
16
|
-
|
17
|
-
|
12
|
+
add_else = false
|
13
|
+
|
18
14
|
f.puts "= sprite(!group_name, !image_name)"
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
if sprite[:group]
|
33
|
-
result[sprite[:group]] ||= {}
|
34
|
-
result[sprite[:group]][sprite[:name]] = sprite
|
15
|
+
sprite_files.each do |sprite_file, sprites|
|
16
|
+
sprites.each do |sprite|
|
17
|
+
|
18
|
+
f << " @"
|
19
|
+
if add_else
|
20
|
+
f << "else "
|
21
|
+
end
|
22
|
+
add_else = true
|
23
|
+
|
24
|
+
f.puts %{if !group_name == "#{sprite[:group]}" and !image_name == "#{sprite[:name]}"}
|
25
|
+
f.puts " background: url('/#{@builder.config['image_output_path']}#{sprite_file}') no-repeat #{sprite[:x]}px #{sprite[:y]}px"
|
26
|
+
f.puts " width: #{sprite[:width]}px"
|
27
|
+
f.puts " height: #{sprite[:height]}px"
|
35
28
|
end
|
36
29
|
end
|
37
30
|
end
|
38
|
-
|
39
|
-
# write the config yml to disk
|
40
|
-
config_path = path.gsub(".sass", ".yml")
|
41
|
-
File.open(File.join(Sprite.root, config_path), 'w') do |f|
|
42
|
-
YAML.dump(result, f)
|
43
|
-
end
|
44
|
-
|
45
|
-
config_path
|
46
31
|
end
|
47
|
-
|
32
|
+
|
48
33
|
def extension
|
49
34
|
"sass"
|
50
35
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
module Sprite
|
3
|
+
module Styles
|
4
|
+
# renders a yml file that is later parsed by a sass extension when generating the mixins
|
5
|
+
class SassYmlGenerator
|
6
|
+
def initialize(builder)
|
7
|
+
@builder = builder
|
8
|
+
end
|
9
|
+
|
10
|
+
def write(path, sprite_files)
|
11
|
+
# build the yml file
|
12
|
+
config_location = write_config(path, sprite_files)
|
13
|
+
|
14
|
+
# write the sass mixins to disk
|
15
|
+
File.open(File.join(Sprite.root, path), 'w') do |f|
|
16
|
+
f.puts "!sprite_data = '#{config_location}'"
|
17
|
+
f.puts ""
|
18
|
+
f.puts "= sprite(!group_name, !image_name)"
|
19
|
+
f.puts " background= sprite_background(!group_name, !image_name)"
|
20
|
+
f.puts " width= sprite_width(!group_name, !image_name)"
|
21
|
+
f.puts " height= sprite_height(!group_name, !image_name)"
|
22
|
+
f.puts ""
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# write the sprite configuration file (used by the yml extension)
|
27
|
+
def write_config(path, sprite_files)
|
28
|
+
# build a grouped hash with all the sprites in it
|
29
|
+
result = {}
|
30
|
+
sprite_files.each do |sprite_file, sprites|
|
31
|
+
sprites.each do |sprite|
|
32
|
+
if sprite[:group]
|
33
|
+
result[sprite[:group]] ||= {}
|
34
|
+
result[sprite[:group]][sprite[:name]] = sprite
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# write the config yml to disk
|
40
|
+
config_path = path.gsub(".sass", ".yml")
|
41
|
+
File.open(File.join(Sprite.root, config_path), 'w') do |f|
|
42
|
+
YAML.dump(result, f)
|
43
|
+
end
|
44
|
+
|
45
|
+
config_path
|
46
|
+
end
|
47
|
+
|
48
|
+
def extension
|
49
|
+
"sass"
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/sprite.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sprite}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jacques Crocker", "Richard Huang"]
|
@@ -31,8 +31,8 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/sprite/styles.rb",
|
32
32
|
"lib/sprite/styles/css_generator.rb",
|
33
33
|
"lib/sprite/styles/sass_generator.rb",
|
34
|
-
"lib/sprite/styles/sass_if_generator.rb",
|
35
34
|
"lib/sprite/styles/sass_mixin_generator.rb",
|
35
|
+
"lib/sprite/styles/sass_yml_generator.rb",
|
36
36
|
"rails/init.rb",
|
37
37
|
"sprite.gemspec",
|
38
38
|
"tasks/sprite_tasks.rake"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacques Crocker
|
@@ -36,8 +36,8 @@ files:
|
|
36
36
|
- lib/sprite/styles.rb
|
37
37
|
- lib/sprite/styles/css_generator.rb
|
38
38
|
- lib/sprite/styles/sass_generator.rb
|
39
|
-
- lib/sprite/styles/sass_if_generator.rb
|
40
39
|
- lib/sprite/styles/sass_mixin_generator.rb
|
40
|
+
- lib/sprite/styles/sass_yml_generator.rb
|
41
41
|
- rails/init.rb
|
42
42
|
- sprite.gemspec
|
43
43
|
- tasks/sprite_tasks.rake
|
@@ -1,39 +0,0 @@
|
|
1
|
-
module Sprite
|
2
|
-
module Styles
|
3
|
-
# renders a yml file that is later parsed by a sass extension when generating the mixins
|
4
|
-
class SassIfGenerator
|
5
|
-
def initialize(builder)
|
6
|
-
@builder = builder
|
7
|
-
end
|
8
|
-
|
9
|
-
def write(path, sprite_files)
|
10
|
-
# write the sass mixins to disk
|
11
|
-
File.open(File.join(Sprite.root, path), 'w') do |f|
|
12
|
-
add_else = false
|
13
|
-
|
14
|
-
f.puts "= sprite(!group_name, !image_name)"
|
15
|
-
sprite_files.each do |sprite_file, sprites|
|
16
|
-
sprites.each do |sprite|
|
17
|
-
|
18
|
-
f << " @"
|
19
|
-
if add_else
|
20
|
-
f << "else "
|
21
|
-
end
|
22
|
-
add_else = true
|
23
|
-
|
24
|
-
f.puts %{if !group_name == "#{sprite[:group]}" and !image_name == "#{sprite[:name]}"}
|
25
|
-
f.puts " background: url('/#{@builder.config['image_output_path']}#{sprite_file}') no-repeat #{sprite[:x]}px #{sprite[:y]}px"
|
26
|
-
f.puts " width: #{sprite[:width]}px"
|
27
|
-
f.puts " height: #{sprite[:height]}px"
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def extension
|
34
|
-
"sass"
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|