Module: Pretentious

Defined in:
lib/pretentious.rb,
lib/pretentious/context.rb,
lib/pretentious/trigger.rb,
lib/pretentious/version.rb,
lib/pretentious/generator.rb,
lib/pretentious/lazy_trigger.rb,
lib/pretentious/deconstructor.rb,
lib/pretentious/recorded_proc.rb,
lib/pretentious/generator_base.rb,
lib/pretentious/rspec_generator.rb,
lib/pretentious/utils/file_writer.rb,
lib/pretentious/minitest_generator.rb

Overview

Pretentious - version

Defined Under Namespace

Modules: DdtUtils Classes: Context, Deconstructor, FileWriter, Generator, GeneratorBase, LazyTrigger, MinitestGenerator, RecordedProc, RspecGenerator, Trigger

Constant Summary collapse

VERSION =
'0.2.4'

Class Method Summary collapse

Class Method Details

.clear_resultsObject



96
97
98
99
# File 'lib/pretentious.rb', line 96

def self.clear_results
  @spec_results = {}
  @minitest_results = {}
end

.deep_merge(hash, second) ⇒ Object

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



145
146
147
148
# 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_watcherObject



105
106
107
# File 'lib/pretentious.rb', line 105

def self.install_watcher
  Pretentious::Generator.watch_new_instances
end

.last_resultsObject



101
102
103
# File 'lib/pretentious.rb', line 101

def self.last_results
  { spec: @spec_results, minitest: @minitest_results }
end

.minitest_for(*klasses, &block) ⇒ Object



83
84
85
86
87
88
# 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) ⇒ Object



140
141
142
# File 'lib/pretentious.rb', line 140

def self.on(target_class)
  Pretentious::Trigger.new(target_class)
end

.spec_for(*klasses, &block) ⇒ Object



76
77
78
79
80
81
# 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_watcherObject



109
110
111
# File 'lib/pretentious.rb', line 109

def self.uninstall_watcher
  Pretentious::Generator.unwatch_new_instances
end

.value_ize(context, value) ⇒ Object



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# 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) ⇒ Object



133
134
135
136
137
138
# 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) ⇒ Object



90
91
92
93
94
# 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