Skip to content

Commit 631e354

Browse files
committed
Reorganizing style generators
1 parent 43af5ca commit 631e354

File tree

4 files changed

+92
-79
lines changed

4 files changed

+92
-79
lines changed

lib/sprite/styles.rb

Lines changed: 4 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
require 'sprite/styles/sass_generator'
2+
require 'sprite/styles/css_generator'
3+
require 'sprite/styles/sass_mixin_generator'
4+
15
module Sprite::Styles
26
GENERATORS = {
37
"css" => "CssGenerator",
@@ -10,84 +14,5 @@ def self.get(config)
1014
rescue
1115
CssGenerator
1216
end
13-
14-
# renders standard css style rules
15-
class CssGenerator
16-
def initialize(builder)
17-
@builder = builder
18-
end
19-
20-
def generate(sprite_files)
21-
output = ""
22-
23-
# set up class_name to append to each rule
24-
sprites_class = @builder.config['sprites_class'] ? ".#{@builder.config['sprites_class']}" : ""
25-
26-
# write stylesheet file to disk
27-
sprite_files.each do |sprite_file, sprites|
28-
sprites.each do |sprite|
29-
output << "#{sprites_class}.#{sprite[:group]}#{@builder.config['class_separator']}#{sprite[:name]} {\n"
30-
output << " background: url(http://github.com/'/%3Cspan%20class=pl-s1%3E%3Cspan%20class=pl-kos%3E#{%3C/span%3E%3Cspan%20class=pl-c1%3E@builder%3C/span%3E%3Cspan%20class=pl-kos%3E.%3C/span%3E%3Cspan%20class=pl-en%3Econfig%3C/span%3E%3Cspan%20class=pl-kos%3E[%3C/span%3E%3Cspan%20class=pl-s%3E'image_output_path'%3C/span%3E%3Cspan%20class=pl-kos%3E]%3C/span%3E%3Cspan%20class=pl-kos%3E}%3C/span%3E%3C/span%3E%3Cspan%20class=pl-s1%3E%3Cspan%20class=pl-kos%3E#{%3C/span%3E%3Cspan%20class=pl-s1%3Esprite_file%3C/span%3E%3Cspan%20class=pl-kos%3E}%3C/span%3E%3C/span%3E') no-repeat #{sprite[:x]}px #{sprite[:y]}px;\n"
31-
output << " width: #{sprite[:width]}px;\n"
32-
output << " height: #{sprite[:height]}px;\n"
33-
output << "}\n"
34-
end
35-
end
36-
37-
output
38-
end
39-
40-
def extension
41-
"css"
42-
end
43-
end
44-
45-
# renders standard sass rules
46-
class SassGenerator
47-
def initialize(builder)
48-
@builder = builder
49-
end
50-
51-
def generate(sprite_files)
52-
output = ""
53-
54-
# set up class_name to append to each rule
55-
sprites_class = @builder.config['sprites_class'] ? ".#{@builder.config['sprites_class']}" : ""
56-
57-
output << ".#{sprites_class}"
58-
sprite_files.each do |sprite_file, sprites|
59-
sprites.each do |sprite|
60-
output << " &.#{sprite[:group]}#{@builder.config['class_separator']}#{sprite[:name]}\n"
61-
output << " background: url(http://github.com/'/%3Cspan%20class=pl-s1%3E%3Cspan%20class=pl-kos%3E#{%3C/span%3E%3Cspan%20class=pl-c1%3E@builder%3C/span%3E%3Cspan%20class=pl-kos%3E.%3C/span%3E%3Cspan%20class=pl-en%3Econfig%3C/span%3E%3Cspan%20class=pl-kos%3E[%3C/span%3E%3Cspan%20class=pl-s%3E'image_output_path'%3C/span%3E%3Cspan%20class=pl-kos%3E]%3C/span%3E%3Cspan%20class=pl-kos%3E}%3C/span%3E%3C/span%3E%3Cspan%20class=pl-s1%3E%3Cspan%20class=pl-kos%3E#{%3C/span%3E%3Cspan%20class=pl-s1%3Esprite_file%3C/span%3E%3Cspan%20class=pl-kos%3E}%3C/span%3E%3C/span%3E') no-repeat #{sprite[:x]}px #{sprite[:y]}px\n"
62-
output << " width: #{sprite[:width]}px\n"
63-
output << " height: #{sprite[:height]}px\n"
64-
output << "\n"
65-
end
66-
end
67-
68-
output
69-
end
70-
71-
def extension
72-
"sass"
73-
end
74-
end
75-
76-
# renders a yml file that is parsed by a sass extension
77-
class SassMixinGenerator
78-
def initialize(builder)
79-
@builder = builder
80-
end
81-
82-
def generate(output)
83-
""
84-
end
85-
86-
def extension
87-
"yml"
88-
end
89-
90-
end
91-
9217

9318
end

lib/sprite/styles/css_generator.rb

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
module Sprite
2+
module Styles
3+
# renders standard css style rules
4+
class CssGenerator
5+
def initialize(builder)
6+
@builder = builder
7+
end
8+
9+
def generate(sprite_files)
10+
output = ""
11+
12+
# set up class_name to append to each rule
13+
sprites_class = @builder.config['sprites_class'] ? ".#{@builder.config['sprites_class']}" : ""
14+
15+
# write stylesheet file to disk
16+
sprite_files.each do |sprite_file, sprites|
17+
sprites.each do |sprite|
18+
output << "#{sprites_class}.#{sprite[:group]}#{@builder.config['class_separator']}#{sprite[:name]} {\n"
19+
output << " background: url(http://github.com/'/%3Cspan%20class=pl-s1%3E%3Cspan%20class=pl-kos%3E#{%3C/span%3E%3Cspan%20class=pl-c1%3E@builder%3C/span%3E%3Cspan%20class=pl-kos%3E.%3C/span%3E%3Cspan%20class=pl-en%3Econfig%3C/span%3E%3Cspan%20class=pl-kos%3E[%3C/span%3E%3Cspan%20class=pl-s%3E'image_output_path'%3C/span%3E%3Cspan%20class=pl-kos%3E]%3C/span%3E%3Cspan%20class=pl-kos%3E}%3C/span%3E%3C/span%3E%3Cspan%20class=pl-s1%3E%3Cspan%20class=pl-kos%3E#{%3C/span%3E%3Cspan%20class=pl-s1%3Esprite_file%3C/span%3E%3Cspan%20class=pl-kos%3E}%3C/span%3E%3C/span%3E') no-repeat #{sprite[:x]}px #{sprite[:y]}px;\n"
20+
output << " width: #{sprite[:width]}px;\n"
21+
output << " height: #{sprite[:height]}px;\n"
22+
output << "}\n"
23+
end
24+
end
25+
26+
output
27+
end
28+
29+
def extension
30+
"css"
31+
end
32+
end
33+
end
34+
end

lib/sprite/styles/sass_generator.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
module Sprite
2+
module Styles
3+
4+
# renders standard sass rules
5+
class SassGenerator
6+
def initialize(builder)
7+
@builder = builder
8+
end
9+
10+
def generate(sprite_files)
11+
output = ""
12+
13+
# set up class_name to append to each rule
14+
sprites_class = @builder.config['sprites_class'] ? ".#{@builder.config['sprites_class']}" : ""
15+
16+
output << "#{sprites_class}\n"
17+
sprite_files.each do |sprite_file, sprites|
18+
sprites.each do |sprite|
19+
output << " &.#{sprite[:group]}#{@builder.config['class_separator']}#{sprite[:name]}\n"
20+
output << " background: url(http://github.com/'/%3Cspan%20class=pl-s1%3E%3Cspan%20class=pl-kos%3E#{%3C/span%3E%3Cspan%20class=pl-c1%3E@builder%3C/span%3E%3Cspan%20class=pl-kos%3E.%3C/span%3E%3Cspan%20class=pl-en%3Econfig%3C/span%3E%3Cspan%20class=pl-kos%3E[%3C/span%3E%3Cspan%20class=pl-s%3E'image_output_path'%3C/span%3E%3Cspan%20class=pl-kos%3E]%3C/span%3E%3Cspan%20class=pl-kos%3E}%3C/span%3E%3C/span%3E%3Cspan%20class=pl-s1%3E%3Cspan%20class=pl-kos%3E#{%3C/span%3E%3Cspan%20class=pl-s1%3Esprite_file%3C/span%3E%3Cspan%20class=pl-kos%3E}%3C/span%3E%3C/span%3E') no-repeat #{sprite[:x]}px #{sprite[:y]}px\n"
21+
output << " width: #{sprite[:width]}px\n"
22+
output << " height: #{sprite[:height]}px\n"
23+
output << "\n"
24+
end
25+
end
26+
27+
output
28+
end
29+
30+
def extension
31+
"sass"
32+
end
33+
end
34+
end
35+
end
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module Sprite
2+
module Styles
3+
# renders a yml file that is parsed by a sass extension
4+
class SassMixinGenerator
5+
def initialize(builder)
6+
@builder = builder
7+
end
8+
9+
def generate(output)
10+
"NOT DONE YET"
11+
end
12+
13+
def extension
14+
"yml"
15+
end
16+
17+
end
18+
end
19+
end

0 commit comments

Comments
 (0)