Sha256: a5baa7443baf6ff7ef2b1d2198320b846ca4574890e29ce7d2bd318385f279c8

Contents?: true

Size: 896 Bytes

Versions: 2

Compression:

Stored size: 896 Bytes

Contents

require_relative 'logger'
require_relative 'problem'
require_relative 'runtime_error'

class Tailor
  class Ruler
    include Tailor::Logger::Mixin

    attr_reader :cli_option

    def initialize(config={})
      @config = config
      @problems = []
      @child_rulers = []
      @cli_option = ""
      @do_measurement = true
      log "Ruler initialized with style setting: #{@config}"
    end

    def add_child_ruler(ruler)
      @child_rulers << ruler
      log "Added child: #{ruler}"
    end

    def problems
      @problems = @child_rulers.inject(@problems) do |problems, ruler|
        problems + ruler.problems
      end

      @problems.sort_by! { |problem| problem[:line].to_i }
    end

    # Each ruler should redefine this for its needs.
    def measure(*args)
      raise RuntimeError,
        "Ruler#measure called, but should be redefined by a real ruler."
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tailor-1.0.0.alpha2 lib/tailor/ruler.rb
tailor-1.0.0.alpha lib/tailor/ruler.rb