Sha256: bf4bce66bd9acdf35c8e872af02796d98126befa36245888b5735aaeaf12df1a

Contents?: true

Size: 817 Bytes

Versions: 3

Compression:

Stored size: 817 Bytes

Contents

require "sass"

module Smurfville
  class TypographyParser
    attr_accessor :typographies, :typography_sass_file

    def initialize(typography_sass_file = Smurfville.typography_sass_file)
      @typographies = []
      @typography_sass_file = typography_sass_file
    end

    def parse(options = {})
      sass_tree = Sass::Engine.for_file(self.typography_sass_file, options).to_tree
      sass_tree.children.each do | node |
        if is_typography_selector?(node)
          self.typographies << node.rule[0]
        end
      end
    end

    private

      # determines if node is a placeholder selector starting widht the %f- convention for typography rulesets
      def is_typography_selector?(node)
        node.is_a?(Sass::Tree::RuleNode) && node.rule[0].start_with?("%f-") rescue false
      end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
smurfville-0.1.2 lib/smurfville/typography_parser.rb
smurfville-0.1.1 lib/smurfville/typography_parser.rb
smurfville-0.1.0 lib/smurfville/typography_parser.rb