Sha256: 71435a4f432a3c7ad255c79dc66e25d9f861ee01ec14a349c484169f8c05df46

Contents?: true

Size: 962 Bytes

Versions: 7

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

7 entries across 7 versions & 1 rubygems

Version Path
csscss-1.3.2 lib/csscss/reporter.rb
csscss-1.3.1 lib/csscss/reporter.rb
csscss-1.3.0 lib/csscss/reporter.rb
csscss-1.2.0 lib/csscss/reporter.rb
csscss-1.1.0 lib/csscss/reporter.rb
csscss-1.0.0 lib/csscss/reporter.rb
csscss-0.2.1 lib/csscss/reporter.rb