bio-basespace-sdk 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bio-basespace-sdk might be problematic. Click here for more details.
- data/.document +5 -0
- data/.rspec +1 -0
- data/.travis.yml +11 -0
- data/Gemfile +16 -0
- data/License.txt +275 -0
- data/README.md +671 -0
- data/Rakefile +54 -0
- data/VERSION +1 -0
- data/examples/0_app_triggering.rb +135 -0
- data/examples/1_authentication.rb +156 -0
- data/examples/2_browsing.rb +84 -0
- data/examples/3_accessing_files.rb +129 -0
- data/examples/4_app_result_upload.rb +102 -0
- data/examples/5_purchasing.rb +119 -0
- data/lib/basespace.rb +126 -0
- data/lib/basespace/api/api_client.rb +313 -0
- data/lib/basespace/api/base_api.rb +242 -0
- data/lib/basespace/api/basespace_api.rb +789 -0
- data/lib/basespace/api/basespace_error.rb +80 -0
- data/lib/basespace/api/billing_api.rb +115 -0
- data/lib/basespace/model.rb +78 -0
- data/lib/basespace/model/app_result.rb +158 -0
- data/lib/basespace/model/app_result_response.rb +40 -0
- data/lib/basespace/model/app_session.rb +99 -0
- data/lib/basespace/model/app_session_compact.rb +43 -0
- data/lib/basespace/model/app_session_launch_object.rb +58 -0
- data/lib/basespace/model/app_session_response.rb +41 -0
- data/lib/basespace/model/application.rb +47 -0
- data/lib/basespace/model/application_compact.rb +44 -0
- data/lib/basespace/model/basespace_model.rb +60 -0
- data/lib/basespace/model/coverage.rb +48 -0
- data/lib/basespace/model/coverage_meta_response.rb +40 -0
- data/lib/basespace/model/coverage_metadata.rb +43 -0
- data/lib/basespace/model/coverage_response.rb +40 -0
- data/lib/basespace/model/file.rb +172 -0
- data/lib/basespace/model/file_response.rb +40 -0
- data/lib/basespace/model/genome_response.rb +40 -0
- data/lib/basespace/model/genome_v1.rb +56 -0
- data/lib/basespace/model/list_response.rb +53 -0
- data/lib/basespace/model/multipart_upload.rb +288 -0
- data/lib/basespace/model/product.rb +50 -0
- data/lib/basespace/model/project.rb +103 -0
- data/lib/basespace/model/project_response.rb +40 -0
- data/lib/basespace/model/purchase.rb +89 -0
- data/lib/basespace/model/purchase_response.rb +39 -0
- data/lib/basespace/model/purchased_product.rb +56 -0
- data/lib/basespace/model/query_parameters.rb +86 -0
- data/lib/basespace/model/query_parameters_purchased_product.rb +67 -0
- data/lib/basespace/model/refund_purchase_response.rb +40 -0
- data/lib/basespace/model/resource_list.rb +48 -0
- data/lib/basespace/model/response_status.rb +42 -0
- data/lib/basespace/model/run_compact.rb +55 -0
- data/lib/basespace/model/sample.rb +127 -0
- data/lib/basespace/model/sample_response.rb +40 -0
- data/lib/basespace/model/user.rb +80 -0
- data/lib/basespace/model/user_compact.rb +45 -0
- data/lib/basespace/model/user_response.rb +40 -0
- data/lib/basespace/model/variant.rb +57 -0
- data/lib/basespace/model/variant_header.rb +44 -0
- data/lib/basespace/model/variant_info.rb +48 -0
- data/lib/basespace/model/variants_header_response.rb +40 -0
- data/spec/basespaceapi_spec.rb +26 -0
- data/spec/basespaceerror_spec.rb +87 -0
- data/spec/basespacemodel_spec.rb +57 -0
- metadata +239 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
# Copyright 2013 Toshiaki Katayama, Joachim Baran
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
require 'basespace/model'
|
15
|
+
|
16
|
+
module Bio
|
17
|
+
module BaseSpace
|
18
|
+
|
19
|
+
# Meta response about coverage data.
|
20
|
+
class CoverageMetaResponse < Model
|
21
|
+
|
22
|
+
# Create a new CoverageMetaResponse instance.
|
23
|
+
def initialize
|
24
|
+
@swagger_types = {
|
25
|
+
'ResponseStatus' => 'ResponseStatus',
|
26
|
+
'Response' => 'CoverageMetadata',
|
27
|
+
'Notifications' => 'list<Str>',
|
28
|
+
}
|
29
|
+
@attributes = {
|
30
|
+
'ResponseStatus' => nil, # ResponseStatus'
|
31
|
+
'Response' => nil, # CoverageMetadata'
|
32
|
+
'Notifications' => nil, # list<Str>'
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end # module BaseSpace
|
39
|
+
end # module Bio
|
40
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Copyright 2013 Toshiaki Katayama, Joachim Baran
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
require 'basespace/model'
|
15
|
+
|
16
|
+
module Bio
|
17
|
+
module BaseSpace
|
18
|
+
|
19
|
+
# Models coverage metadata.
|
20
|
+
class CoverageMetadata < Model
|
21
|
+
|
22
|
+
# Create a new CoeverageMetadata instance.
|
23
|
+
def initialize
|
24
|
+
@swagger_types = {
|
25
|
+
'MaxCoverage' => 'int',
|
26
|
+
'CoverageGranularity' => 'int',
|
27
|
+
}
|
28
|
+
@attributes = {
|
29
|
+
'MaxCoverage' => nil, # int Maximum coverage value of any base, on a per-base level, for the entire chromosome. Useful for scaling
|
30
|
+
'CoverageGranularity' => nil, # int Supported granularity of queries
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
# Return a string denoting the maximum coverage and coverage granularity.
|
35
|
+
def to_s
|
36
|
+
return "CoverageMeta: max=#{get_attr('MaxCoverage')} gran=#{get_attr('CoverageGranularity')}"
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end # module BaseSpace
|
42
|
+
end # module Bio
|
43
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Copyright 2013 Toshiaki Katayama, Joachim Baran
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
require 'basespace/model'
|
15
|
+
|
16
|
+
module Bio
|
17
|
+
module BaseSpace
|
18
|
+
|
19
|
+
# Response of a coverage object.
|
20
|
+
class CoverageResponse < Model
|
21
|
+
|
22
|
+
# Create a new CoverageResponse.
|
23
|
+
def initialize
|
24
|
+
@swagger_types = {
|
25
|
+
'ResponseStatus' => 'ResponseStatus',
|
26
|
+
'Response' => 'Coverage',
|
27
|
+
'Notifications' => 'list<Str>',
|
28
|
+
}
|
29
|
+
@attributes = {
|
30
|
+
'ResponseStatus' => nil, # ResponseStatus
|
31
|
+
'Response' => nil, # Coverage
|
32
|
+
'Notifications' => nil, # list<Str>
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end # module BaseSpace
|
39
|
+
end # module Bio
|
40
|
+
|
@@ -0,0 +1,172 @@
|
|
1
|
+
# Copyright 2013 Toshiaki Katayama, Joachim Baran
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
require 'basespace/api/basespace_error'
|
15
|
+
require 'basespace/model'
|
16
|
+
|
17
|
+
module Bio
|
18
|
+
module BaseSpace
|
19
|
+
|
20
|
+
# Represents a BaseSpace file object.
|
21
|
+
class File < Model
|
22
|
+
|
23
|
+
# Create a new File instance.
|
24
|
+
def initialize
|
25
|
+
@swagger_types = {
|
26
|
+
'Name' => 'str',
|
27
|
+
'HrefCoverage' => 'str',
|
28
|
+
'HrefParts' => 'str',
|
29
|
+
'DateCreated' => 'datetime',
|
30
|
+
'UploadStatus' => 'str',
|
31
|
+
'Id' => 'str',
|
32
|
+
'Href' => 'str',
|
33
|
+
'HrefContent' => 'str',
|
34
|
+
'HrefVariants' => 'str',
|
35
|
+
'ContentType' => 'str',
|
36
|
+
'Path' => 'str',
|
37
|
+
'Size' => 'int',
|
38
|
+
}
|
39
|
+
@attributes = {
|
40
|
+
'Name' => nil, # str
|
41
|
+
# If set, provides the relative Uri to fetch the mean coverage statistics for data stored in the file
|
42
|
+
'HrefCoverage' => nil, # str
|
43
|
+
# If set, provides the relative Uri to fetch a list of completed file parts for multi-part file uploads in progress
|
44
|
+
'HrefParts' => nil, # str
|
45
|
+
'DateCreated' => nil, # datetime
|
46
|
+
'UploadStatus' => nil, # str
|
47
|
+
'Id' => nil, # str
|
48
|
+
'Href' => nil, # str
|
49
|
+
'HrefContent' => nil, # str
|
50
|
+
# If set, provides the relative Uri to fetch the variants stored in the file
|
51
|
+
'HrefVariants' => nil, # str
|
52
|
+
'ContentType' => nil, # str
|
53
|
+
'Path' => nil, # str
|
54
|
+
'Size' => nil, # int
|
55
|
+
}
|
56
|
+
end
|
57
|
+
|
58
|
+
# Returns the name of the file, its ID, size and upload status.
|
59
|
+
def to_s
|
60
|
+
str = get_attr('Name')
|
61
|
+
begin
|
62
|
+
str += " - id: '#{get_attr('Id')}', size: '#{get_attr('Size')}'"
|
63
|
+
str += ", status: '#{get_attr('UploadStatus')}'" if get_attr('UploadStatus')
|
64
|
+
rescue => err
|
65
|
+
# [TODO] What to do with this 'err'?
|
66
|
+
$stderr.puts " # ----- File#to_s ----- "
|
67
|
+
$stderr.puts " # Error: #{err}"
|
68
|
+
$stderr.puts " # "
|
69
|
+
end
|
70
|
+
return str
|
71
|
+
end
|
72
|
+
|
73
|
+
# Tests if the File instance has been initialized.
|
74
|
+
#
|
75
|
+
# Throws ModelNotInitializedError, if the instance has not been populated yet.
|
76
|
+
def is_init
|
77
|
+
raise ModelNotInitializedError.new('The File model has not been initialized yet') unless get_attr('Id')
|
78
|
+
end
|
79
|
+
|
80
|
+
# Tests if the File instance matches the filetype parameter.
|
81
|
+
#
|
82
|
+
# +filetype+:: The filetype for coverage or variant requests (bam|vcf).
|
83
|
+
def is_valid_file_option(filetype)
|
84
|
+
if filetype == 'bam'
|
85
|
+
raise WrongFiletypeError.new(get_attr('Name')) unless get_attr('HrefCoverage')
|
86
|
+
end
|
87
|
+
if filetype == 'vcf'
|
88
|
+
raise WrongFiletypeError.new(get_attr('Name')) unless get_attr('HrefVariants')
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# Download the file object to the specified local directory or a byte range of the file,
|
93
|
+
# by specifying the start and stop byte in the range.
|
94
|
+
#
|
95
|
+
# +api+:: A BaseSpaceAPI instance with read access to the file object.
|
96
|
+
# +local_dir+:: The local directory to place the file in.
|
97
|
+
# :range+:: Two-item array with start and stop byte of the file chunk that needs retrieved.
|
98
|
+
def download_file(api, local_dir, range = [])
|
99
|
+
if range.empty?
|
100
|
+
return api.file_download(get_attr('Id'),local_dir, get_attr('Name'))
|
101
|
+
else
|
102
|
+
return api.file_download(get_attr('Id'),local_dir, get_attr('Name'), range)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
# Return the S3 URL of the file.
|
107
|
+
#
|
108
|
+
# +api+:: A BaseSpaceAPI instance with read access to the file object.
|
109
|
+
def get_file_url(api)
|
110
|
+
return api.file_url(get_attr('Id'))
|
111
|
+
end
|
112
|
+
|
113
|
+
# Delete the file; not implemented yet.
|
114
|
+
#
|
115
|
+
# +api+:: A BaseSpaceAPI instance with delete permissions on the file object.
|
116
|
+
def delete_file(api)
|
117
|
+
raise 'Not yet implemented'
|
118
|
+
end
|
119
|
+
|
120
|
+
# Return a coverage object for the specified region and chromosome.
|
121
|
+
#
|
122
|
+
# +api+:: BaseSpaceAPI instance.
|
123
|
+
# +chrom+:: Chromosome as a string - for example 'chr2'.
|
124
|
+
# +start_pos+:: The start position of region of interest as a string.
|
125
|
+
# +end_pos+:: The end position of region of interest as a string.
|
126
|
+
def get_interval_coverage(api, chrom, start_pos, end_pos)
|
127
|
+
is_init
|
128
|
+
is_valid_file_option('bam')
|
129
|
+
set_attr('Id', get_attr('HrefCoverage').split('/').last)
|
130
|
+
return api.get_interval_coverage(get_attr('Id'), chrom, start_pos, end_pos)
|
131
|
+
end
|
132
|
+
|
133
|
+
# Returns a list of Variant objects available in the specified region.
|
134
|
+
#
|
135
|
+
# +api+:: BaseSpaceAPI instance.
|
136
|
+
# +chrom+:: Chromosome as a string - for example 'chr2'.
|
137
|
+
# +start_pos+:: The start position of region of interest as a string.
|
138
|
+
# +end_pos+:: The end position of region of interest as a string.
|
139
|
+
# +qp+: TODO queryParameters object for custom filtering.
|
140
|
+
def filter_variant(api, chrom, start_pos, end_pos, qp = nil)
|
141
|
+
is_init
|
142
|
+
is_valid_file_option('vcf')
|
143
|
+
set_attr('Id', get_attr('HrefVariants').split('/').last)
|
144
|
+
return api.filter_variant_set(get_attr('Id'), chrom, start_pos, end_pos, 'txt')
|
145
|
+
end
|
146
|
+
|
147
|
+
# Return an object of CoverageMetadata for the selected region.
|
148
|
+
#
|
149
|
+
# +api+:: BaseSpaceAPI instance.
|
150
|
+
# +chrom+:: Chromosome as a string - for example 'chr2'.
|
151
|
+
def get_coverage_meta(api, chrom)
|
152
|
+
is_init
|
153
|
+
is_valid_file_option('bam')
|
154
|
+
set_attr('Id', get_attr('HrefCoverage').split('/').last)
|
155
|
+
return api.get_coverage_meta_info(get_attr('Id'), chrom)
|
156
|
+
end
|
157
|
+
|
158
|
+
# Return the the meta info for a VCF file as a VariantInfo object.
|
159
|
+
#
|
160
|
+
# +api+:: BaseSpaceAPI instance.
|
161
|
+
def get_variant_meta(api)
|
162
|
+
is_init
|
163
|
+
is_valid_file_option('vcf')
|
164
|
+
set_attr('Id', get_attr('HrefVariants').split('/').last)
|
165
|
+
return api.get_variant_metadata(get_attr('Id'), 'txt')
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
169
|
+
|
170
|
+
end # module BaseSpace
|
171
|
+
end # module Bio
|
172
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Copyright 2013 Toshiaki Katayama, Joachim Baran
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
require 'basespace/model'
|
15
|
+
|
16
|
+
module Bio
|
17
|
+
module BaseSpace
|
18
|
+
|
19
|
+
# File response object.
|
20
|
+
class FileResponse < Model
|
21
|
+
|
22
|
+
# Create a new FileResponse instance.
|
23
|
+
def initialize
|
24
|
+
@swagger_types = {
|
25
|
+
'ResponseStatus' => 'ResponseStatus',
|
26
|
+
'Response' => 'File',
|
27
|
+
'Notifications' => 'list<Str>'
|
28
|
+
}
|
29
|
+
@attributes = {
|
30
|
+
'ResponseStatus' => nil, # ResponseStatus
|
31
|
+
'Response' => nil, # File
|
32
|
+
'Notifications' => nil, # list<Str>
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end # module BaseSpace
|
39
|
+
end # module Bio
|
40
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Copyright 2013 Toshiaki Katayama, Joachim Baran
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
require 'basespace/model'
|
15
|
+
|
16
|
+
module Bio
|
17
|
+
module BaseSpace
|
18
|
+
|
19
|
+
# Genome response object.
|
20
|
+
class GenomeResponse < Model
|
21
|
+
|
22
|
+
# Create a new GenomeResponse instance.
|
23
|
+
def initialize
|
24
|
+
@swagger_types = {
|
25
|
+
'ResponseStatus' => 'ResponseStatus',
|
26
|
+
'Response' => 'GenomeV1',
|
27
|
+
'Notifications' => 'list<Str>',
|
28
|
+
}
|
29
|
+
@attributes = {
|
30
|
+
'ResponseStatus' => nil, # ResponseStatus
|
31
|
+
'Response' => nil, # GenomeV1
|
32
|
+
'Notifications' => nil, # list<Str>
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end # module BaseSpace
|
39
|
+
end # module Bio
|
40
|
+
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Copyright 2013 Toshiaki Katayama, Joachim Baran
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
require 'basespace/model'
|
15
|
+
|
16
|
+
module Bio
|
17
|
+
module BaseSpace
|
18
|
+
|
19
|
+
# Genome model.
|
20
|
+
class GenomeV1 < Model
|
21
|
+
|
22
|
+
# Create a new GenomeV1 instance.
|
23
|
+
def initialize
|
24
|
+
@swagger_types = {
|
25
|
+
'Source' => 'str',
|
26
|
+
'SpeciesName' => 'str',
|
27
|
+
'Build' => 'str',
|
28
|
+
'Id' => 'str',
|
29
|
+
'Href' => 'str',
|
30
|
+
'DisplayName' => 'str',
|
31
|
+
}
|
32
|
+
@attributes = {
|
33
|
+
'Source' => nil, # str
|
34
|
+
'SpeciesName' => nil, # str
|
35
|
+
'Build' => nil, # str
|
36
|
+
'Id' => nil, # str
|
37
|
+
'Href' => nil, # str
|
38
|
+
'DisplayName' => nil, # str
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
# Return species name, or if absent, return display name, or if absent too, return the Href.
|
43
|
+
def to_s
|
44
|
+
if get_attr('SpeciesName')
|
45
|
+
return get_attr('SpeciesName')
|
46
|
+
elsif get_attr('DisplayName')
|
47
|
+
return get_attr('DisplayName')
|
48
|
+
else
|
49
|
+
return "Genome @ #{get_attr('Href')}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end # module BaseSpace
|
55
|
+
end # module Bio
|
56
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# Copyright 2013 Toshiaki Katayama, Joachim Baran
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
require 'json'
|
15
|
+
require 'basespace/model'
|
16
|
+
|
17
|
+
module Bio
|
18
|
+
module BaseSpace
|
19
|
+
|
20
|
+
# A list response object.
|
21
|
+
class ListResponse < Model
|
22
|
+
|
23
|
+
# Create a new ListResponse instance.
|
24
|
+
def initialize
|
25
|
+
@swagger_types = {
|
26
|
+
'ResponseStatus' => 'ResponseStatus',
|
27
|
+
'Response' => 'ResourceList',
|
28
|
+
'Notifications' => 'list<Str>',
|
29
|
+
}
|
30
|
+
@attributes = {
|
31
|
+
'ResponseStatus' => nil, # ResponseStatus
|
32
|
+
'Response' => nil, # ResourceList
|
33
|
+
'Notifications' => nil, # list<Str>
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
# Converts the object to a Ruby Array.
|
38
|
+
def convert_to_object_list
|
39
|
+
l = []
|
40
|
+
get_attr('Response').items.each do |m|
|
41
|
+
io = eval(m)
|
42
|
+
s = io.to_json
|
43
|
+
mj = JSON.parse(s)
|
44
|
+
l << mj
|
45
|
+
end
|
46
|
+
return l
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end # module BaseSpace
|
52
|
+
end # module Bio
|
53
|
+
|