require "beautiful-css/rule"

module BeautifulCss
  class RuleParser

    def initialize(str)
      @body = str
    end

    def selectors
      @body.match(/[^{]*/).to_s.split(/,/).map{|s| s.strip}.select{|s| !s.empty? }
    end

    def props
      begin
      p = @body.match(/\{([^}]*)/)[1].split(';').select{|s| !s.strip.empty? }
      p.map{|s| s.strip.split(':') }
      rescue
        []
      end
    end

    def to_rules
      selectors.map do |selector|
        props.map do |prop|
          BeautifulCss::Rule.new(selector, prop[0], prop[1])
        end
      end.flatten
    end

    def body
      @body
    end


  end

end