Class: Sprite::Styles::TemplatedCssGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/sprite/styles/templated_css_generator.rb

Overview

renders css rules from template

Instance Method Summary collapse

Constructor Details

#initialize(builder) ⇒ TemplatedCssGenerator

Returns a new instance of TemplatedCssGenerator.



7
8
9
# File 'lib/sprite/styles/templated_css_generator.rb', line 7

def initialize(builder)
  @builder = builder
end

Instance Method Details

#extensionObject



36
37
38
# File 'lib/sprite/styles/templated_css_generator.rb', line 36

def extension
  "css"
end

#write(path, sprite_files) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/sprite/styles/templated_css_generator.rb', line 11

def write(path, sprite_files)
  # write styles to disk
  File.open(File.join(Sprite.root, path), 'w') do |f|
    f.puts "/* Generated by the sprite gem */"
    sprite_files.each do |sprite_file|
      @builder.images.each do |image|
        if "#{image['name']}.#{image['format']}" == sprite_file[0]
          erb_path = @builder.send :style_template_source_path, image
          erb_template = ERB.new(File.read(erb_path))
          sprites = sprite_file[1]
          sprites.each do |sprite|
            name = sprite[:name]
            width = sprite[:width]
            height = sprite[:height]
            left = sprite[:x]
            top = sprite[:y]
            image_path = ImageWriter.new(@builder.config).image_output_path(image['name'], image['format'])
            f.puts erb_template.result(binding)
          end
        end
      end
    end
  end
end