foobara-typescript-remote-command-generator 1.2.6 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/foobara/typescript_remote_command_generator.rb +1 -6
- data/src/{remote_generator/generate_typescript.rb → generate_typescript.rb} +13 -4
- data/src/{remote_generator/services → generators}/aggregate_entity_generator.rb +2 -2
- data/src/{remote_generator/services → generators}/aggregate_model_generator.rb +3 -3
- data/src/{remote_generator/services → generators}/atom_entity_generator.rb +3 -3
- data/src/{remote_generator/services → generators}/atom_model_generator.rb +3 -3
- data/src/{remote_generator/services → generators}/auth/access_tokens_generator.rb +1 -1
- data/src/generators/auth/login_command_generator.rb +29 -0
- data/src/{remote_generator/services → generators}/auth/login_generator.rb +4 -2
- data/src/generators/auth/logout_command_generator.rb +29 -0
- data/src/{remote_generator/services → generators}/auth/logout_generator.rb +4 -2
- data/src/{remote_generator/services → generators}/auth/refresh_login_generator.rb +4 -2
- data/src/generators/auth/requires_auth_command_generator.rb +27 -0
- data/src/{remote_generator/services → generators}/auth/requires_auth_generator.rb +4 -2
- data/src/{remote_generator/services → generators}/command_cast_result_generator.rb +33 -25
- data/src/{remote_generator/services → generators}/command_errors_generator.rb +2 -2
- data/src/{remote_generator/services → generators}/command_errors_index_generator.rb +1 -1
- data/src/generators/command_generator.rb +209 -0
- data/src/{remote_generator/services → generators}/command_inputs_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/command_manifest_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/command_result_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/dependency_group.rb +2 -2
- data/src/{remote_generator/services → generators}/domain_config_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/domain_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/domain_manifest_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/entity_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/entity_manifest_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/entity_variants_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/error_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/loaded_entity_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/manifest_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/model_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/model_manifest_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/model_variants_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/organization_config_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/organization_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/organization_manifest_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/processor_class_generator.rb +1 -1
- data/src/generators/remote_command_generator.rb +41 -0
- data/src/{remote_generator/services → generators}/root_manifest_generator.rb +1 -1
- data/src/{remote_generator/services → generators}/type_generator.rb +3 -3
- data/src/{remote_generator/services → generators}/typescript_from_manifest_base_generator.rb +42 -38
- data/src/{remote_generator/services → generators}/unloaded_entity_generator.rb +1 -1
- data/src/remote_generator.rb +21 -0
- data/src/{remote_generator/write_typescript_to_disk.rb → write_typescript_to_disk.rb} +10 -1
- data/templates/Command.ts.erb +39 -1
- data/templates/base/{RemoteCommand.ts → RemoteCommand.ts.erb} +28 -0
- metadata +46 -45
- data/src/remote_generator/services/auth/login_command_generator.rb +0 -17
- data/src/remote_generator/services/auth/logout_command_generator.rb +0 -17
- data/src/remote_generator/services/auth/requires_auth_command_generator.rb +0 -15
- data/src/remote_generator/services/command_generator.rb +0 -87
- /data/src/{remote_generator/association_depth.rb → association_depth.rb} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 63a56366d8d763f7a5945acb31f26942889b8801d87d473f1cf80670492984ea
|
|
4
|
+
data.tar.gz: f743ce22ffdf47ece2df4d68763a76c959072098fb50c2314da236c667cbc7e6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3296bab04a57c964281ee3e8b5e4b5db4f3cda345bfbbbf6c9667cbc1eba4cd2e75266a1be6d9cc38836d44b310355201f4590bec04fcf87a33f96e7e988c6fd
|
|
7
|
+
data.tar.gz: 18a1e5716e44579286b0251cbc9b30fc4814c5c7033578ff33d00b91a6640e7e20042acc0a93ded4ff2cc4d001c310f605a3eed448c839d7391b40dad0abf6ea
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [1.3.0] - 2026-02-26
|
|
2
|
+
|
|
3
|
+
- Add auto-dirty queries feature
|
|
4
|
+
|
|
5
|
+
## [1.2.7] - 2026-02-16
|
|
6
|
+
|
|
7
|
+
- Make generated castJsonResult.ts files undefined-safe
|
|
8
|
+
|
|
1
9
|
## [1.2.6] - 2026-02-16
|
|
2
10
|
|
|
3
11
|
- Make use of guaranteed_to_exist to avoid marking present delegates as optional
|
|
@@ -8,8 +8,11 @@ module Foobara
|
|
|
8
8
|
|
|
9
9
|
possible_error MissingManifestError
|
|
10
10
|
|
|
11
|
-
inputs
|
|
12
|
-
|
|
11
|
+
inputs do
|
|
12
|
+
raw_manifest :associative_array
|
|
13
|
+
manifest_url :string
|
|
14
|
+
auto_dirty_queries :boolean, default: false
|
|
15
|
+
end
|
|
13
16
|
|
|
14
17
|
def execute
|
|
15
18
|
load_manifest_if_needed
|
|
@@ -38,11 +41,11 @@ module Foobara
|
|
|
38
41
|
attr_accessor :command_manifest, :manifest_data
|
|
39
42
|
|
|
40
43
|
def base_generator
|
|
41
|
-
|
|
44
|
+
Generators::TypescriptFromManifestBaseGenerator
|
|
42
45
|
end
|
|
43
46
|
|
|
44
47
|
def templates_dir
|
|
45
|
-
"#{__dir__}
|
|
48
|
+
"#{__dir__}/../templates"
|
|
46
49
|
end
|
|
47
50
|
|
|
48
51
|
def load_manifest_if_needed
|
|
@@ -74,6 +77,12 @@ module Foobara
|
|
|
74
77
|
end
|
|
75
78
|
end
|
|
76
79
|
|
|
80
|
+
def generate_element
|
|
81
|
+
RemoteGenerator.auto_dirty_queries(auto_dirty_queries) do
|
|
82
|
+
super
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
77
86
|
def add_root_manifest_to_set_of_elements_to_generate
|
|
78
87
|
elements_to_generate << manifest
|
|
79
88
|
end
|
|
@@ -2,7 +2,7 @@ require_relative "loaded_entity_generator"
|
|
|
2
2
|
|
|
3
3
|
module Foobara
|
|
4
4
|
module RemoteGenerator
|
|
5
|
-
|
|
5
|
+
module Generators
|
|
6
6
|
class AggregateEntityGenerator < LoadedEntityGenerator
|
|
7
7
|
class << self
|
|
8
8
|
def new(relevant_manifest)
|
|
@@ -26,7 +26,7 @@ module Foobara
|
|
|
26
26
|
|
|
27
27
|
def model_generators
|
|
28
28
|
@model_generators ||= types_depended_on.select(&:model?).map do |model|
|
|
29
|
-
|
|
29
|
+
AggregateModelGenerator.new(model)
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Foobara
|
|
2
2
|
module RemoteGenerator
|
|
3
|
-
|
|
3
|
+
module Generators
|
|
4
4
|
class AggregateModelGenerator < ModelGenerator
|
|
5
5
|
class << self
|
|
6
6
|
def new(relevant_manifest)
|
|
@@ -27,9 +27,9 @@ module Foobara
|
|
|
27
27
|
def model_generators
|
|
28
28
|
@model_generators ||= types_depended_on.select(&:model?).map do |model|
|
|
29
29
|
if model.detached_entity?
|
|
30
|
-
|
|
30
|
+
AggregateEntityGenerator.new(model)
|
|
31
31
|
else
|
|
32
|
-
|
|
32
|
+
AggregateModelGenerator.new(model)
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Foobara
|
|
2
2
|
module RemoteGenerator
|
|
3
|
-
|
|
3
|
+
module Generators
|
|
4
4
|
class AtomEntityGenerator < LoadedEntityGenerator
|
|
5
5
|
class << self
|
|
6
6
|
def new(relevant_manifest)
|
|
@@ -25,9 +25,9 @@ module Foobara
|
|
|
25
25
|
def model_generators
|
|
26
26
|
@model_generators ||= types_depended_on.select(&:model?).map do |model|
|
|
27
27
|
if model.detached_entity?
|
|
28
|
-
|
|
28
|
+
UnloadedEntityGenerator.new(model)
|
|
29
29
|
else
|
|
30
|
-
|
|
30
|
+
AtomModelGenerator.new(model)
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Foobara
|
|
2
2
|
module RemoteGenerator
|
|
3
|
-
|
|
3
|
+
module Generators
|
|
4
4
|
class AtomModelGenerator < ModelGenerator
|
|
5
5
|
class << self
|
|
6
6
|
def new(relevant_manifest)
|
|
@@ -27,9 +27,9 @@ module Foobara
|
|
|
27
27
|
def model_generators
|
|
28
28
|
@model_generators ||= types_depended_on.select(&:model?).map do |model|
|
|
29
29
|
if model.detached_entity?
|
|
30
|
-
|
|
30
|
+
UnloadedEntityGenerator.new(model)
|
|
31
31
|
else
|
|
32
|
-
|
|
32
|
+
AtomModelGenerator.new(model)
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Foobara
|
|
2
|
+
module RemoteGenerator
|
|
3
|
+
module Generators
|
|
4
|
+
module Auth
|
|
5
|
+
class LoginCommandGenerator < TypescriptFromManifestBaseGenerator
|
|
6
|
+
def import_destructure
|
|
7
|
+
ts_instance_path.first
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def ts_instance_path
|
|
11
|
+
["LoginCommand"]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def ts_instance_full_path
|
|
15
|
+
["Foobara", "Auth", "LoginCommand"]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def template_path
|
|
19
|
+
["Foobara", "Auth", "LoginCommand.ts.erb"]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def dependencies
|
|
23
|
+
super + [AccessTokensGenerator.new(relevant_manifest)]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Foobara
|
|
2
2
|
module RemoteGenerator
|
|
3
|
-
|
|
3
|
+
module Generators
|
|
4
4
|
module Auth
|
|
5
5
|
class LoginGenerator < CommandGenerator
|
|
6
6
|
def base_class_path
|
|
@@ -8,7 +8,9 @@ module Foobara
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def dependencies
|
|
11
|
-
super
|
|
11
|
+
super.reject do |generator|
|
|
12
|
+
generator.is_a?(RemoteCommandGenerator)
|
|
13
|
+
end + [LoginCommandGenerator.new(relevant_manifest)]
|
|
12
14
|
end
|
|
13
15
|
end
|
|
14
16
|
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Foobara
|
|
2
|
+
module RemoteGenerator
|
|
3
|
+
module Generators
|
|
4
|
+
module Auth
|
|
5
|
+
class LogoutCommandGenerator < TypescriptFromManifestBaseGenerator
|
|
6
|
+
def import_destructure
|
|
7
|
+
ts_instance_path.first
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def ts_instance_path
|
|
11
|
+
["LogoutCommand"]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def ts_instance_full_path
|
|
15
|
+
["Foobara", "Auth", "LogoutCommand"]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def template_path
|
|
19
|
+
["Foobara", "Auth", "LogoutCommand.ts.erb"]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def dependencies
|
|
23
|
+
super + [AccessTokensGenerator.new(relevant_manifest)]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Foobara
|
|
2
2
|
module RemoteGenerator
|
|
3
|
-
|
|
3
|
+
module Generators
|
|
4
4
|
module Auth
|
|
5
5
|
class LogoutGenerator < CommandGenerator
|
|
6
6
|
def base_class_path
|
|
@@ -8,7 +8,9 @@ module Foobara
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def dependencies
|
|
11
|
-
super
|
|
11
|
+
super.reject do |generator|
|
|
12
|
+
generator.is_a?(RemoteCommandGenerator)
|
|
13
|
+
end + [LogoutCommandGenerator.new(relevant_manifest)]
|
|
12
14
|
end
|
|
13
15
|
end
|
|
14
16
|
end
|
|
@@ -2,7 +2,7 @@ require_relative "../command_generator"
|
|
|
2
2
|
|
|
3
3
|
module Foobara
|
|
4
4
|
module RemoteGenerator
|
|
5
|
-
|
|
5
|
+
module Generators
|
|
6
6
|
module Auth
|
|
7
7
|
class RefreshLoginGenerator < CommandGenerator
|
|
8
8
|
def base_class_path
|
|
@@ -10,7 +10,9 @@ module Foobara
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def dependencies
|
|
13
|
-
super
|
|
13
|
+
super.reject do |generator|
|
|
14
|
+
generator.is_a?(RemoteCommandGenerator)
|
|
15
|
+
end + [LoginCommandGenerator.new(relevant_manifest)]
|
|
14
16
|
end
|
|
15
17
|
end
|
|
16
18
|
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require_relative "../typescript_from_manifest_base_generator"
|
|
2
|
+
|
|
3
|
+
module Foobara
|
|
4
|
+
module RemoteGenerator
|
|
5
|
+
module Generators
|
|
6
|
+
module Auth
|
|
7
|
+
class RequiresAuthCommandGenerator < TypescriptFromManifestBaseGenerator
|
|
8
|
+
def import_destructure
|
|
9
|
+
ts_instance_path.first
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def ts_instance_path
|
|
13
|
+
["RequiresAuthCommand"]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def ts_instance_full_path
|
|
17
|
+
["Foobara", "Auth", "RequiresAuthCommand"]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def template_path
|
|
21
|
+
["Foobara", "Auth", "RequiresAuthCommand.ts.erb"]
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -2,7 +2,7 @@ require_relative "../command_generator"
|
|
|
2
2
|
|
|
3
3
|
module Foobara
|
|
4
4
|
module RemoteGenerator
|
|
5
|
-
|
|
5
|
+
module Generators
|
|
6
6
|
module Auth
|
|
7
7
|
class RequiresAuthGenerator < CommandGenerator
|
|
8
8
|
def base_class_path
|
|
@@ -10,7 +10,9 @@ module Foobara
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def dependencies
|
|
13
|
-
super
|
|
13
|
+
super.reject do |generator|
|
|
14
|
+
generator.is_a?(RemoteCommandGenerator)
|
|
15
|
+
end + [RequiresAuthCommandGenerator.new(relevant_manifest)]
|
|
14
16
|
end
|
|
15
17
|
end
|
|
16
18
|
end
|
|
@@ -2,7 +2,7 @@ require_relative "command_result_generator"
|
|
|
2
2
|
|
|
3
3
|
module Foobara
|
|
4
4
|
module RemoteGenerator
|
|
5
|
-
|
|
5
|
+
module Generators
|
|
6
6
|
class CommandCastResultGenerator < CommandResultGenerator
|
|
7
7
|
class CastTree
|
|
8
8
|
attr_accessor :children, :declaration_to_cast, :initial
|
|
@@ -43,20 +43,20 @@ module Foobara
|
|
|
43
43
|
|
|
44
44
|
if result_type.detached_entity? && atom?
|
|
45
45
|
declaration = result_type.is_a?(Manifest::TypeDeclaration) ? result_type.to_type : result_type
|
|
46
|
-
return @nested_model_generators = Set[
|
|
46
|
+
return @nested_model_generators = Set[AtomEntityGenerator.new(declaration)]
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
_models_reachable_from_declaration(result_type, initial: true)&.each do |model|
|
|
50
50
|
generator_class = if atom?
|
|
51
51
|
if model.detached_entity?
|
|
52
|
-
|
|
52
|
+
UnloadedEntityGenerator
|
|
53
53
|
else
|
|
54
|
-
|
|
54
|
+
AtomModelGenerator
|
|
55
55
|
end
|
|
56
56
|
elsif aggregate?
|
|
57
|
-
|
|
57
|
+
AggregateModelGenerator
|
|
58
58
|
else
|
|
59
|
-
|
|
59
|
+
ModelGenerator
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
new_generator = generator_class.new(model)
|
|
@@ -116,24 +116,24 @@ module Foobara
|
|
|
116
116
|
value: "element")
|
|
117
117
|
result << "})"
|
|
118
118
|
elsif child_cast_tree.is_a?(::Hash)
|
|
119
|
-
# TODO: either test this
|
|
119
|
+
# TODO: either test this code path or delete it
|
|
120
120
|
# :nocov:
|
|
121
121
|
property = path_part =~ /\A\d+\z/ ? path_part.to_i : "\"#{path_part}\""
|
|
122
122
|
|
|
123
123
|
result << cast_json_result_function_body(child_cast_tree,
|
|
124
124
|
parent:,
|
|
125
125
|
property:,
|
|
126
|
-
value: "#{parent}
|
|
126
|
+
value: "#{parent}?.#{path_part}")
|
|
127
127
|
# :nocov:
|
|
128
128
|
elsif child_cast_tree.is_a?(CastTree)
|
|
129
129
|
result << cast_json_result_function_body(child_cast_tree.children,
|
|
130
|
-
parent: "#{parent}
|
|
130
|
+
parent: "#{parent}?.#{path_part}")
|
|
131
131
|
|
|
132
132
|
property = path_part =~ /\A\d+\z/ ? path_part.to_i : "\"#{path_part}\""
|
|
133
133
|
result << _ts_cast_expression(child_cast_tree,
|
|
134
134
|
parent:,
|
|
135
135
|
property:,
|
|
136
|
-
value: "#{parent}
|
|
136
|
+
value: "#{parent}?.#{path_part}")
|
|
137
137
|
else
|
|
138
138
|
# :nocov:
|
|
139
139
|
raise "Not sure how to handle a #{cast_tree.class}: #{cast_tree}"
|
|
@@ -164,9 +164,9 @@ module Foobara
|
|
|
164
164
|
if property.nil?
|
|
165
165
|
parent
|
|
166
166
|
elsif property =~ /\A"(.*)"\z/
|
|
167
|
-
"#{parent}
|
|
167
|
+
"#{parent}?.#{$1}"
|
|
168
168
|
else
|
|
169
|
-
"#{parent}[#{property}]"
|
|
169
|
+
"#{parent}?.[#{property}]"
|
|
170
170
|
end
|
|
171
171
|
else
|
|
172
172
|
# TODO: either test this path or raise
|
|
@@ -183,21 +183,29 @@ module Foobara
|
|
|
183
183
|
|
|
184
184
|
type_symbol = type.type_symbol
|
|
185
185
|
|
|
186
|
-
value ||= lvalue
|
|
186
|
+
value ||= lvalue.dup
|
|
187
|
+
lvalue = lvalue.gsub("?.[", "[").gsub("?.", ".")
|
|
188
|
+
present_value = value.gsub("?.[", "[").gsub("?.", ".")
|
|
187
189
|
|
|
188
|
-
|
|
189
|
-
"#{lvalue} = new Date(#{value})"
|
|
190
|
-
elsif type.model?
|
|
191
|
-
ts_model_name = model_to_ts_model_name(type,
|
|
192
|
-
association_depth:,
|
|
193
|
-
initial: cast_tree.initial)
|
|
190
|
+
expression = "if (#{value} !== undefined) {\n"
|
|
194
191
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
192
|
+
expression += if type_symbol == :date || type_symbol == :datetime
|
|
193
|
+
"#{lvalue} = new Date(#{present_value})"
|
|
194
|
+
elsif type.model?
|
|
195
|
+
ts_model_name = model_to_ts_model_name(type,
|
|
196
|
+
association_depth:,
|
|
197
|
+
initial: cast_tree.initial)
|
|
198
|
+
|
|
199
|
+
"#{lvalue} = new #{ts_model_name}(#{present_value})"
|
|
200
|
+
else
|
|
201
|
+
# :nocov:
|
|
202
|
+
raise "Not sure how to cast type #{type} to a Typescript expression"
|
|
203
|
+
# :nocov:
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
expression += "\n}"
|
|
207
|
+
|
|
208
|
+
expression
|
|
201
209
|
end
|
|
202
210
|
|
|
203
211
|
def _construct_cast_tree(type_declaration, initial: false)
|
|
@@ -3,7 +3,7 @@ require_relative "command_generator"
|
|
|
3
3
|
|
|
4
4
|
module Foobara
|
|
5
5
|
module RemoteGenerator
|
|
6
|
-
|
|
6
|
+
module Generators
|
|
7
7
|
class CommandErrorsGenerator < CommandGenerator
|
|
8
8
|
alias command_manifest relevant_manifest
|
|
9
9
|
|
|
@@ -21,7 +21,7 @@ module Foobara
|
|
|
21
21
|
|
|
22
22
|
def error_generators
|
|
23
23
|
@error_generators ||= possible_errors.values.map(&:error).sort_by(&:error_name).uniq.map do |error|
|
|
24
|
-
|
|
24
|
+
ErrorGenerator.new(error)
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|