Sha256: 27e53ebe547f6943b53706fb0715d80ecda86b5dfd9e754286092a0e82248c71
Contents?: true
Size: 966 Bytes
Versions: 1
Compression:
Stored size: 966 Bytes
Contents
require 'sass' require 'json' class SassJSONVars::Importer < Sass::Importers::Base def find(uri, options) if File.extname(uri) == '.json' self.class.sass_engine(uri, self, options) else nil end end def find_relative(uri, base, options) nil end def to_s self.class.name end def hash self.class.name.hash end def eql?(other) other.class == self.class end def self.convert_to_sass(item) if item.is_a? Array '(' + item.map { |i| self.convert_to_sass(i) }.join(',') + ')' elsif item.is_a? Hash '(' + item.map {|key, value| key.to_s + ':' + self.convert_to_sass(value) }.join(',') + ')' else item end end def self.sass_engine(uri, importer, options) json = JSON.parse(IO.read(uri)) variables = json.map do |name, value| output = self.convert_to_sass(value); "$#{name}: #{output}" end Sass::Engine.new(variables.join("\n")) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sass-json-vars-0.1.0 | lib/sass-json-vars/importer.rb |