Class: Gen

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/openapi/sourcetools/gen.rb

Overview

The generation module that contains things visible to tasks.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.add(source:, template: nil, template_name: nil, name: nil, executable: false, x: nil) ⇒ Object



108
109
110
# File 'lib/openapi/sourcetools/gen.rb', line 108

def self.add(source:, template: nil, template_name: nil, name: nil, executable: false, x: nil)
  Gen.instance.add(source:, template:, template_name:, name:, executable:, x:)
end

.add_task(task:, name: nil, executable: false, x: nil) ⇒ Object



91
92
93
# File 'lib/openapi/sourcetools/gen.rb', line 91

def self.add_task(task:, name: nil, executable: false, x: nil)
  Gen.instance.add_task(task:, name:, executable:, x:)
end

.add_write_content(name:, content:, executable: false) ⇒ Object



99
100
101
# File 'lib/openapi/sourcetools/gen.rb', line 99

def self.add_write_content(name:, content:, executable: false)
  Gen.instance.add_write_content(name:, content:, executable:)
end

.documentObject



112
113
114
115
116
117
118
119
120
# File 'lib/openapi/sourcetools/gen.rb', line 112

def self.document
  @docsrc.join("\n") + %(
- add_task(task:, name: nil, executable: false, x: nil) : Adds task object.
- add_write_content(name:, content:, executable: false) : Add file write task.
- add(source:, template: nil, template_name: nil, name: nil,
  executable: false, x: nil) :
Adds template task with source as object to process.
)
end

.load_config(name_prefix, extensions = [ '.*' ]) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/openapi/sourcetools/gen.rb', line 59

def self.load_config(name_prefix, extensions = [ '.*' ])
  cfg = {}
  cfgs = OpenAPISourceTools::ConfigLoader.find_files(name_prefix:, extensions:)
  cfgs = OpenAPISourceTools::ConfigLoader.read_contents(cfgs)
  cfgs.each { |c| cfg.deep_merge!(c) }
  cfg
end

.setup(document_content, input_name, output_directory, config_prefix) ⇒ Object



78
79
80
# File 'lib/openapi/sourcetools/gen.rb', line 78

def self.setup(document_content, input_name, output_directory, config_prefix)
  Gen.instance.setup(document_content, input_name, output_directory, config_prefix)
end

Instance Method Details

#add(source:, template: nil, template_name: nil, name: nil, executable: false, x: nil) ⇒ Object



103
104
105
106
# File 'lib/openapi/sourcetools/gen.rb', line 103

def add(source:, template: nil, template_name: nil, name: nil, executable: false, x: nil)
  add_task(task: OpenAPISourceTools::Task.new(source, template, template_name),
    name:, executable:, x:)
end

#add_task(task:, name: nil, executable: false, x: nil) ⇒ Object



82
83
84
85
86
87
88
89
# File 'lib/openapi/sourcetools/gen.rb', line 82

def add_task(task:, name: nil, executable: false, x: nil)
  @tasks.push(task)
  # Since this method allows the user to pass their own task type instance,
  # assign optional values with defaults only when clearly given.
  @tasks.last.name = name unless name.nil?
  @tasks.last.executable = executable unless executable == false
  @tasks.last.x = x unless x.nil?
end

#add_write_content(name:, content:, executable: false) ⇒ Object



95
96
97
# File 'lib/openapi/sourcetools/gen.rb', line 95

def add_write_content(name:, content:, executable: false)
  add_task(task: OpenAPISourceTools::WriteTask.new(name, content, executable))
end

#setup(document_content, input_name, output_directory, config_prefix) ⇒ Object



67
68
69
70
71
72
73
74
75
76
# File 'lib/openapi/sourcetools/gen.rb', line 67

def setup(document_content, input_name, output_directory, config_prefix)
  @doc = document_content
  @outdir = output_directory
  unless input_name.nil?
    @in_name = File.basename(input_name)
    @in_basename = File.basename(input_name, '.*')
  end
  @configuration = Gen.load_config(config_prefix)
  add_task(task: OpenAPISourceTools::HelperTask.new)
end