Class: Sprite::Styles::CssGenerator

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

Overview

renders standard css style rules

Instance Method Summary collapse

Constructor Details

#initialize(builder) ⇒ CssGenerator

Returns a new instance of CssGenerator.



5
6
7
# File 'lib/sprite/styles/css_generator.rb', line 5

def initialize(builder)
  @builder = builder
end

Instance Method Details

#extensionObject



31
32
33
# File 'lib/sprite/styles/css_generator.rb', line 31

def extension
  "css"
end

#write(path, sprite_files) ⇒ Object



9
10
11
12
13
14
# File 'lib/sprite/styles/css_generator.rb', line 9

def write(path, sprite_files)
  # write styles to disk
  File.open(File.join(Sprite.root, path), 'w') do |f|
    write_standard_css(f, sprite_files)
  end
end

#write_standard_css(f, sprite_files) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/sprite/styles/css_generator.rb', line 16

def write_standard_css(f, sprite_files)
  # set up class_name to append to each rule
  sprites_class = @builder.config['sprites_class'] ? ".#{@builder.config['sprites_class']}" : ""

  sprite_files.each do |sprite_file, sprites|
    sprites.each do |sprite|
      f.puts "#{sprites_class}.#{sprite[:group]}#{@builder.config['class_separator']}#{sprite[:name]} {"
      f.puts "  background: url('/#{@builder.config['image_output_path']}#{sprite_file}') no-repeat #{sprite[:x]}px #{sprite[:y]}px;"
      f.puts "  width: #{sprite[:width]}px;"
      f.puts "  height: #{sprite[:height]}px;"
      f.puts "}"
    end
  end
end