Class: Foobara::RemoteGenerator::GenerateTypescript
Defined Under Namespace
Classes: MissingManifestError
Constant Summary
TruncatedInspect::MAX_LENGTH
Instance Attribute Summary collapse
#element_to_generate
Instance Method Summary
collapse
#each_element_to_generate, #elements_to_generate, #generated, #generated_elements, #include_non_templated_files, #paths_to_source_code
Methods inherited from Command
install!
#inspect, truncating
Methods included from Concern
foobara_class_methods_module_for, foobara_concern?, included
Instance Attribute Details
#command_manifest ⇒ Object
Returns the value of attribute command_manifest.
47
48
49
|
# File 'src/generate_typescript.rb', line 47
def command_manifest
@command_manifest
end
|
#manifest_data ⇒ Object
Returns the value of attribute manifest_data.
47
48
49
|
# File 'src/generate_typescript.rb', line 47
def manifest_data
@manifest_data
end
|
Instance Method Details
#add_all_commands_to_set_of_elements_to_generate ⇒ Object
78
79
80
81
82
83
84
|
# File 'src/generate_typescript.rb', line 78
def add_all_commands_to_set_of_elements_to_generate
manifest.commands.each do |command|
elements_to_generate << command
elements_to_generate << command.domain
elements_to_generate << command.organization
end
end
|
#add_root_manifest_to_set_of_elements_to_generate ⇒ Object
92
93
94
|
# File 'src/generate_typescript.rb', line 92
def add_root_manifest_to_set_of_elements_to_generate
elements_to_generate << manifest
end
|
#execute ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'src/generate_typescript.rb', line 21
def execute
RemoteGenerator.no_foobara_auth(no_foobara_auth) do
load_manifest_if_needed
include_non_templated_files
add_root_manifest_to_set_of_elements_to_generate
add_all_commands_to_set_of_elements_to_generate
each_element_to_generate do
generate_element
end
end
paths_to_source_code
end
|
#generate_element ⇒ Object
#load_manifest_if_needed ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'src/generate_typescript.rb', line 57
def load_manifest_if_needed
self.manifest_data = if raw_manifest
raw_manifest
elsif manifest_url
url = URI.parse(manifest_url)
response = Net::HTTP.get_response(url)
manifest_json = if response.is_a?(Net::HTTPSuccess)
response.body
else
raise "Could not get manifest from #{url}: " \
"#{response.code} #{response.message}"
end
JSON.parse(manifest_json)
end
end
|
#manifest ⇒ Object
96
97
98
|
# File 'src/generate_typescript.rb', line 96
def manifest
@manifest ||= Manifest::RootManifest.new(manifest_data)
end
|
#templates_dir ⇒ Object
53
54
55
|
# File 'src/generate_typescript.rb', line 53
def templates_dir
"#{__dir__}/../templates"
end
|
#validate ⇒ Object
39
40
41
42
43
44
45
|
# File 'src/generate_typescript.rb', line 39
def validate
if raw_manifest.nil? && manifest_url.nil?
add_runtime_error(MissingManifestError.new(message: "Either raw_manifest or manifest_url must be given"))
end
end
|