Sha256: 1da7276838491e95875e71a03af88b564c68026c6525d9839466b959895d4021

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

module Polymer
  class SassGenerator

    TEMPLATE = Pathname.new(__FILE__).dirname + 'templates/sass_mixins.erb'

    # Given a project, generates a Sass mixin stylesheet which can can be
    # included into your own Sass stylesheets.
    #
    # @param [Polymer::Project] project
    #   The project instance for which to generate a Sass stylesheet.
    #
    # @return [true]
    #   Returned when the stylesheet was generated and saved to the location
    #   specified by +project.sass+.
    # @return [false]
    #   Returned when +project.sass+ evaluates to false, disabling generation
    #   of the Sass mixin file.
    #
    def self.generate(project)
      return false unless project.sass

      if project.sass.to_s[-5..-1] == '.sass'
        project.sass.dirname.mkpath
        save_to = project.sass
      else
        project.sass.mkpath
        save_to = project.sass + '_polymer.sass'
      end

      data_uris = project.data_uri_sprites.inject({}) do |memo, sprite|
        data = [sprite.save_path.read].pack('m').strip
        memo[sprite.name] = "data:image/png;base64,#{data}"
        memo
      end

      File.open(save_to, 'w') do |file|
        file.puts ERB.new(File.read(TEMPLATE), nil, '<>').result(binding)
      end

      true
    end # self.generate

  end # SassGenerator
end # Polymer

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
polymer-1.0.0.beta.5 lib/polymer/sass_generator.rb