bio-basespace-sdk 0.1.2 → 0.1.3

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.

Potentially problematic release.


This version of bio-basespace-sdk might be problematic. Click here for more details.

@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 92cef1459a52d87689eb5ce456fc464292de4019
4
+ data.tar.gz: a123635b332ca349729b113e307e171819c725a6
5
+ SHA512:
6
+ metadata.gz: 32b9ea9d704f55d3c6496d33cd353b5eff3e7ad213cd4658eeee6e212aa40231bedd445e41b2b55a2048f1e53581ecf0a53f302e27491a3da036ac6e2105af9d
7
+ data.tar.gz: 9affe81766270bb7631cde418188d31cb62b7f6ef4046fda52f2aab72cfc9d8e165a93e87ed4b8dba9398451fcbcb6ae4a00c7dd8a5a557840dfafb1fb79aeb9
data/Gemfile CHANGED
@@ -8,7 +8,7 @@ gem "addressable", ">= 2.3.2"
8
8
  # Add dependencies to develop your gem here.
9
9
  # Include everything needed to run rake, tests, features, etc.
10
10
  group :development do
11
- gem "rspec", "~> 2.8.0"
11
+ gem "rspec", "~> 2.14.1"
12
12
  gem "bundler", ">= 1.1.5"
13
13
  gem "jeweler", "~> 1.8.4"
14
14
  gem "bio", ">= 1.4.2"
data/README.md CHANGED
@@ -8,7 +8,19 @@ The primary purpose of the SDK is to provide an easy-to-use Ruby environment ena
8
8
 
9
9
  ## Availability
10
10
 
11
- Current version of ``Bio::BaseSpace`` can be checked out here:
11
+ *Note:* We are still testing our code. Please take the production-ready gem with a pinch of salt.
12
+
13
+ The production environment version of ``Bio::BaseSpace`` is available as a Ruby gem:
14
+
15
+ gem install bio-basespace-sdk
16
+
17
+ Depending on your Ruby installation, it might be necessary to install the Ruby gem with superuser permissions:
18
+
19
+ sudo gem install bio-basespace-sdk
20
+
21
+ ### Pre-Release Version
22
+
23
+ The pre-release version of ``Bio::BaseSpace`` can be checked out here:
12
24
 
13
25
  git clone https://github.com/joejimbo/basespace-ruby-sdk.git
14
26
 
@@ -16,7 +28,7 @@ or by,
16
28
 
17
29
  git clone git@github.com:joejimbo/basespace-ruby-sdk.git
18
30
 
19
- *Note:* We will make the SDK available as a Ruby gem when our implementation is production ready. It will then also be listed on [Biogems.info](http://www.biogems.info).
31
+ Status: [![Build Status](https://travis-ci.org/joejimbo/basespace-ruby-sdk.png?branch=master)](https://travis-ci.org/joejimbo/basespace-ruby-sdk)
20
32
 
21
33
  ## Setup
22
34
 
@@ -33,7 +45,7 @@ or add it to your Ruby scripts using Bio::BaseSpace:
33
45
  To test that everything is working as expected, launch a Interactive Ruby and try importing 'Bio::BaseSpace':
34
46
 
35
47
  $ irb
36
- >> require 'basespace'
48
+ >> require 'bio-basespace-sdk'
37
49
  >> include Bio::BaseSpace
38
50
 
39
51
  ## Application triggering
@@ -46,7 +58,7 @@ we are able to obtain information about the user who launched the App and the da
46
58
  First, we instantiate a BaseSpaceAPI object using the ``client_key`` and ``client_secret`` codes provided on the BaseSpace developer's website when registering our App, as well as the ``AppSessionId`` generated from the app-triggering:
47
59
 
48
60
 
49
- require 'basespace'
61
+ require 'bio-basespace-sdk'
50
62
 
51
63
  include Bio::BaseSpace
52
64
 
@@ -184,7 +196,7 @@ Here we demonstrate the basic BaseSpace authentication process. The work-flow ou
184
196
 
185
197
  Again, we will start out by initializing a ``BaseSpaceAPI`` object:
186
198
 
187
- require 'basespace'
199
+ require 'bio-basespace-sdk'
188
200
  include Bio::BaseSpace
189
201
 
190
202
  client_id = 'my client key'
@@ -266,7 +278,7 @@ a ``user`` instance we can use it to retrieve all project belonging to that user
266
278
 
267
279
  First we will initialize a ``BaseSpaceAPI`` using our access-token for ``global browse``:
268
280
 
269
- require 'basespace'
281
+ require 'bio-basespace-sdk'
270
282
  include Bio::BaseSpace
271
283
 
272
284
  # REST server information and user access_token
@@ -372,7 +384,7 @@ In addition, we take a look at some of the special queuring methods associated w
372
384
  Again, start out by initializing a ``BaseSpaceAPI`` instance and retrieving all projects belonging to the current user:
373
385
 
374
386
  # First, create a client for making calls for this user session
375
- require 'basespace'
387
+ require 'bio-basespace-sdk'
376
388
  include Bio::BaseSpace
377
389
 
378
390
  client_id = 'my client key'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -16,7 +16,7 @@
16
16
  # Application triggering
17
17
  # https://developer.basespace.illumina.com/docs/content/documentation/sdk-samples/python-sdk-overview#Application_triggering
18
18
 
19
- require 'basespace'
19
+ require 'bio-basespace-sdk'
20
20
 
21
21
  include Bio::BaseSpace
22
22
 
@@ -16,7 +16,7 @@
16
16
  # Requesting an access-token for data browsing
17
17
  # https://developer.basespace.illumina.com/docs/content/documentation/sdk-samples/python-sdk-overview#Requesting_an_access-token_for_data_browsing
18
18
 
19
- require 'basespace'
19
+ require 'bio-basespace-sdk'
20
20
 
21
21
  include Bio::BaseSpace
22
22
 
@@ -16,7 +16,7 @@
16
16
  # Browsing data with global browse access
17
17
  # https://developer.basespace.illumina.com/docs/content/documentation/sdk-samples/python-sdk-overview#Browsing_data_with_global_browse_access
18
18
 
19
- require 'basespace'
19
+ require 'bio-basespace-sdk'
20
20
 
21
21
  include Bio::BaseSpace
22
22
 
@@ -16,7 +16,7 @@
16
16
  # Accessing file-trees and querying BAM or VCF files
17
17
  # https://developer.basespace.illumina.com/docs/content/documentation/sdk-samples/python-sdk-overview#Accessing_file-trees_and_querying_BAM_or_VCF_files
18
18
 
19
- require 'basespace'
19
+ require 'bio-basespace-sdk'
20
20
 
21
21
  include Bio::BaseSpace
22
22
 
@@ -16,7 +16,7 @@
16
16
  # Creating an AppResult and uploading files
17
17
  # https://developer.basespace.illumina.com/docs/content/documentation/sdk-samples/python-sdk-overview#Creating_an_AppResult_and_uploading_files
18
18
 
19
- require 'basespace'
19
+ require 'bio-basespace-sdk'
20
20
 
21
21
  include Bio::BaseSpace
22
22
 
@@ -13,7 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- require 'basespace'
16
+ require 'bio-basespace-sdk'
17
17
 
18
18
  include Bio::BaseSpace
19
19
 
@@ -31,7 +31,7 @@ class UploadTask
31
31
  # +total+:: Total number of parts in the multi-part upload.
32
32
  # +myfile+:: Local file to be uploaded.
33
33
  # +attempt+:: Number of attempts that the file was previously uploaded (upload tries).
34
- def initialize(self, api, bs_file_id, part, total, myfile, attempt)
34
+ def initialize(api, bs_file_id, part, total, myfile, attempt)
35
35
  @api = api
36
36
  @part = part # part number
37
37
  @total = total # out of total part count
@@ -75,12 +75,17 @@ class UploadTask
75
75
  end
76
76
 
77
77
  end # class UploadTask
78
-
79
- class Consumer # [TODO] inherit multiprocessing.Process
78
+
79
+ # Multipart file upload consumer class.
80
+ #
81
+ # TODO This file is not yet ported as the multipartFileUpload class is
82
+ # just mentioned in the comment section of the BaseSpaceAPI file.
83
+ class Consumer
84
+
80
85
  def initialize(task_queue, result_queue, pause_event, halt_event)
81
- # [TODO] http://stackoverflow.com/questions/710785/working-with-multiple-processes-in-ruby
82
- # http://stackoverflow.com/questions/855805/please-introduce-a-multi-processing-library-in-perl-or-ruby
83
- # http://docs.python.jp/2.6/library/multiprocessing.html
86
+ # TODO http://stackoverflow.com/questions/710785/working-with-multiple-processes-in-ruby
87
+ # http://stackoverflow.com/questions/855805/please-introduce-a-multi-processing-library-in-perl-or-ruby
88
+ # http://docs.python.jp/2.6/library/multiprocessing.html
84
89
  #multiprocessing.Process.__init__(self)
85
90
  @task_queue = task_queue
86
91
  @result_queue = result_queue
@@ -88,43 +93,46 @@ class Consumer # [TODO] inherit multiprocessing.Process
88
93
  @halt = haltEvent
89
94
  end
90
95
 
91
- # [TODO]
96
+ # TODO
92
97
  def run
93
98
  proc_name = self.name
94
- while True:
99
+ while True
95
100
  unless self.pause.is_set()
96
101
  next_task = self.task_queue.get()
97
102
  end
98
103
 
99
- if next_task is None or self.halt.is_set(): # check if we are out of jobs or have been halted
104
+ if next_task is None or self.halt.is_set() # check if we are out of jobs or have been halted
100
105
  # Poison pill means shutdown
101
- print '%s: Exiting' % proc_name
106
+ puts "#{proc_name}: Exiting"
102
107
  self.task_queue.task_done()
103
108
  break
104
- elsif self.pause.is_set(): # if we have been paused, sleep for a bit then check back
105
- print '%s: Paused' % proc_name
109
+ elsif self.pause.is_set() # if we have been paused, sleep for a bit then check back
110
+ puts "#{proc_name}: Paused"
106
111
  time.sleep(3)
107
- else: # do some work
108
- print '%s: %s' % (proc_name, next_task)
112
+ else # do some work
113
+ puts "#{proc_name}: #{next_task}"
109
114
  answer = next_task()
110
115
  self.task_queue.task_done()
111
- if answer.state == 1: # case everything went well
116
+ if answer.state == 1 # case everything went well
112
117
  self.result_queue.put(answer)
113
- else: # case something sent wrong
114
- if next_task.attempt < 3:
118
+ else # case something sent wrong
119
+ if next_task.attempt < 3
115
120
  self.task_queue.put(next_task) # queue the guy for a retry
116
- else: # problems, shutting down this party
121
+ else # problems, shutting down this party
117
122
  self.halt.set() # halt all other process
118
123
  end
119
124
  end
120
125
  end
121
126
  end
122
- return
123
127
  end
124
128
  end # class Consumer
125
129
 
130
+ # Multipart file upload class.
131
+ #
132
+ # TODO This file is not yet ported as the multipartFileUpload class is
133
+ # just mentioned in the comment section of the BaseSpaceAPI file.
134
+ class MultipartUpload
126
135
 
127
- class MultipartUpload:
128
136
  def initialize(api, a_id, local_file, file_object, cpu_count, part_size, temp_dir, verbose)
129
137
  @api = api
130
138
  @analysis_id = a_id
@@ -141,13 +149,14 @@ class MultipartUpload:
141
149
  end
142
150
 
143
151
  def to_s
144
- # [TODO] fix this.
152
+ # TODO fix this.
153
+ # NOTE Python sublist notation [:5] already changed to Ruby [0..4]
145
154
  return "MPU - Stat: " + @status + ", LiveThread: " + str(self.getRunningThreadCount()) + \
146
- ", RunTime: " + str(self.getRunningTime())[:5] + 's' + \
155
+ ", RunTime: " + str(self.getRunningTime())[0..4] + 's' + \
147
156
  ", Q-size " + str(self.tasks.qsize()) + \
148
157
  ", Completed " + str(self.getProgressRatio()) + \
149
158
  ", AVG TransferRate " + self.getTransRate() + \
150
- ", Data transfered " + str(self.getTotalTransfered())[:5] + 'Gb'
159
+ ", Data transfered " + str(self.getTotalTransfered())[0..4] + 'Gb'
151
160
  end
152
161
 
153
162
  def to_str
@@ -165,7 +174,7 @@ class MultipartUpload:
165
174
  totalSize = os.path.getsize(self.localFile)
166
175
  fileCount = int(math.ceil(totalSize/(self.partSize*1024.0*1000)))
167
176
 
168
- if self.verbose:
177
+ if self.verbose
169
178
  print "TotalSize " + str(totalSize)
170
179
  print "Using split size " + str(self.partSize) +"Mb"
171
180
  print "Filecount " + str(fileCount)
@@ -175,110 +184,118 @@ class MultipartUpload:
175
184
  # Establish communication queues
176
185
  self.tasks = multiprocessing.JoinableQueue()
177
186
  self.completedPool = multiprocessing.Queue()
178
- for i in xrange(1,fileCount+1): # set up the task queue
179
- t = uploadTask(self.api,self.remoteFile.Id,i, fileCount, self.localFile, 0)
187
+ [1..fileCount].each { |i| # set up the task queue
188
+ t = uploadTask(self.api,self.remoteFile.Id, i, fileCount, self.localFile, 0)
180
189
  self.tasks.put(t)
181
- end
190
+ }
182
191
  self.totalTask = self.tasks.qsize()
183
192
 
184
193
  # create consumers
185
194
  self.pauseEvent = multiprocessing.Event()
186
195
  self.haltEvent = multiprocessing.Event()
187
- if self.verbose:
196
+ if self.verbose
188
197
  print 'Creating %d consumers' % self.cpuCount
189
198
  print "queue size " + str(self.tasks.qsize())
190
199
  end
191
- self.consumers = [ Consumer(self.tasks, self.completedPool,self.pauseEvent,self.haltEvent) for i in xrange(self.cpuCount) ]
192
- for c in self.consumers: self.tasks.put(None) # add poisson pill
193
- end
200
+ # NOTE Original code -- note the strange indent. Variables i and c not used. Buggy code?
201
+ # self.consumers = [ Consumer(self.tasks, self.completedPool,self.pauseEvent,self.haltEvent) for i in xrange(self.cpuCount) ]
202
+ # for c in self.consumers: self.tasks.put(None) # add poisson pill
203
+ self.consumers = [0..self.cpuCount].map { |i| Consumer(self.tasks, self.completedPool, self.pauseEvent, self.haltEvent) }
204
+ self.consumers.each { |c| self.tasks.put(nil) }
194
205
  end
195
206
 
196
- def __cleanUp__(self):
207
+ def __cleanUp__
197
208
  self.stats[0] += 1
198
209
  end
199
210
 
200
- def startUpload(self,returnOnFinish=0,testInterval=5):
201
- if self.Status=='Terminated' or self.Status=='Completed':
202
- raise Exception('Cannot resume a ' + self.Status + ' multi-part upload session.')
211
+ def startUpload(returnOnFinish = 0, testInterval = 5)
212
+ raise Exception('Cannot resume a ' + self.Status + ' multi-part upload session.') if self.Status == 'Terminated' or self.Status == 'Completed'
203
213
 
204
- if self.Status == 'Initialized':
214
+ if self.Status == 'Initialized'
205
215
  self.StartTime = time.time()
206
- for w in self.consumers:
216
+ self.consumers.each { |w|
207
217
  w.start()
208
- if self.Status == 'Paused':
218
+ }
219
+ elsif self.Status == 'Paused'
209
220
  self.pauseEvent.clear()
221
+ end
210
222
  self.Status = 'Running'
211
223
 
212
224
  # If returnOnFinish is set
213
- if returnOnFinish:
225
+ if returnOnFinish
214
226
  i=0
215
- while not self.hasFinished():
216
- if self.verbose and i: print str(i) + ': ' + str(self)
227
+ while not self.hasFinished()
228
+ print str(i) + ': ' + str(self) if self.verbose and i
217
229
  time.sleep(testInterval)
218
230
  i+=1
231
+ end
219
232
  self.finalize()
220
233
  return 1
221
- else:
234
+ else
222
235
  return 1
223
236
  end
224
237
  end
225
238
 
226
- def finalize(self):
227
- if self.getRunningThreadCount():
228
- raise Exception('Cannot finalize a transfer with running threads.')
229
- if self.Status=='Running':
239
+ def finalize
240
+ raise Exception('Cannot finalize a transfer with running threads.') if self.getRunningThreadCount()
241
+ if self.Status=='Running'
230
242
  # code here for
231
243
  self.Status=='Completed'
232
- else:
244
+ else
233
245
  raise Exception('To finalize the status of the transfer must be "Running."')
234
246
  end
235
247
  end
236
248
 
237
- def hasFinished(self):
238
- if self.Status == 'Initialized': return 0
239
- return not self.getRunningThreadCount()>0
249
+ def hasFinished
250
+ return 0 if self.Status == 'Initialized'
251
+ return !(self.getRunningThreadCount() > 0)
240
252
  end
241
253
 
242
- def pauseUpload(self):
254
+ def pauseUpload
243
255
  self.pauseEvent.set()
244
256
  self.Status = 'Paused'
245
257
  end
246
258
 
247
- def haltUpload(self):
248
- for c in self.consumers: c.terminate()
259
+ def haltUpload
260
+ self.consumers.each { |c| c.terminate() }
249
261
  self.Status = 'Terminated'
250
262
  end
251
263
 
252
- def getStatus(self):
264
+ def getStatus
253
265
  return self.Status
254
266
  end
255
267
 
256
- def getFileResponse(self):
268
+ def getFileResponse
257
269
  return self.remoteFile
258
270
  end
259
271
 
260
- def getRunningThreadCount(self):
261
- return sum([c.is_alive() for c in self.consumers])
272
+ def getRunningThreadCount
273
+ return sum(self.consumers.map { |c| c.is_alive() })
262
274
  end
263
275
 
264
- def getTransRate(self):
276
+ def getTransRate
265
277
  # tasks completed size of file-parts
266
- return str((self.totalTask - self.tasks.qsize())*self.partSize/self.getRunningTime())[:6] + ' mb/s'
278
+ # NOTE Python sublist [:6] already ported to Ruby [0..5]
279
+ return str((self.totalTask - self.tasks.qsize())*self.partSize/self.getRunningTime())[0..5] + ' mb/s'
267
280
  end
268
281
 
269
- def getRunningTime(self):
270
- if self.StartTime==-1: return 0
271
- else: return time.time() - self.StartTime
282
+ def getRunningTime
283
+ if self.StartTime==-1
284
+ return 0
285
+ else
286
+ return time.time() - self.StartTime
287
+ end
272
288
  end
273
289
 
274
290
  # Returns the total data amoun transfered in Gb
275
- def getTotalTransfered(self):
276
- return float((self.totalTask - self.tasks.qsize())*self.partSize)/1000.0
291
+ def getTotalTransfered
292
+ return float((self.totalTask - self.tasks.qsize())*self.partSize) / 1000.0
277
293
  end
278
294
 
279
- def getProgressRatio(self):
295
+ def getProgressRatio
280
296
  currentQ = float(self.tasks.qsize() - len(self.consumers))
281
- return str(float(self.totalTask - currentQ)/self.totalTask)[:6]
297
+ # NOTE Python sublist [:6] already ported to Ruby [0..5]
298
+ return str(float(self.totalTask - currentQ) / self.totalTask)[0..5]
282
299
  end
283
300
 
284
301
  end # class MultipartUpload
@@ -14,7 +14,7 @@
14
14
  require 'rubygems'
15
15
  require 'rspec'
16
16
 
17
- require 'basespace'
17
+ require 'bio-basespace-sdk'
18
18
 
19
19
  describe Bio::BaseSpace::APIClient do
20
20
  describe "initialization" do
@@ -14,7 +14,7 @@
14
14
  require 'rubygems'
15
15
  require 'rspec'
16
16
 
17
- require 'basespace'
17
+ require 'bio-basespace-sdk'
18
18
 
19
19
  value = 'testvalue'
20
20
  legal = 'legalcases'
@@ -14,7 +14,7 @@
14
14
  require 'rubygems'
15
15
  require 'rspec'
16
16
 
17
- require 'basespace'
17
+ require 'bio-basespace-sdk'
18
18
 
19
19
  attributes = { "Id" => "X10231", "Source" => "Test", "SpeciesName" => "Homo sapiens" }
20
20
 
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bio-basespace-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
5
- prerelease:
4
+ version: 0.1.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Joachim Baran
@@ -18,71 +17,62 @@ dependencies:
18
17
  - !ruby/object:Gem::Dependency
19
18
  name: getopt
20
19
  requirement: !ruby/object:Gem::Requirement
21
- none: false
22
20
  requirements:
23
- - - ! '>='
21
+ - - '>='
24
22
  - !ruby/object:Gem::Version
25
23
  version: 1.4.1
26
24
  type: :runtime
27
25
  prerelease: false
28
26
  version_requirements: !ruby/object:Gem::Requirement
29
- none: false
30
27
  requirements:
31
- - - ! '>='
28
+ - - '>='
32
29
  - !ruby/object:Gem::Version
33
30
  version: 1.4.1
34
31
  - !ruby/object:Gem::Dependency
35
32
  name: addressable
36
33
  requirement: !ruby/object:Gem::Requirement
37
- none: false
38
34
  requirements:
39
- - - ! '>='
35
+ - - '>='
40
36
  - !ruby/object:Gem::Version
41
37
  version: 2.3.2
42
38
  type: :runtime
43
39
  prerelease: false
44
40
  version_requirements: !ruby/object:Gem::Requirement
45
- none: false
46
41
  requirements:
47
- - - ! '>='
42
+ - - '>='
48
43
  - !ruby/object:Gem::Version
49
44
  version: 2.3.2
50
45
  - !ruby/object:Gem::Dependency
51
46
  name: rspec
52
47
  requirement: !ruby/object:Gem::Requirement
53
- none: false
54
48
  requirements:
55
49
  - - ~>
56
50
  - !ruby/object:Gem::Version
57
- version: 2.8.0
51
+ version: 2.14.1
58
52
  type: :development
59
53
  prerelease: false
60
54
  version_requirements: !ruby/object:Gem::Requirement
61
- none: false
62
55
  requirements:
63
56
  - - ~>
64
57
  - !ruby/object:Gem::Version
65
- version: 2.8.0
58
+ version: 2.14.1
66
59
  - !ruby/object:Gem::Dependency
67
60
  name: bundler
68
61
  requirement: !ruby/object:Gem::Requirement
69
- none: false
70
62
  requirements:
71
- - - ! '>='
63
+ - - '>='
72
64
  - !ruby/object:Gem::Version
73
65
  version: 1.1.5
74
66
  type: :development
75
67
  prerelease: false
76
68
  version_requirements: !ruby/object:Gem::Requirement
77
- none: false
78
69
  requirements:
79
- - - ! '>='
70
+ - - '>='
80
71
  - !ruby/object:Gem::Version
81
72
  version: 1.1.5
82
73
  - !ruby/object:Gem::Dependency
83
74
  name: jeweler
84
75
  requirement: !ruby/object:Gem::Requirement
85
- none: false
86
76
  requirements:
87
77
  - - ~>
88
78
  - !ruby/object:Gem::Version
@@ -90,7 +80,6 @@ dependencies:
90
80
  type: :development
91
81
  prerelease: false
92
82
  version_requirements: !ruby/object:Gem::Requirement
93
- none: false
94
83
  requirements:
95
84
  - - ~>
96
85
  - !ruby/object:Gem::Version
@@ -98,23 +87,20 @@ dependencies:
98
87
  - !ruby/object:Gem::Dependency
99
88
  name: bio
100
89
  requirement: !ruby/object:Gem::Requirement
101
- none: false
102
90
  requirements:
103
- - - ! '>='
91
+ - - '>='
104
92
  - !ruby/object:Gem::Version
105
93
  version: 1.4.2
106
94
  type: :development
107
95
  prerelease: false
108
96
  version_requirements: !ruby/object:Gem::Requirement
109
- none: false
110
97
  requirements:
111
- - - ! '>='
98
+ - - '>='
112
99
  - !ruby/object:Gem::Version
113
100
  version: 1.4.2
114
101
  - !ruby/object:Gem::Dependency
115
102
  name: rdoc
116
103
  requirement: !ruby/object:Gem::Requirement
117
- none: false
118
104
  requirements:
119
105
  - - ~>
120
106
  - !ruby/object:Gem::Version
@@ -122,20 +108,16 @@ dependencies:
122
108
  type: :development
123
109
  prerelease: false
124
110
  version_requirements: !ruby/object:Gem::Requirement
125
- none: false
126
111
  requirements:
127
112
  - - ~>
128
113
  - !ruby/object:Gem::Version
129
114
  version: '3.12'
130
- description: ! "Bio::BaseSpace is a Ruby based SDK ported from the Python based BaseSpacePy
131
- SDK to be used in the development of Apps and scripts for working with Illumina's
132
- BaseSpace cloud-computing solution for next-gen sequencing data analysis.\n\n The
133
- primary purpose of the SDK is to provide an easy-to-use Ruby environment enabling
134
- developers to authenticate a user, retrieve data, and upload data/results from their
135
- own analysis to BaseSpace.\n\n If you haven't already done so, you may wish to
136
- familiarize yourself with the general BaseSpace developers documentation (https://developer.basespace.illumina.com/)
137
- and create a new BaseSpace App to be used when working through the examples provided
138
- in 'examples' folder."
115
+ description: |-
116
+ Bio::BaseSpace is a Ruby based SDK ported from the Python based BaseSpacePy SDK to be used in the development of Apps and scripts for working with Illumina's BaseSpace cloud-computing solution for next-gen sequencing data analysis.
117
+
118
+ The primary purpose of the SDK is to provide an easy-to-use Ruby environment enabling developers to authenticate a user, retrieve data, and upload data/results from their own analysis to BaseSpace.
119
+
120
+ If you haven't already done so, you may wish to familiarize yourself with the general BaseSpace developers documentation (https://developer.basespace.illumina.com/) and create a new BaseSpace App to be used when working through the examples provided in 'examples' folder.
139
121
  email: joachim.baran@gmail.com
140
122
  executables: []
141
123
  extensions: []
@@ -156,7 +138,6 @@ files:
156
138
  - examples/3_accessing_files.rb
157
139
  - examples/4_app_result_upload.rb
158
140
  - examples/5_purchasing.rb
159
- - lib/basespace.rb
160
141
  - lib/basespace/api/api_client.rb
161
142
  - lib/basespace/api/base_api.rb
162
143
  - lib/basespace/api/basespace_api.rb
@@ -203,36 +184,33 @@ files:
203
184
  - lib/basespace/model/variant_header.rb
204
185
  - lib/basespace/model/variant_info.rb
205
186
  - lib/basespace/model/variants_header_response.rb
187
+ - lib/bio-basespace-sdk.rb
206
188
  - spec/basespaceapi_spec.rb
207
189
  - spec/basespaceerror_spec.rb
208
190
  - spec/basespacemodel_spec.rb
209
191
  homepage: https://github.com/joejimbo/basespace-ruby-sdk
210
192
  licenses:
211
193
  - Apache, Version 2.0
194
+ metadata: {}
212
195
  post_install_message:
213
196
  rdoc_options: []
214
197
  require_paths:
215
198
  - lib
216
199
  required_ruby_version: !ruby/object:Gem::Requirement
217
- none: false
218
200
  requirements:
219
- - - ! '>='
201
+ - - '>='
220
202
  - !ruby/object:Gem::Version
221
203
  version: '0'
222
- segments:
223
- - 0
224
- hash: -907772599930210264
225
204
  required_rubygems_version: !ruby/object:Gem::Requirement
226
- none: false
227
205
  requirements:
228
- - - ! '>='
206
+ - - '>='
229
207
  - !ruby/object:Gem::Version
230
208
  version: '0'
231
209
  requirements: []
232
210
  rubyforge_project:
233
- rubygems_version: 1.8.23
211
+ rubygems_version: 2.0.5
234
212
  signing_key:
235
- specification_version: 3
213
+ specification_version: 4
236
214
  summary: Bio::BaseSpace is a Ruby based SDK to be used in the development of Apps
237
215
  and scripts for working with Illumina's BaseSpace cloud-computing solution for next-gen
238
216
  sequencing data analysis.