Class: RailsSprite::StylesheetGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_sprite/stylesheet_generator.rb

Class Method Summary collapse

Class Method Details

.composite_css_scss_erb(result) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/rails_sprite/stylesheet_generator.rb', line 47

def self.composite_css_scss_erb result
  styles = []

  result[:styles].each do |style|
    styles << ".\#{style[:class]} {\n  background: url(<%= image_path(\"\#{result[:image_scope_name]}\") %>) \#{style[:x]} -\#{style[:y]} no-repeat;\n}\n    END_CSS\n  end\n\n\n#       styles << <<-END_CSS\n# .\#{result[:css_class_shared]} {\n#   background: url(<%= image_path(\"\#{result[:image_scope_name]}\") %>) no-repeat;\n# }\n#       END_CSS\n\n#      result[:styles].each do |style|\n#        styles << <<-END_CSS\n#.\#{style[:class]} {\n#  background-position: \#{style[:x]} -\#{style[:y]};\n#}\n#        END_CSS\n#      end\n\n\n  styles.join(\"\\n\")\nend\n"

.generate(options = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/rails_sprite/stylesheet_generator.rb', line 4

def self.generate options={}
  css_class_prefix = options[:css_class_prefix]
  css_class_shared = options[:css_class_shared]
  css_extend = options[:css_extend] 
  image_scope_name = options[:image_scope_name]
  file_infos = options[:file_infos]
  stylesheet_to = options[:stylesheet_to]

  result = {}

  styles = []

  file_infos.each do |file_info|
    style = {}

    style[:width] = "#{file_info[:width]}px"
    style[:height] = "#{file_info[:height]}px"
    style[:x] = "#{file_info[:x]}px"
    style[:y] = "#{file_info[:y]}px"
    style[:class] = "#{css_class_prefix}#{file_info[:file_purename]}"

    styles << style
  end


  result[:styles] = styles
  result[:image_scope_name] = image_scope_name
  result[:css_class_shared] = css_class_shared

  # case css_extend
  # when '.css.scss.erb'
  # else
  # end

  system "mkdir -p #{::File.dirname(stylesheet_to)}"

  ::File.open(stylesheet_to, 'w') do |file|
    file.write( composite_css_scss_erb(result) )
  end

  result
end