Module: Gen

Defined in:
lib/openapi/sourcetools/gen.rb

Overview

The generation module that contains things visible to tasks.

Class Method Summary collapse

Class Method Details

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



115
116
117
118
# File 'lib/openapi/sourcetools/gen.rb', line 115

def self.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



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

def self.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



111
112
113
# File 'lib/openapi/sourcetools/gen.rb', line 111

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

.documentObject



120
121
122
123
124
125
126
127
128
# File 'lib/openapi/sourcetools/gen.rb', line 120

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

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



91
92
93
94
95
96
97
98
99
100
# File 'lib/openapi/sourcetools/gen.rb', line 91

def self.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 = load_config(config_prefix)
  add_task(task: OpenAPISourceTools::HelperTask.new)
end