Sha256: fe2dc919adb993acecc38b9d5b2ffd7cebb78e62c8c790cf49e73d67283da0bc

Contents?: true

Size: 962 Bytes

Versions: 1

Compression:

Stored size: 962 Bytes

Contents

module Csscss
  class Reporter
    def initialize(redundancies)
      @redundancies = redundancies
    end

    def report(options = {})
      verbose      = options.fetch(:verbose, false)
      should_color = options.fetch(:color, true)

      io = StringIO.new
      @redundancies.each do |selector_groups, declarations|
        selector_groups = selector_groups.map {|selectors| maybe_color("{#{selectors}}", :red, should_color) }
        last_selector = selector_groups.pop
        count = declarations.size
        io.puts %Q(#{selector_groups.join(", ")} AND #{last_selector} share #{maybe_color(count, :red, should_color)} rule#{"s" if count > 1})
        if verbose
          declarations.each {|dec| io.puts(maybe_color("  - #{dec}", :yellow, should_color)) }
        end
      end

      io.rewind
      io.read
    end

    private
    def maybe_color(string, color, condition)
      condition ? string.to_s.colorize(color) : string
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
csscss-0.2.0 lib/csscss/reporter.rb