Sha256: a68cf1835f400f4ba25f8881d3b879cab7d80d236dfa1fff922fb61583b63d76

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

module  PrivatePlease
  class Report

    # @param [PrivatePlease::Recorder] recorder
    def self.build(storage)
      new(storage)
    end

    # @param [PrivatePlease::Recorder] recorder
    def initialize(storage)
      @storage = storage
    end

    TEMPLATE_PATH     = File.dirname(__FILE__) + '/report/template.txt.erb'

    def to_s
      erb = ERB.new(File.read(TEMPLATE_PATH))

      good_candidates = good_candidates() # for ERB/binding
      bad_candidates  = bad_candidates()  # for ERB/binding
      erb.result(binding)
    end

    # @return [Hash]
    def never_called_candidates
      @storage.candidates.tap do |all|
        all.keys.each do |klass|
          all[klass] = all[klass] - @storage.outside_called_candidates[klass] - @storage.inside_called_candidates[klass]
        end
      end
    end

    # @return [Hash]
    def good_candidates
      @storage.inside_called_candidates.tap do |all|
        all.keys.each do |klass|
           all[klass] = all[klass] - @storage.outside_called_candidates[klass]
        end
      end
    end

    # @return [Hash]
    def bad_candidates
      @storage.outside_called_candidates
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
private_please-0.0.2 lib/private_please/report.rb
private_please-0.0.1 lib/private_please/report.rb