Sha256: a21645f09f8217cab745a5aa2ef8fdc2ab972d02cf8b72ad76add273fe93fd9d
Contents?: true
Size: 1.51 KB
Versions: 5
Compression:
Stored size: 1.51 KB
Contents
require 'css_parser' require 'awesome_print' require 'pry' class Sprite < Thor include Thor::Actions desc "build WIDGET", "Build CSS helpers for sprites generated by Fireworks exported to 'app/assets/images/WIDGET/sprite.*'" def build widget = 'default' parser = CssParser::Parser.new css = File.read File.join 'app/assets/images', widget, 'sprite.css' css.gsub! 'sprite.png', "/assets/#{widget}/sprite.png" parser.add_block! css structure = [] parser.each_selector do |selector, declarations, specificity| selector.gsub!(/[\.\#]/,'') properties = [] declarations.split(';').each do |property| properties << property.split(':').map(&:strip) end properties << [] structure << [selector, properties] end structure << [] default = structure.shift[1] images = structure structure = [widget, [[:default, default], [:images, images]]] sprites = "sprites = (sprites " + stylusize(structure) + stylusize([]) + ")" file_path = File.join 'app/assets/stylesheets', 'sprites.styl' unless File.exists? file_path create_file file_path append_to_file file_path, 'sprites = ()' end append_to_file file_path, "\n#{sprites}" say "Do not forget to check for duplicates in the file above!" end private def stylusize array, str = "" str << "(" array.each do |item| if item.is_a? Array stylusize(item,str) else str << "('#{item}') " end end str << ") " end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
ende-0.1.4 | lib/tasks/sprite.thor |
ende-0.1.3 | lib/tasks/sprite.thor |
ende-0.1.2 | lib/tasks/sprite.thor |
ende-0.1.1 | lib/tasks/sprite.thor |
ende-0.0.1 | lib/tasks/sprite.thor |