module Pretentious

The main class to use for pretentious testing

Pretentious - version

Constants

VERSION

Public Class Methods

clear_results() click to toggle source
# File lib/pretentious.rb, line 96
def self.clear_results
  @spec_results = {}
  @minitest_results = {}
end
deep_merge(hash, second) click to toggle source

deep merge without active support and does array deep merges as well

# File lib/pretentious.rb, line 145
def self.deep_merge(hash, second)
  merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 }
  hash.merge(second, &merger)
end
install_watcher() click to toggle source
# File lib/pretentious.rb, line 105
def self.install_watcher
  Pretentious::Generator.watch_new_instances
end
last_results() click to toggle source
# File lib/pretentious.rb, line 101
def self.last_results
  { spec: @spec_results, minitest: @minitest_results }
end
minitest_for(*klasses, &block) click to toggle source
# File lib/pretentious.rb, line 83
def self.minitest_for(*klasses, &block)
  @minitest_results ||= {}
  Pretentious::Generator.test_generator = Pretentious::MinitestGenerator
  @minitest_results.merge!(Pretentious::Generator
                           .generate_for(*klasses, &block))
end
on(target_class) click to toggle source
# File lib/pretentious.rb, line 140
def self.on(target_class)
  Pretentious::Trigger.new(target_class)
end
spec_for(*klasses, &block) click to toggle source
# File lib/pretentious.rb, line 76
def self.spec_for(*klasses, &block)
  @spec_results ||= {}
  Pretentious::Generator.test_generator = Pretentious::RspecGenerator
  @spec_results.merge!(Pretentious::Generator
                       .generate_for(*klasses, &block))
end
uninstall_watcher() click to toggle source
# File lib/pretentious.rb, line 109
def self.uninstall_watcher
  Pretentious::Generator.unwatch_new_instances
end
value_ize(context, value) click to toggle source
# File lib/pretentious.rb, line 113
def self.value_ize(context, value)
  if value.is_a? String
    "'#{value}'"
  elsif value.is_a? Symbol
    ":#{value}"
  elsif value.is_a? Hash
    context.pick_name(value.object_id)
  elsif value.is_a? Pretentious::RecordedProc
    context.pick_name(value.target_proc.object_id)
  elsif value.nil?
    'nil'
  elsif Pretentious::Deconstructor.primitive?(value)
    "#{value}"
  elsif context.variable_map && context.variable_map[value.object_id]
    context.pick_name(value.object_id)
  else
    "#{value}"
  end
end
watch(&block) click to toggle source
# File lib/pretentious.rb, line 133
def self.watch(&block)
  Pretentious::Generator.watch_new_instances
  result = block.call
  Pretentious::Generator.unwatch_new_instances
  result
end
write_results(output_folder = nil, output_subfolder = nil, last_results = nil) click to toggle source
# File lib/pretentious.rb, line 90
def self.write_results(output_folder = nil, output_subfolder = nil, last_results = nil)
  filewriter = Pretentious::FileWriter.new(output_folder: output_folder,
                                           spec_output_folder: output_subfolder)
  filewriter.write_results(last_results || Pretentious.last_results)
end