class RailsSprite::StylesheetGenerator

Public Class Methods

composite_css_scss_erb(result) click to toggle source
# File lib/rails_sprite/stylesheet_generator.rb, line 47
    def self.composite_css_scss_erb result
      styles = []

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


#       styles << <<-END_CSS
# .#{result[:css_class_shared]} {
#   background: url(<%= image_path("#{result[:image_scope_name]}") %>) no-repeat;
# }
#       END_CSS

#      result[:styles].each do |style|
#        styles << <<-END_CSS
#.#{style[:class]} {
#  background-position: #{style[:x]} -#{style[:y]};
#}
#        END_CSS
#      end


      styles.join("\n")
    end
generate(options={}) click to toggle source
# 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