Class: Pretentious::GeneratorBase

Inherits:
Object
  • Object
show all
Defined in:
lib/pretentious/generator_base.rb

Overview

base class for spec generators

Direct Known Subclasses

MinitestGenerator, RspecGenerator

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ GeneratorBase

Returns a new instance of GeneratorBase.



4
5
6
7
8
9
10
11
12
# File 'lib/pretentious/generator_base.rb', line 4

def initialize(options = {})
  @deconstructor = Pretentious::Deconstructor.new
  indentation_count = options[:indentation] || 2
  @output_buffer = ''
  @_indentation = ''
  indentation_count.times do
    @_indentation << ' '
  end
end

Instance Method Details

#body(instances) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/pretentious/generator_base.rb', line 38

def body(instances)
  specs = []
  instances.each_with_index do |instance, num|
    specs << generate(instance, num + 1)
  end
  buffer_inline(specs.join("\n"))
end

#buffer(line, level = 0) ⇒ Object



14
15
16
# File 'lib/pretentious/generator_base.rb', line 14

def buffer(line, level = 0)
  @output_buffer << "#{indentation(level)}#{line}\n"
end

#buffer_inline(line, level = 0) ⇒ Object



26
27
28
# File 'lib/pretentious/generator_base.rb', line 26

def buffer_inline(line, level = 0)
  @output_buffer << "#{indentation(level)}#{line}"
end

#buffer_inline_to_string(buffer, line, level = 0) ⇒ Object



22
23
24
# File 'lib/pretentious/generator_base.rb', line 22

def buffer_inline_to_string(buffer, line, level = 0)
  buffer << "#{indentation(level)}#{line}"
end

#buffer_to_string(buffer, line, level = 0) ⇒ Object



18
19
20
# File 'lib/pretentious/generator_base.rb', line 18

def buffer_to_string(buffer, line, level = 0)
  buffer << "#{indentation(level)}#{line}\n"
end

#setup_fixture(fixture) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/pretentious/generator_base.rb', line 30

def setup_fixture(fixture)
  variable_map = fixture.let_variables.merge(fixture.object_id => '@fixture')
  context = Pretentious::Context.new(variable_map)
  declarations, _dependencies = @deconstructor.generate_declarations(context, [], fixture)

  [context, declarations]
end