intermine 1.04.00 → 1.05.00
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +6 -6
- data/Gemfile.lock +19 -0
- data/README.rdoc +2 -2
- data/lib/intermine/lists.rb +38 -14
- data/lib/intermine/model.rb +0 -23
- data/lib/intermine/results.rb +8 -2
- data/lib/intermine/service.rb +3 -0
- data/lib/intermine/version.rb +2 -2
- data/test/test_model.rb +0 -53
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
5
|
-
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0f7e79ba5ea58942e42fc031ee303e7ad2ec0faa
|
4
|
+
data.tar.gz: 54bb79ac11337ea032fac6d80d048eeee2bc3f9b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fce9cae88153be341eb0aa1de6a8c031f9607856b2325322ee437b757f894963dfa8d6d4a3016b08f875af5906cb8c8ac02bdb30b64ef40113c65029afbc948b
|
7
|
+
data.tar.gz: be4e1a916016776010c7bbd7610db539b0e00fdf8bfc548b80ee9c1a52284a40c92eefc3e8ce461920324f4725aff9211b68a945a8c3da3b00be4a814a544429
|
data/Gemfile.lock
ADDED
data/README.rdoc
CHANGED
@@ -75,5 +75,5 @@ Support is available on our development mailing list: dev@intermine.org
|
|
75
75
|
|
76
76
|
== License
|
77
77
|
|
78
|
-
This code is Open Source under the LGPL. Source code for
|
79
|
-
can be checked out from
|
78
|
+
This code is Open Source under the LGPL. Source code for this gem
|
79
|
+
can be checked out from https://github.com/intermine/intermine-ws-ruby
|
data/lib/intermine/lists.rb
CHANGED
@@ -93,6 +93,11 @@ module InterMine::Lists
|
|
93
93
|
details.each {|k,v| instance_variable_set('@' + k, v)}
|
94
94
|
@unmatched_identifiers = []
|
95
95
|
@tags ||= []
|
96
|
+
@uri = URI.parse(@manager.service.root)
|
97
|
+
@http = Net::HTTP.new(@uri.host, @uri.port)
|
98
|
+
if @uri.scheme == 'https'
|
99
|
+
@http.use_ssl = true
|
100
|
+
end
|
96
101
|
end
|
97
102
|
|
98
103
|
# True if the list has no elements.
|
@@ -219,7 +224,9 @@ module InterMine::Lists
|
|
219
224
|
return if (@name == new_name)
|
220
225
|
uri = URI.parse(@manager.service.root + Service::LIST_RENAME_PATH)
|
221
226
|
params = @manager.service.params.merge("oldname" => @name, "newname" => new_name)
|
222
|
-
res =
|
227
|
+
res = @http.start() do |http|
|
228
|
+
Net::HTTP.post_form(uri, params)
|
229
|
+
end
|
223
230
|
@manager.process_list_creation_response(res)
|
224
231
|
@name = new_name
|
225
232
|
end
|
@@ -334,7 +341,9 @@ module InterMine::Lists
|
|
334
341
|
s = @manager.service
|
335
342
|
params = s.params.merge(ENRICHMENT_DEFAULTS).merge(opts).merge(:widget => widget, :list => @name)
|
336
343
|
uri = URI.parse(s.root + Service::LIST_ENRICHMENT_PATH)
|
337
|
-
res =
|
344
|
+
res = @http.start() do |http|
|
345
|
+
Net::HTTP.post_form(uri, params)
|
346
|
+
end
|
338
347
|
return case res
|
339
348
|
when Net::HTTPSuccess
|
340
349
|
JSON.parse(res.body)["results"].map {|row| SymbolAcceptingHash[row] }
|
@@ -392,7 +401,9 @@ module InterMine::Lists
|
|
392
401
|
q = (list.is_a?(List)) ? list.list_query : list
|
393
402
|
params = q.params.merge(@manager.service.params).merge("listName" => @name)
|
394
403
|
uri = URI.parse(q.list_append_uri)
|
395
|
-
res =
|
404
|
+
res = @http.start() do |http|
|
405
|
+
Net::HTTP.post_form(uri, params)
|
406
|
+
end
|
396
407
|
handle_response(res)
|
397
408
|
end
|
398
409
|
|
@@ -420,7 +431,7 @@ module InterMine::Lists
|
|
420
431
|
req.content_type = "text/plain"
|
421
432
|
req.content_length = f.size
|
422
433
|
|
423
|
-
res =
|
434
|
+
res = @http.start() do |http|
|
424
435
|
http.request(req)
|
425
436
|
end
|
426
437
|
handle_response(res)
|
@@ -482,6 +493,11 @@ module InterMine::Lists
|
|
482
493
|
@service = service
|
483
494
|
@lists = {}
|
484
495
|
@temporary_lists = []
|
496
|
+
@uri = URI.parse(@service.root)
|
497
|
+
@http = Net::HTTP.new(@uri.host, @uri.port)
|
498
|
+
if @uri.scheme == 'https'
|
499
|
+
@http.use_ssl = true
|
500
|
+
end
|
485
501
|
do_at_exit(self)
|
486
502
|
end
|
487
503
|
|
@@ -585,7 +601,7 @@ module InterMine::Lists
|
|
585
601
|
uri = URI.parse(@service.root + Service::LISTS_PATH)
|
586
602
|
params = {"name" => name}
|
587
603
|
req = Net::HTTP::Delete.new(uri.path + "?" + params_to_query_string(params))
|
588
|
-
res =
|
604
|
+
res = @http.start do |http|
|
589
605
|
http.request(req)
|
590
606
|
end
|
591
607
|
check_response_for_error(res)
|
@@ -630,7 +646,9 @@ module InterMine::Lists
|
|
630
646
|
uri = URI.parse(@service.root + Service::LIST_SUBTRACTION_PATH)
|
631
647
|
params = @service.params.merge("name" => name, "description" => description, "references" => ref_names.join(';'),
|
632
648
|
"subtract" => del_names.join(';'), "tags" => tags.join(';'))
|
633
|
-
res =
|
649
|
+
res = @http.start() do |http|
|
650
|
+
Net::HTTP.post_form(uri, params)
|
651
|
+
end
|
634
652
|
return process_list_creation_response(res)
|
635
653
|
end
|
636
654
|
|
@@ -654,7 +672,9 @@ module InterMine::Lists
|
|
654
672
|
def add_tags(list, *tags)
|
655
673
|
uri = URI.parse(@service.root + Service::LIST_TAG_PATH)
|
656
674
|
params = @service.params.merge("name" => list.name, "tags" => tags.join(";"))
|
657
|
-
res =
|
675
|
+
res = @http.start() do |http|
|
676
|
+
Net::HTTP.post_form(uri, params)
|
677
|
+
end
|
658
678
|
check_response_for_error(res)
|
659
679
|
return JSON.parse(res.body)["tags"]
|
660
680
|
end
|
@@ -671,7 +691,7 @@ module InterMine::Lists
|
|
671
691
|
)
|
672
692
|
req_path = uri.path + "?" + params_to_query_string(params)
|
673
693
|
req = Net::HTTP::Delete.new(req_path)
|
674
|
-
res =
|
694
|
+
res = @http.start() do |http|
|
675
695
|
http.request(req)
|
676
696
|
end
|
677
697
|
check_response_for_error(res)
|
@@ -685,9 +705,9 @@ module InterMine::Lists
|
|
685
705
|
"name" => list.name
|
686
706
|
)
|
687
707
|
req_path = uri.path + "?" + params_to_query_string(params)
|
688
|
-
res =
|
689
|
-
|
690
|
-
|
708
|
+
res = @http.start() do |http|
|
709
|
+
http.get(req_path)
|
710
|
+
end
|
691
711
|
check_response_for_error(res)
|
692
712
|
return JSON.parse(res.body)["tags"]
|
693
713
|
end
|
@@ -747,7 +767,9 @@ module InterMine::Lists
|
|
747
767
|
"name" => name, "lists" => list_names.join(";"),
|
748
768
|
"description" => description, "tags" => tags.join(';')
|
749
769
|
)
|
750
|
-
res =
|
770
|
+
res = @http.start() do |http|
|
771
|
+
Net::HTTP::post_form(uri, params)
|
772
|
+
end
|
751
773
|
return process_list_creation_response(res)
|
752
774
|
end
|
753
775
|
|
@@ -776,7 +798,9 @@ module InterMine::Lists
|
|
776
798
|
}
|
777
799
|
service_params = @service.params
|
778
800
|
params = query.params.merge(list_params).merge(service_params)
|
779
|
-
|
801
|
+
@http.start() do |http|
|
802
|
+
return Net::HTTP.post_form(URI.parse(uri), params)
|
803
|
+
end
|
780
804
|
end
|
781
805
|
|
782
806
|
# Routine for creating a List in a webservice from a list of Ids.
|
@@ -805,7 +829,7 @@ module InterMine::Lists
|
|
805
829
|
req.content_type = "text/plain"
|
806
830
|
req.content_length = f.size
|
807
831
|
|
808
|
-
res =
|
832
|
+
res = @http.start() do |http|
|
809
833
|
http.request(req)
|
810
834
|
end
|
811
835
|
f.close
|
data/lib/intermine/model.rb
CHANGED
@@ -518,35 +518,12 @@ module Metadata
|
|
518
518
|
|
519
519
|
klass = Module.new
|
520
520
|
fd_names = @fields.values.map { |x| x.name }
|
521
|
-
fds = @fields.values
|
522
521
|
attr_names = @fields.values.select { |x| x.is_a?(AttributeDescriptor)}.map {|x| x.name}
|
523
522
|
klass.class_eval do
|
524
523
|
include *supers
|
525
524
|
attr_reader *attr_names
|
526
525
|
end
|
527
526
|
|
528
|
-
klass.class_eval do
|
529
|
-
|
530
|
-
define_method(:to_h) do
|
531
|
-
ret = Hash.new
|
532
|
-
fds.each do |fd|
|
533
|
-
if fd.is_a?(AttributeDescriptor)
|
534
|
-
ret.store(fd.name, send(fd.name))
|
535
|
-
elsif fd.is_a?(CollectionDescriptor)
|
536
|
-
ret.store(fd.name, send(fd.name).map {|v| v.to_h})
|
537
|
-
else
|
538
|
-
ret.store(fd.name, send(fd.name).to_h)
|
539
|
-
end
|
540
|
-
end
|
541
|
-
ret.store("id", objectId)
|
542
|
-
return ret
|
543
|
-
end
|
544
|
-
|
545
|
-
define_method(:to_json) do |*a|
|
546
|
-
to_h.to_json(*a)
|
547
|
-
end
|
548
|
-
end
|
549
|
-
|
550
527
|
@fields.values.each do |fd|
|
551
528
|
if fd.is_a?(CollectionDescriptor)
|
552
529
|
klass.class_eval do
|
data/lib/intermine/results.rb
CHANGED
@@ -233,12 +233,18 @@ module InterMine::Results
|
|
233
233
|
@query = query
|
234
234
|
@start = start
|
235
235
|
@size = size
|
236
|
+
@http = Net::HTTP.new(@uri.host, @uri.port)
|
237
|
+
if @uri.scheme == 'https'
|
238
|
+
@http.use_ssl = true
|
239
|
+
end
|
236
240
|
end
|
237
241
|
|
238
242
|
# Run a request to get the size of the result set.
|
239
243
|
def get_size
|
240
244
|
query = params("jsoncount")
|
241
|
-
res =
|
245
|
+
res = @http.start() do |http|
|
246
|
+
Net::HTTP.post_form(@uri, query)
|
247
|
+
end
|
242
248
|
case res
|
243
249
|
when Net::HTTPSuccess
|
244
250
|
return check_result_set(res.body)["count"]
|
@@ -331,7 +337,7 @@ module InterMine::Results
|
|
331
337
|
def each_line(data)
|
332
338
|
req = Net::HTTP::Post.new(@uri.path)
|
333
339
|
req.set_form_data(data)
|
334
|
-
|
340
|
+
@http.start {|http|
|
335
341
|
http.request(req) {|resp|
|
336
342
|
holdover = ""
|
337
343
|
resp.read_body {|chunk|
|
data/lib/intermine/service.rb
CHANGED
data/lib/intermine/version.rb
CHANGED
@@ -3,7 +3,7 @@ module Intermine
|
|
3
3
|
# Webservice Client Version number
|
4
4
|
#
|
5
5
|
# Changes:
|
6
|
-
# 1.
|
6
|
+
# 1.05.00 - Add support for HTTPS
|
7
7
|
# 1.03.00 - Add support for indexed sequence service
|
8
8
|
# 1.02.00 - Allow the lazy fetching to be optional
|
9
9
|
# 1.01.01 - Improved lazy reference fetching
|
@@ -22,5 +22,5 @@ module Intermine
|
|
22
22
|
# 0.98.09 - Major changes to results - now with thorough-going Enumerable support
|
23
23
|
# 0.98.08 - Added column summary support
|
24
24
|
#
|
25
|
-
VERSION = "1.
|
25
|
+
VERSION = "1.05.00"
|
26
26
|
end
|
data/test/test_model.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require File.dirname(__FILE__) + "/test_helper.rb"
|
2
2
|
require "intermine/model"
|
3
|
-
require "json"
|
4
3
|
|
5
4
|
require "test/unit"
|
6
5
|
|
@@ -221,58 +220,6 @@ class TestModel < Test::Unit::TestCase
|
|
221
220
|
|
222
221
|
end
|
223
222
|
|
224
|
-
def test_to_h
|
225
|
-
|
226
|
-
manager = @model.make_new("Manager", {
|
227
|
-
"name" => "David Brent",
|
228
|
-
"seniority" => 42,
|
229
|
-
"age" => 39,
|
230
|
-
"fullTime" => true,
|
231
|
-
"department" => {
|
232
|
-
"name" => "Sales",
|
233
|
-
"employees" => [
|
234
|
-
{ "name" => "Tom" },
|
235
|
-
{ "name" => "Dick" },
|
236
|
-
{ "name" => "Harry" }
|
237
|
-
]
|
238
|
-
}
|
239
|
-
})
|
240
|
-
|
241
|
-
manager_h = manager.to_h
|
242
|
-
|
243
|
-
assert_equal(manager_h["name"], "David Brent")
|
244
|
-
assert_equal(manager_h["age"], 39)
|
245
|
-
assert_equal(manager_h["department"]["name"], "Sales")
|
246
|
-
assert_equal(manager_h["department"]["employees"][1]["name"], "Dick")
|
247
|
-
assert_equal(manager_h["department"]["employees"].size, 3)
|
248
|
-
end
|
249
|
-
|
250
|
-
def test_to_json
|
251
|
-
|
252
|
-
manager = @model.make_new("Manager", {
|
253
|
-
"name" => "David Brent",
|
254
|
-
"seniority" => 42,
|
255
|
-
"age" => 39,
|
256
|
-
"fullTime" => true,
|
257
|
-
"department" => {
|
258
|
-
"name" => "Sales",
|
259
|
-
"employees" => [
|
260
|
-
{ "name" => "Tom" },
|
261
|
-
{ "name" => "Dick" },
|
262
|
-
{ "name" => "Harry" }
|
263
|
-
]
|
264
|
-
}
|
265
|
-
})
|
266
|
-
|
267
|
-
manager_h = JSON[manager.to_h.to_json]
|
268
|
-
|
269
|
-
assert_equal(manager_h["name"], "David Brent")
|
270
|
-
assert_equal(manager_h["age"], 39)
|
271
|
-
assert_equal(manager_h["department"]["name"], "Sales")
|
272
|
-
assert_equal(manager_h["department"]["employees"][1]["name"], "Dick")
|
273
|
-
assert_equal(manager_h["department"]["employees"].size, 3)
|
274
|
-
end
|
275
|
-
|
276
223
|
def test_inheritance
|
277
224
|
|
278
225
|
manager = @model.make_new("Manager", { "name" => "David Brent" })
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intermine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.05.00
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Kalderimis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -54,14 +54,21 @@ description: "= Webservice Client Library for InterMine Data-Warehouses\n\nThis
|
|
54
54
|
details, see the accompanying documentation and the unit tests\nfor interface examples.
|
55
55
|
Further documentation is available at www.intermine.org.\n\n== Support\n\nSupport
|
56
56
|
is available on our development mailing list: dev@intermine.org\n\n== License\n\nThis
|
57
|
-
code is Open Source under the LGPL. Source code for
|
58
|
-
|
57
|
+
code is Open Source under the LGPL. Source code for this gem\ncan be checked out
|
58
|
+
from https://github.com/intermine/intermine-ws-ruby\n"
|
59
59
|
email:
|
60
60
|
- dev@intermine.org
|
61
61
|
executables: []
|
62
62
|
extensions: []
|
63
63
|
extra_rdoc_files: []
|
64
64
|
files:
|
65
|
+
- Gemfile
|
66
|
+
- Gemfile.lock
|
67
|
+
- LICENCE
|
68
|
+
- MANIFEST
|
69
|
+
- README.rdoc
|
70
|
+
- Rakefile
|
71
|
+
- contact_header.rdoc
|
65
72
|
- lib/intermine/lists.rb
|
66
73
|
- lib/intermine/model.rb
|
67
74
|
- lib/intermine/query.rb
|
@@ -87,12 +94,6 @@ files:
|
|
87
94
|
- test/test_service.rb
|
88
95
|
- test/test_sugar.rb
|
89
96
|
- test/unit_tests.rb
|
90
|
-
- MANIFEST
|
91
|
-
- LICENCE
|
92
|
-
- Rakefile
|
93
|
-
- README.rdoc
|
94
|
-
- Gemfile
|
95
|
-
- contact_header.rdoc
|
96
97
|
homepage: http://www.intermine.org
|
97
98
|
licenses:
|
98
99
|
- LGPL
|
@@ -118,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
119
|
version: '0'
|
119
120
|
requirements: []
|
120
121
|
rubyforge_project: intermine
|
121
|
-
rubygems_version: 2.
|
122
|
+
rubygems_version: 2.5.2
|
122
123
|
signing_key:
|
123
124
|
specification_version: 4
|
124
125
|
summary: Webservice Client Library for InterMine Data-Warehouses
|