Class: Sidenotes::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/sidenotes/generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGenerator

Returns a new instance of Generator.



9
10
11
12
# File 'lib/sidenotes/generator.rb', line 9

def initialize
  @models_generated = []
  @models_skipped = []
end

Instance Attribute Details

#models_generatedObject (readonly)

Returns the value of attribute models_generated.



7
8
9
# File 'lib/sidenotes/generator.rb', line 7

def models_generated
  @models_generated
end

#models_skippedObject (readonly)

Returns the value of attribute models_skipped.



7
8
9
# File 'lib/sidenotes/generator.rb', line 7

def models_skipped
  @models_skipped
end

Instance Method Details

#cleanObject



37
38
39
40
41
42
43
# File 'lib/sidenotes/generator.rb', line 37

def clean
  dir = Sidenotes.configuration.output_directory
  return unless File.directory?(dir)

  remove_annotation_files(dir)
  remove_empty_dirs(dir)
end

#discover_modelsObject



45
46
47
48
# File 'lib/sidenotes/generator.rb', line 45

def discover_models
  load_model_files
  collect_models
end

#generate_allObject



14
15
16
17
# File 'lib/sidenotes/generator.rb', line 14

def generate_all
  discover_models.each { |model| generate_for(model) }
  self
end

#generate_for(model) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/sidenotes/generator.rb', line 19

def generate_for(model)
  model = resolve_model(model)
  inspector = ModelInspector.new(model)

  unless inspector.inspectable?
    @models_skipped << model.name
    return nil
  end

  data = inspector.inspect_model
  return nil unless data

  output = Formatter.new(model.name, data).render
  path = write_file(model, output)
  @models_generated << model.name
  path
end