aws-sdk-resources 2.3.23 → 3.69.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 +5 -5
- data/bin/aws-v3.rb +201 -0
- data/lib/aws-sdk-resources.rb +223 -87
- metadata +3073 -71
- data/lib/aws-sdk-resources/batch.rb +0 -143
- data/lib/aws-sdk-resources/builder.rb +0 -85
- data/lib/aws-sdk-resources/builder_sources.rb +0 -105
- data/lib/aws-sdk-resources/collection.rb +0 -107
- data/lib/aws-sdk-resources/definition.rb +0 -331
- data/lib/aws-sdk-resources/documenter.rb +0 -70
- data/lib/aws-sdk-resources/documenter/base_operation_documenter.rb +0 -279
- data/lib/aws-sdk-resources/documenter/data_operation_documenter.rb +0 -25
- data/lib/aws-sdk-resources/documenter/has_many_operation_documenter.rb +0 -67
- data/lib/aws-sdk-resources/documenter/has_operation_documenter.rb +0 -66
- data/lib/aws-sdk-resources/documenter/operation_documenter.rb +0 -20
- data/lib/aws-sdk-resources/documenter/resource_operation_documenter.rb +0 -53
- data/lib/aws-sdk-resources/documenter/waiter_operation_documenter.rb +0 -77
- data/lib/aws-sdk-resources/errors.rb +0 -15
- data/lib/aws-sdk-resources/operation_methods.rb +0 -83
- data/lib/aws-sdk-resources/operations.rb +0 -280
- data/lib/aws-sdk-resources/options.rb +0 -17
- data/lib/aws-sdk-resources/request.rb +0 -39
- data/lib/aws-sdk-resources/request_params.rb +0 -140
- data/lib/aws-sdk-resources/resource.rb +0 -243
- data/lib/aws-sdk-resources/services/ec2.rb +0 -21
- data/lib/aws-sdk-resources/services/ec2/instance.rb +0 -29
- data/lib/aws-sdk-resources/services/iam.rb +0 -19
- data/lib/aws-sdk-resources/services/s3.rb +0 -19
- data/lib/aws-sdk-resources/services/s3/bucket.rb +0 -127
- data/lib/aws-sdk-resources/services/s3/encryption.rb +0 -21
- data/lib/aws-sdk-resources/services/s3/encryption/client.rb +0 -369
- data/lib/aws-sdk-resources/services/s3/encryption/decrypt_handler.rb +0 -174
- data/lib/aws-sdk-resources/services/s3/encryption/default_cipher_provider.rb +0 -63
- data/lib/aws-sdk-resources/services/s3/encryption/default_key_provider.rb +0 -38
- data/lib/aws-sdk-resources/services/s3/encryption/encrypt_handler.rb +0 -50
- data/lib/aws-sdk-resources/services/s3/encryption/errors.rb +0 -13
- data/lib/aws-sdk-resources/services/s3/encryption/io_auth_decrypter.rb +0 -50
- data/lib/aws-sdk-resources/services/s3/encryption/io_decrypter.rb +0 -29
- data/lib/aws-sdk-resources/services/s3/encryption/io_encrypter.rb +0 -69
- data/lib/aws-sdk-resources/services/s3/encryption/key_provider.rb +0 -29
- data/lib/aws-sdk-resources/services/s3/encryption/kms_cipher_provider.rb +0 -71
- data/lib/aws-sdk-resources/services/s3/encryption/materials.rb +0 -58
- data/lib/aws-sdk-resources/services/s3/encryption/utils.rb +0 -79
- data/lib/aws-sdk-resources/services/s3/file_part.rb +0 -75
- data/lib/aws-sdk-resources/services/s3/file_uploader.rb +0 -58
- data/lib/aws-sdk-resources/services/s3/multipart_file_uploader.rb +0 -187
- data/lib/aws-sdk-resources/services/s3/multipart_upload.rb +0 -42
- data/lib/aws-sdk-resources/services/s3/multipart_upload_error.rb +0 -16
- data/lib/aws-sdk-resources/services/s3/object.rb +0 -257
- data/lib/aws-sdk-resources/services/s3/object_copier.rb +0 -99
- data/lib/aws-sdk-resources/services/s3/object_multipart_copier.rb +0 -179
- data/lib/aws-sdk-resources/services/s3/object_summary.rb +0 -65
- data/lib/aws-sdk-resources/services/s3/presigned_post.rb +0 -647
- data/lib/aws-sdk-resources/services/sns.rb +0 -7
- data/lib/aws-sdk-resources/services/sns/message_verifier.rb +0 -157
- data/lib/aws-sdk-resources/services/sqs.rb +0 -7
- data/lib/aws-sdk-resources/services/sqs/queue_poller.rb +0 -521
- data/lib/aws-sdk-resources/source.rb +0 -39
@@ -1,70 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
|
3
|
-
module Aws
|
4
|
-
module Resources
|
5
|
-
class Documenter
|
6
|
-
|
7
|
-
autoload :BaseOperationDocumenter, 'aws-sdk-resources/documenter/base_operation_documenter'
|
8
|
-
autoload :HasOperationDocumenter, 'aws-sdk-resources/documenter/has_operation_documenter'
|
9
|
-
autoload :HasManyOperationDocumenter, 'aws-sdk-resources/documenter/has_many_operation_documenter'
|
10
|
-
autoload :OperationDocumenter, 'aws-sdk-resources/documenter/operation_documenter'
|
11
|
-
autoload :ResourceOperationDocumenter, 'aws-sdk-resources/documenter/resource_operation_documenter'
|
12
|
-
autoload :WaiterOperationDocumenter, 'aws-sdk-resources/documenter/waiter_operation_documenter'
|
13
|
-
|
14
|
-
class << self
|
15
|
-
|
16
|
-
include Seahorse::Model::Shapes
|
17
|
-
|
18
|
-
def apply_customizations
|
19
|
-
document_s3_object_upload_file_additional_options
|
20
|
-
document_s3_object_copy_from_options
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def document_s3_object_upload_file_additional_options
|
26
|
-
input = Aws::S3::Client.api.operation(:create_multipart_upload).input
|
27
|
-
opts = input.shape.member_names - [:bucket, :key]
|
28
|
-
tags = opts.map do |opt|
|
29
|
-
ref = input.shape.member(opt)
|
30
|
-
type = case ref.shape
|
31
|
-
when StructureShape then 'Structure'
|
32
|
-
when ListShape then 'Array'
|
33
|
-
when MapShape then 'Hash'
|
34
|
-
when StringShape then 'String'
|
35
|
-
when IntegerShape then 'Integer'
|
36
|
-
when FloatShape then 'Float'
|
37
|
-
when BooleanShape then 'Boolean'
|
38
|
-
when TimestampShape then 'Time'
|
39
|
-
when BlobShape then 'IO'
|
40
|
-
else
|
41
|
-
raise "unhandled shape class `#{ref.shape.class.name}'"
|
42
|
-
end
|
43
|
-
docs = ref.documentation || ref.shape.documentation
|
44
|
-
"@option options [#{type}] :#{opt} #{docs}"
|
45
|
-
end
|
46
|
-
tags = YARD::DocstringParser.new.parse(tags).to_docstring.tags
|
47
|
-
m = YARD::Registry['Aws::S3::Object#upload_file']
|
48
|
-
tags.each { |tag| m.add_tag(tag) }
|
49
|
-
end
|
50
|
-
|
51
|
-
def document_s3_object_copy_from_options
|
52
|
-
copy_from = YARD::Registry['Aws::S3::Object#copy_from']
|
53
|
-
copy_to = YARD::Registry['Aws::S3::Object#copy_to']
|
54
|
-
existing_tags = copy_from.tags
|
55
|
-
existing_tags.each do |tag|
|
56
|
-
if tag.tag_name == 'option' && tag.pair.name != ":copy_source"
|
57
|
-
copy_from.add_tag(tag)
|
58
|
-
copy_to.add_tag(tag)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def tag(string)
|
64
|
-
YARD::DocstringParser.new.parse(string).to_docstring.tags.first
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
@@ -1,279 +0,0 @@
|
|
1
|
-
require 'set'
|
2
|
-
|
3
|
-
module Aws
|
4
|
-
module Resources
|
5
|
-
class Documenter
|
6
|
-
class BaseOperationDocumenter
|
7
|
-
|
8
|
-
include Api::Docs::Utils
|
9
|
-
include Seahorse::Model::Shapes
|
10
|
-
|
11
|
-
def initialize(yard_class, resource_class, operation_name, operation)
|
12
|
-
@yard_class = yard_class
|
13
|
-
@resource_class = resource_class
|
14
|
-
@resource_class_name = @resource_class.name.split('::').last
|
15
|
-
@operation_name = operation_name.to_s
|
16
|
-
@operation = operation
|
17
|
-
@source = @operation.source
|
18
|
-
if @operation.respond_to?(:request)
|
19
|
-
@api_request_name = @operation.request.method_name
|
20
|
-
@api_request = @resource_class.client_class.api.operation(@api_request_name)
|
21
|
-
@api_request_params = @operation.request.params
|
22
|
-
@request_operation_name = @operation.request.method_name.to_s
|
23
|
-
@called_operation = "Client##{@api_request_name}"
|
24
|
-
@yard_client_operation = YARD::Registry["#{@resource_class.client_class.name}##{api_request_name}"]
|
25
|
-
|
26
|
-
end
|
27
|
-
if @operation.respond_to?(:builder)
|
28
|
-
@builder = @operation.builder
|
29
|
-
@target_resource_class = @builder.resource_class
|
30
|
-
@target_resource_class_name = @target_resource_class.name.split('::').last
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
# @return [YARD::CodeObject::ClassObject]
|
35
|
-
attr_reader :yard_class
|
36
|
-
|
37
|
-
# @return [Class<Resource>] Returns the resource class this
|
38
|
-
# operation belongs to.
|
39
|
-
attr_reader :resource_class
|
40
|
-
|
41
|
-
# @return [String] The name of this resource operation.
|
42
|
-
attr_reader :operation_name
|
43
|
-
|
44
|
-
# @return [String] Returns the name of the resource class being
|
45
|
-
# documented without the namespace prefix. Example:
|
46
|
-
#
|
47
|
-
# * Aws::S3::Resource => 'Resource'
|
48
|
-
# * Aws::S3::Bucket => 'Bucket'
|
49
|
-
#
|
50
|
-
attr_reader :resource_class_name
|
51
|
-
|
52
|
-
# @return [Class<Resource>,nil] Returns the class of the resource
|
53
|
-
# returned by invoking this operation. Returns `nil` if this operation
|
54
|
-
# does not return any resource objects.
|
55
|
-
attr_reader :target_resource_class
|
56
|
-
|
57
|
-
# @return [String,nil] Returns the name of the resource class
|
58
|
-
# returned by this operation. This is the base name of
|
59
|
-
# the class without a namespace prefix. Returns `nil` if this
|
60
|
-
# operation does not return any resource objects.
|
61
|
-
attr_reader :target_resource_class_name
|
62
|
-
|
63
|
-
# @return [String,nil] Returns the name of the API operation called
|
64
|
-
# on the client. Returns `nil` if this operation does not make
|
65
|
-
# any API requests.
|
66
|
-
attr_reader :api_request_name
|
67
|
-
|
68
|
-
# @return [Seahorse::Model::Operation,nil] Returns the model of the
|
69
|
-
# API operation called. Returns `nil` if this operation does not make
|
70
|
-
# any API requests.
|
71
|
-
attr_reader :api_request
|
72
|
-
|
73
|
-
# @return [Array<Resources::RequestParams::Base>, nil] Returns the
|
74
|
-
# parameters this operation binds to the made request. Returns `nil`
|
75
|
-
# if this operation does not make a request.
|
76
|
-
attr_reader :api_request_params
|
77
|
-
|
78
|
-
# @return [String,nil] Returns the `Client#operation_name` reference.
|
79
|
-
# This is useful for generating `@see` tags and `{links}`.
|
80
|
-
attr_reader :called_operation
|
81
|
-
|
82
|
-
# @return [Builder,nil] Returns the resource builder for
|
83
|
-
# this operation. Returns `nil` if this operation does not build
|
84
|
-
# and return resource objects.
|
85
|
-
attr_reader :builder
|
86
|
-
|
87
|
-
# @return [Source]
|
88
|
-
attr_reader :source
|
89
|
-
|
90
|
-
# Constructs and returns a new YARD method object for this operation.
|
91
|
-
# @return [YARD::CodeObject::MethodObject]
|
92
|
-
def method_object
|
93
|
-
if m = YARD::Registry[@resource_class.name + "##{operation_name}"]
|
94
|
-
else
|
95
|
-
m = YARD::CodeObjects::MethodObject.new(yard_class, operation_name)
|
96
|
-
m.docstring = docstring
|
97
|
-
m.parameters = parameters
|
98
|
-
end
|
99
|
-
m.scope = :instance
|
100
|
-
if source
|
101
|
-
m.source_type = :json
|
102
|
-
m.source = source.format
|
103
|
-
filename = source.file
|
104
|
-
filename = filename.match('(aws-sdk-core/apis/.+)')[1]
|
105
|
-
m.add_file(filename, nil, true)
|
106
|
-
end
|
107
|
-
tags.each do |tag|
|
108
|
-
m.add_tag(tag)
|
109
|
-
end
|
110
|
-
m
|
111
|
-
end
|
112
|
-
|
113
|
-
private
|
114
|
-
|
115
|
-
def parameters
|
116
|
-
if option_tags.empty?
|
117
|
-
[]
|
118
|
-
else
|
119
|
-
[['options', '{}']]
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
def docstring
|
124
|
-
''
|
125
|
-
end
|
126
|
-
|
127
|
-
def tags
|
128
|
-
(option_tags + example_tags + [return_tag] + see_also_tags).compact
|
129
|
-
end
|
130
|
-
|
131
|
-
# This method should be overridden in sub-classes to add YARD tags
|
132
|
-
# to the method code object.
|
133
|
-
# @return [Array<YARD::Tag>]
|
134
|
-
def example_tags
|
135
|
-
if api_request && api_request.input
|
136
|
-
[request_syntax_example_tag]
|
137
|
-
else
|
138
|
-
[]
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
def request_syntax_example_tag
|
143
|
-
input = operation_input_ref(api_request, without: fixed_param_names)
|
144
|
-
params = Api::Docs::ParamFormatter.new(input).format
|
145
|
-
example = "#{variable_name}.#{operation_name}(#{params})"
|
146
|
-
example = "@example Request syntax example with placeholder values" +
|
147
|
-
"\n\n " + example.lines.join(' ')
|
148
|
-
tag(example)
|
149
|
-
end
|
150
|
-
|
151
|
-
def option_tags
|
152
|
-
if api_request && api_request.input
|
153
|
-
skip = fixed_param_names
|
154
|
-
tags = []
|
155
|
-
@yard_client_operation.tags.each do |tag|
|
156
|
-
if YARD::Tags::OptionTag === tag
|
157
|
-
next if skip.include?(tag.pair.name[1..-1]) # remove `:` prefix
|
158
|
-
tags << tag
|
159
|
-
end
|
160
|
-
end
|
161
|
-
tags
|
162
|
-
else
|
163
|
-
[]
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
# Returns a set of root input params that are provided by default
|
168
|
-
# by this operation. These params should not be documented in syntax
|
169
|
-
# examples or in option tags.
|
170
|
-
def fixed_param_names
|
171
|
-
if api_request_params
|
172
|
-
Set.new(api_request_params.map { |p| p.target.split(/\b/).first })
|
173
|
-
else
|
174
|
-
Set.new
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
|
-
# If this operation makes an API request, then a `@see` tag is
|
179
|
-
# returned that references the client API operation.
|
180
|
-
# @return [Array<YARD::Tag>]
|
181
|
-
def see_also_tags
|
182
|
-
tags = []
|
183
|
-
tags += related_resource_operation_tags if target_resource_class
|
184
|
-
tags += called_operation_tag if called_operation
|
185
|
-
tags
|
186
|
-
end
|
187
|
-
|
188
|
-
def called_operation_tag
|
189
|
-
tag = "@see #{called_operation}"
|
190
|
-
YARD::DocstringParser.new.parse(tag).to_docstring.tags
|
191
|
-
end
|
192
|
-
|
193
|
-
def related_resource_operation_tags
|
194
|
-
tags = []
|
195
|
-
resource_class.operations.each do |name,op|
|
196
|
-
if
|
197
|
-
name.to_s != self.operation_name &&
|
198
|
-
op.respond_to?(:builder) &&
|
199
|
-
op.builder.resource_class == target_resource_class
|
200
|
-
then
|
201
|
-
tags << "@see ##{name}"
|
202
|
-
end
|
203
|
-
end
|
204
|
-
YARD::DocstringParser.new.parse(tags.sort.join("\n")).to_docstring.tags
|
205
|
-
end
|
206
|
-
|
207
|
-
# Returns a suitable variable name for the resource class being
|
208
|
-
# documented:
|
209
|
-
#
|
210
|
-
# Aws::S3::Resource => 's3'
|
211
|
-
# Aws::S3::Bucket => 'bucket'
|
212
|
-
#
|
213
|
-
def variable_name
|
214
|
-
parts = resource_class.name.split('::')
|
215
|
-
(parts.last == 'Resource' ? parts[-2] : parts[-1]).downcase
|
216
|
-
end
|
217
|
-
|
218
|
-
def path_type
|
219
|
-
case path_shape
|
220
|
-
when StructureShape then 'Structure'
|
221
|
-
when ListShape then 'Array'
|
222
|
-
when MapShape then 'Hash'
|
223
|
-
when StringShape then 'String'
|
224
|
-
when IntegerShape then 'Integer'
|
225
|
-
when FloatShape then 'Float'
|
226
|
-
when BooleanShape then 'Boolean'
|
227
|
-
when TimestampShape then 'Time'
|
228
|
-
when BlobShape then 'IO'
|
229
|
-
else
|
230
|
-
raise "unhandled shape class `#{path_shape.class.name}'"
|
231
|
-
end
|
232
|
-
end
|
233
|
-
|
234
|
-
def path_shape
|
235
|
-
resolve_shape(response_shape, @operation.path)
|
236
|
-
end
|
237
|
-
|
238
|
-
# Returns the output shape for the called operation.
|
239
|
-
def response_shape
|
240
|
-
api = resource_class.client_class.api
|
241
|
-
output = api.operation(@operation.request.method_name).output
|
242
|
-
output ? output.shape : nil
|
243
|
-
end
|
244
|
-
|
245
|
-
def resolve_shape(shape, path)
|
246
|
-
if path != '@'
|
247
|
-
shape = path.scan(/\w+|\[.*?\]/).inject(shape) do |shape, part|
|
248
|
-
if part[0] == '['
|
249
|
-
shape.member.shape
|
250
|
-
else
|
251
|
-
shape.member(part).shape
|
252
|
-
end
|
253
|
-
end
|
254
|
-
end
|
255
|
-
end
|
256
|
-
|
257
|
-
def param_type(ref)
|
258
|
-
case ref.shape
|
259
|
-
when BlobShape then 'IO'
|
260
|
-
when BooleanShape then 'Boolean'
|
261
|
-
when FloatShape then 'Float'
|
262
|
-
when IntegerShape then 'Integer'
|
263
|
-
when ListShape then 'Array'
|
264
|
-
when MapShape then 'Hash'
|
265
|
-
when StringShape then 'String'
|
266
|
-
when StructureShape then 'Hash'
|
267
|
-
when TimestampShape then 'Time'
|
268
|
-
else raise 'unhandled type'
|
269
|
-
end
|
270
|
-
end
|
271
|
-
|
272
|
-
def docs(ref)
|
273
|
-
ref.documentation || ref.shape.documentation
|
274
|
-
end
|
275
|
-
|
276
|
-
end
|
277
|
-
end
|
278
|
-
end
|
279
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Aws
|
2
|
-
module Resources
|
3
|
-
class Documenter
|
4
|
-
class DataOperationDocumenter < BaseOperationDocumenter
|
5
|
-
|
6
|
-
def return_type
|
7
|
-
if plural?
|
8
|
-
"Array<#{path_type}>"
|
9
|
-
else
|
10
|
-
path_type
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def return_tag
|
15
|
-
tag("@return [#{return_type}]")
|
16
|
-
end
|
17
|
-
|
18
|
-
def plural?
|
19
|
-
!!@operation.path.match(/\[/)
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
module Aws
|
2
|
-
module Resources
|
3
|
-
class Documenter
|
4
|
-
class HasManyOperationDocumenter < BaseOperationDocumenter
|
5
|
-
|
6
|
-
def docstring
|
7
|
-
super + ' ' +<<-DOCSTRING.lstrip
|
8
|
-
Returns a {Resources::Collection Collection} of {#{target_resource_class_name}}
|
9
|
-
resources. No API requests are made until you call an enumerable method on the
|
10
|
-
collection. {#{called_operation}} will be called multiple times until every
|
11
|
-
{#{target_resource_class_name}} has been yielded.
|
12
|
-
DOCSTRING
|
13
|
-
end
|
14
|
-
|
15
|
-
def return_tag
|
16
|
-
tag("@return [Collection<#{target_resource_class_name}>]")
|
17
|
-
end
|
18
|
-
|
19
|
-
def example_tags
|
20
|
-
tags = super
|
21
|
-
tags << enumerate_example_tag
|
22
|
-
tags << enumerate_with_limit_example_tag
|
23
|
-
tags << batch_examples_tag if target_resource_batches?
|
24
|
-
tags
|
25
|
-
end
|
26
|
-
|
27
|
-
def enumerate_example_tag
|
28
|
-
tag(<<-EXAMPLE.strip)
|
29
|
-
@example Enumerating {#{target_resource_class_name}} resources.
|
30
|
-
#{variable_name}.#{@operation_name}.each do |#{target_resource_class_name.downcase}|
|
31
|
-
# yields each #{target_resource_class_name.downcase}
|
32
|
-
end
|
33
|
-
EXAMPLE
|
34
|
-
end
|
35
|
-
|
36
|
-
def enumerate_with_limit_example_tag
|
37
|
-
tag(<<-EXAMPLE.strip)
|
38
|
-
@example Enumerating {#{target_resource_class_name}} resources with a limit.
|
39
|
-
#{variable_name}.#{@operation_name}.limit(10).each do |#{target_resource_class_name.downcase}|
|
40
|
-
# yields at most 10 #{@operation_name}
|
41
|
-
end
|
42
|
-
EXAMPLE
|
43
|
-
end
|
44
|
-
|
45
|
-
def batch_examples_tag
|
46
|
-
example = []
|
47
|
-
example << "@example Batch operations callable on the returned collection"
|
48
|
-
target_resource_batch_operations.each do |name, operation|
|
49
|
-
example << ""
|
50
|
-
example << " # calls Client##{operation.request.method_name} on each batch"
|
51
|
-
example << " #{variable_name}.#{@operation_name}.#{name}"
|
52
|
-
end
|
53
|
-
tag(example.join("\n"))
|
54
|
-
end
|
55
|
-
|
56
|
-
def target_resource_batches?
|
57
|
-
target_resource_batch_operations.count > 0
|
58
|
-
end
|
59
|
-
|
60
|
-
def target_resource_batch_operations
|
61
|
-
target_resource_class.batch_operations
|
62
|
-
end
|
63
|
-
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
module Aws
|
2
|
-
module Resources
|
3
|
-
class Documenter
|
4
|
-
class HasOperationDocumenter < BaseOperationDocumenter
|
5
|
-
|
6
|
-
def return_tag
|
7
|
-
if plural?
|
8
|
-
type = "Array<#{target_resource_class_name}>"
|
9
|
-
else
|
10
|
-
type = target_resource_class_name
|
11
|
-
end
|
12
|
-
type += ',nil' if can_return_nil?
|
13
|
-
tag("@return [#{type}]")
|
14
|
-
end
|
15
|
-
|
16
|
-
def parameters
|
17
|
-
if argument?
|
18
|
-
arguments.map { |arg| [argument_name(arg), nil] }
|
19
|
-
else
|
20
|
-
[]
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def tags
|
25
|
-
tags = super
|
26
|
-
if argument?
|
27
|
-
arguments.each do |arg|
|
28
|
-
tag = "@param [String] #{argument_name(arg)} "
|
29
|
-
tag << "The {#{target_resource_class_name}##{argument_name(arg)}} "
|
30
|
-
tag << "identifier."
|
31
|
-
tags += YARD::DocstringParser.new.parse(tag).to_docstring.tags
|
32
|
-
end
|
33
|
-
end
|
34
|
-
tags
|
35
|
-
end
|
36
|
-
|
37
|
-
def plural?
|
38
|
-
@operation.builder.plural?
|
39
|
-
end
|
40
|
-
|
41
|
-
def argument?
|
42
|
-
@operation.arity > 0
|
43
|
-
end
|
44
|
-
|
45
|
-
def can_return_nil?
|
46
|
-
data_member
|
47
|
-
end
|
48
|
-
|
49
|
-
def data_member
|
50
|
-
builder.sources.find { |s| BuilderSources::DataMember === s }
|
51
|
-
end
|
52
|
-
|
53
|
-
def arguments
|
54
|
-
builder.sources.select do |source|
|
55
|
-
BuilderSources::Argument === source
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def argument_name(argument)
|
60
|
-
argument.target.to_s
|
61
|
-
end
|
62
|
-
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|