Sha256: 5483e2f1fb7dc43e782eb55ef68aed3795492e7c85df40d34817feefea1a2de3

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

require 'private_please/version'
require 'private_please/ruby_backports'
require 'private_please/candidate'
require 'private_please/storage'
require 'private_please/report'
require 'private_please/reporter'

at_exit do
  PrivatePlease.at_exit
end

module PrivatePlease

  def self.install
    Module.send :include, PrivatePlease::Tracking::Extension
    PrivatePlease.pp_automatic_mode_enable
    set_trace_func PrivatePlease::Tracking::LineChangeTracker::MY_TRACE_FUN
  end

  def self.pp_automatic_mode_enabled? ; !!$pp_automatic_mode_enabled          end
  def self.pp_automatic_mode_enable   ;   $pp_automatic_mode_enabled =  true  end
  def self.pp_automatic_mode_disable  ;   $pp_automatic_mode_enabled = false  end

  # TODO : replace class methods by PP instance + instance methods
  def self.calls_store
    @@_calls_store ||= Storage::CallsStore.new
  end

  def self.candidates_store
    @@_candidates_store ||= Storage::CandidatesStore.new
  end

  def self.reset
    @@_candidates_store = @@_calls_store = nil
    Tracking::LineChangeTracker.reset
    set_trace_func nil
  end

  def self.at_exit
    report = PrivatePlease::Reporter::SimpleText.new(PrivatePlease.candidates_store, PrivatePlease.calls_store)
    unless $private_please_tests_are_running
      $stdout.puts report.text
    end
  end
end

require 'private_please/tracking'

PrivatePlease.install

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
private_please-0.0.4 lib/private_please.rb