Class: Sprite::Styles::SassGenerator

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

Overview

renders standard sass rules

Instance Method Summary collapse

Constructor Details

#initialize(builder) ⇒ SassGenerator

Returns a new instance of SassGenerator.



6
7
8
# File 'lib/sprite/styles/sass_generator.rb', line 6

def initialize(builder)
  @builder = builder
end

Instance Method Details

#extensionObject



38
39
40
# File 'lib/sprite/styles/sass_generator.rb', line 38

def extension
  "sass"
end

#sass_line(sass) ⇒ Object

write sass output with correct tab spaces prepended



34
35
36
# File 'lib/sprite/styles/sass_generator.rb', line 34

def sass_line(sass)
  "#{'  '*@level}#{sass}"
end

#write(path, sprite_files) ⇒ Object



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

def write(path, sprite_files)
  @level = 0

  File.open(File.join(Sprite.root, path), 'w') do |f|
    if @builder.config['sprites_class']
      f.puts ".#{@builder.config['sprites_class']}"
      @level += 1
    end

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