intermine 1.00.00 → 1.01.00
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.
- data/Rakefile +0 -2
- data/lib/intermine/lists.rb +1 -1
- data/lib/intermine/model.rb +1 -1
- data/lib/intermine/service.rb +36 -22
- data/lib/intermine/version.rb +4 -1
- data/test/live_results.rb +2 -1
- data/test/live_test.rb +1 -2
- data/test/test_query.rb +12 -12
- data/test/test_sugar.rb +8 -6
- metadata +72 -129
data/Rakefile
CHANGED
|
@@ -52,7 +52,6 @@ namespace :test do
|
|
|
52
52
|
t.libs << "test"
|
|
53
53
|
t.test_files = FileList['test/unit_tests.rb']
|
|
54
54
|
t.verbose = true
|
|
55
|
-
puts "Running UNIT TESTS"
|
|
56
55
|
end
|
|
57
56
|
|
|
58
57
|
desc "Run the live integration tests"
|
|
@@ -60,7 +59,6 @@ namespace :test do
|
|
|
60
59
|
t.libs << "test"
|
|
61
60
|
t.test_files = FileList['test/live_test.rb'] << FileList['test/live_summary_test.rb'] << FileList['test/live_results.rb']
|
|
62
61
|
t.verbose = false
|
|
63
|
-
puts "Running LIVE INTEGRATION TESTS"
|
|
64
62
|
end
|
|
65
63
|
|
|
66
64
|
desc "Run all tests"
|
data/lib/intermine/lists.rb
CHANGED
|
@@ -312,7 +312,7 @@ module InterMine::Lists
|
|
|
312
312
|
@tags = @manager.tags_for(self)
|
|
313
313
|
end
|
|
314
314
|
|
|
315
|
-
ENRICHMENT_DEFAULTS = {:correction => "Holm-Bonferroni", :maxp => 0.05}
|
|
315
|
+
ENRICHMENT_DEFAULTS = {:correction => "Holm-Bonferroni", :maxp => 0.05, :format => 'json'}
|
|
316
316
|
|
|
317
317
|
# Retrieve the results of an enrichment calculation
|
|
318
318
|
#
|
data/lib/intermine/model.rb
CHANGED
data/lib/intermine/service.rb
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
require 'rubygems'
|
|
2
1
|
require 'intermine/model'
|
|
3
2
|
require "intermine/query"
|
|
4
3
|
require "intermine/lists"
|
|
@@ -156,15 +155,22 @@ module InterMine
|
|
|
156
155
|
end
|
|
157
156
|
@root = root
|
|
158
157
|
@token = token
|
|
159
|
-
begin
|
|
160
|
-
@version = fetch(@root + VERSION_PATH).to_i
|
|
161
|
-
rescue => e
|
|
162
|
-
raise ServiceError, "Error fetching version at #{@root + VERSION_PATH}: #{e.message}"
|
|
163
|
-
end
|
|
164
158
|
@model = mock_model
|
|
165
159
|
@_templates = nil
|
|
166
160
|
@broken_templates = []
|
|
167
161
|
@list_manager = InterMine::Lists::ListManager.new(self)
|
|
162
|
+
|
|
163
|
+
root_uri = URI.parse(@root)
|
|
164
|
+
@root_path = root_uri.path
|
|
165
|
+
|
|
166
|
+
@http = Net::HTTP.new(root_uri.host, root_uri.port)
|
|
167
|
+
|
|
168
|
+
v_path = @root + VERSION_PATH
|
|
169
|
+
begin
|
|
170
|
+
@version = fetch(v_path).to_i
|
|
171
|
+
rescue Exception => e
|
|
172
|
+
raise ServiceError, "Error fetching version at #{ v_path }: #{e.message}"
|
|
173
|
+
end
|
|
168
174
|
end
|
|
169
175
|
|
|
170
176
|
# Return the release string
|
|
@@ -223,21 +229,19 @@ module InterMine
|
|
|
223
229
|
# Returns all the templates available to query against in the service
|
|
224
230
|
#
|
|
225
231
|
def templates
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
@broken_templates.push(t.attribute("name").value)
|
|
237
|
-
end
|
|
232
|
+
parsed = {}
|
|
233
|
+
parser = InterMine::PathQuery::Template.parser(model)
|
|
234
|
+
template_xml = fetch(@root + TEMPLATES_PATH)
|
|
235
|
+
doc = REXML::Document.new(template_xml)
|
|
236
|
+
doc.elements.each("template-queries/template") do |t|
|
|
237
|
+
begin
|
|
238
|
+
temp = parser.parse(t)
|
|
239
|
+
parsed[temp.name] = temp
|
|
240
|
+
rescue
|
|
241
|
+
@broken_templates.push(t.attribute("name").value)
|
|
238
242
|
end
|
|
239
243
|
end
|
|
240
|
-
return
|
|
244
|
+
return parsed
|
|
241
245
|
end
|
|
242
246
|
|
|
243
247
|
# Get all the names of the available templates, in
|
|
@@ -261,9 +265,19 @@ module InterMine
|
|
|
261
265
|
|
|
262
266
|
# Retrieves data from a url with a get request.
|
|
263
267
|
def fetch(url)
|
|
264
|
-
|
|
265
|
-
qs =
|
|
266
|
-
|
|
268
|
+
ps = params
|
|
269
|
+
qs = ps.empty? ? '' : '?' + ps.map{ |k,v| "#{k}=#{CGI::escape(v.to_s)}" }.join('&')
|
|
270
|
+
uri = URI.parse(url + qs)
|
|
271
|
+
|
|
272
|
+
req = Net::HTTP::Get.new(uri.path + qs)
|
|
273
|
+
resp = @http.request req
|
|
274
|
+
|
|
275
|
+
return case resp
|
|
276
|
+
when Net::HTTPSuccess
|
|
277
|
+
resp.body
|
|
278
|
+
else
|
|
279
|
+
raise ServiceError, resp.code, resp.body
|
|
280
|
+
end
|
|
267
281
|
end
|
|
268
282
|
end
|
|
269
283
|
|
data/lib/intermine/version.rb
CHANGED
|
@@ -3,6 +3,8 @@ module Intermine
|
|
|
3
3
|
# Webservice Client Version number
|
|
4
4
|
#
|
|
5
5
|
# Changes:
|
|
6
|
+
# 1.01.00 - Test compatibility with 1.8.7, 1.9.2, 2.0.0-rc1
|
|
7
|
+
# Numerous bug fixes.
|
|
6
8
|
# 1.00.00 - Up to make use of new features of the InterMine 1.0 API
|
|
7
9
|
# * Enrichment queries
|
|
8
10
|
# * Range constraints
|
|
@@ -15,5 +17,6 @@ module Intermine
|
|
|
15
17
|
# 0.98.10 - Added status property to lists
|
|
16
18
|
# 0.98.09 - Major changes to results - now with thorough-going Enumerable support
|
|
17
19
|
# 0.98.08 - Added column summary support
|
|
18
|
-
|
|
20
|
+
#
|
|
21
|
+
VERSION = "1.01.00"
|
|
19
22
|
end
|
data/test/live_results.rb
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
1
2
|
require File.dirname(__FILE__) + "/test_helper.rb"
|
|
2
3
|
|
|
3
4
|
require "test/unit"
|
|
@@ -12,7 +13,7 @@ class LiveResultsTest < Test::Unit::TestCase
|
|
|
12
13
|
@q = @service.query("Employee").select("*", "department.*").where(:age => {:lt => @max})
|
|
13
14
|
@empty = @service.query("Employee").where(:name => "some-non-existant-value")
|
|
14
15
|
@exp_count = 82
|
|
15
|
-
@expected_last = "Didier
|
|
16
|
+
@expected_last = "Didier Leguélec"
|
|
16
17
|
@expected_last_summary = "Vincent"
|
|
17
18
|
@expected_last_obj = "Both Quotes '\""
|
|
18
19
|
@expected_target = 37.02439
|
data/test/live_test.rb
CHANGED
data/test/test_query.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
1
3
|
require File.dirname(__FILE__) + "/test_helper.rb"
|
|
2
4
|
require "intermine/query"
|
|
3
5
|
require "intermine/model"
|
|
@@ -38,27 +40,25 @@ class TestQuery < Test::Unit::TestCase
|
|
|
38
40
|
"Employee.age",
|
|
39
41
|
"Employee.department.name"
|
|
40
42
|
]
|
|
41
|
-
expected = views.to_s
|
|
42
|
-
|
|
43
43
|
|
|
44
44
|
query = InterMine::PathQuery::Query.new(@model)
|
|
45
45
|
query.add_views("Employee.name", "Employee.age",
|
|
46
46
|
"Employee.department.name")
|
|
47
|
-
assert_equal(query.views.to_s,
|
|
47
|
+
assert_equal(query.views.map{ |x| x.to_s }, views)
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
query = InterMine::PathQuery::Query.new(@model, "Employee")
|
|
51
51
|
query.add_views("Employee.name", "Employee.age",
|
|
52
52
|
"Employee.department.name")
|
|
53
|
-
assert_equal(query.views.to_s,
|
|
53
|
+
assert_equal(query.views.map{ |x| x.to_s }, views)
|
|
54
54
|
|
|
55
55
|
query = InterMine::PathQuery::Query.new(@model)
|
|
56
56
|
query.add_views(views)
|
|
57
|
-
assert_equal(query.views.to_s,
|
|
57
|
+
assert_equal(query.views.map{ |x| x.to_s }, views)
|
|
58
58
|
|
|
59
59
|
query = InterMine::PathQuery::Query.new(@model, "Employee")
|
|
60
60
|
query.add_views(views)
|
|
61
|
-
assert_equal(query.views.to_s,
|
|
61
|
+
assert_equal(query.views.map{ |x| x.to_s }, views)
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
def test_bad_viewpath
|
|
@@ -83,15 +83,15 @@ class TestQuery < Test::Unit::TestCase
|
|
|
83
83
|
"Employee.age",
|
|
84
84
|
"Employee.department.name"
|
|
85
85
|
]
|
|
86
|
-
expected = views
|
|
86
|
+
expected = views
|
|
87
87
|
|
|
88
88
|
query = InterMine::PathQuery::Query.new(@model, "Employee")
|
|
89
89
|
query.add_views("name", "age", "department.name")
|
|
90
|
-
assert_equal(query.views.to_s, expected)
|
|
90
|
+
assert_equal(query.views.map {|x| x.to_s }, expected)
|
|
91
91
|
|
|
92
92
|
query = InterMine::PathQuery::Query.new(@model, "Employee")
|
|
93
93
|
query.add_views(["name", "age", "department.name"])
|
|
94
|
-
assert_equal(query.views.to_s, expected)
|
|
94
|
+
assert_equal(query.views.map {|x| x.to_s }, expected)
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
def test_bad_unqualified_path
|
|
@@ -166,8 +166,8 @@ class TestQuery < Test::Unit::TestCase
|
|
|
166
166
|
:sub_class => "Manager"
|
|
167
167
|
})
|
|
168
168
|
query.add_views("Department.employees.seniority")
|
|
169
|
-
expected = ["Department.employees.seniority"]
|
|
170
|
-
assert_equal(query.views.to_s, expected)
|
|
169
|
+
expected = ["Department.employees.seniority"]
|
|
170
|
+
assert_equal(query.views.map {|x| x.to_s }, expected)
|
|
171
171
|
|
|
172
172
|
query = InterMine::PathQuery::Query.new(@model)
|
|
173
173
|
assert_raise InterMine::Metadata::PathException do
|
|
@@ -570,7 +570,7 @@ class TestQuery < Test::Unit::TestCase
|
|
|
570
570
|
assert_equal(conA.loopPath.to_s, "Employee.department.company.departments")
|
|
571
571
|
end
|
|
572
572
|
|
|
573
|
-
def
|
|
573
|
+
def test_bad_loop_constraint
|
|
574
574
|
query = InterMine::PathQuery::Query.new(@model, "Employee")
|
|
575
575
|
assert_raise ArgumentError do
|
|
576
576
|
query.add_constraint({
|
data/test/test_sugar.rb
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + "/test_helper.rb"
|
|
2
|
+
require "test/unit"
|
|
3
|
+
|
|
2
4
|
require "intermine/query"
|
|
3
5
|
require "intermine/model"
|
|
4
6
|
require "intermine/lists"
|
|
5
7
|
require "intermine/service"
|
|
6
|
-
require "test/unit"
|
|
7
8
|
|
|
8
|
-
class
|
|
9
|
+
# Open Service class and mock the fetch method.
|
|
10
|
+
class InterMine::Service
|
|
9
11
|
def fetch(x)
|
|
10
12
|
return 100
|
|
11
13
|
end
|
|
@@ -15,10 +17,10 @@ class TestQuerySugar < Test::Unit::TestCase
|
|
|
15
17
|
|
|
16
18
|
def initialize(name)
|
|
17
19
|
super
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
modelf = File.dirname(__FILE__) + "/data/model.json"
|
|
21
|
+
File.open(modelf, "r") do |f|
|
|
22
|
+
@model = InterMine::Metadata::Model.new f.read
|
|
23
|
+
end
|
|
22
24
|
@service = InterMine::Service.new("foo", "bar", @model)
|
|
23
25
|
@model.send(:set_service, @service)
|
|
24
26
|
@list = InterMine::Lists::List.new({"name" => "test-list"})
|
metadata
CHANGED
|
@@ -1,126 +1,70 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: intermine
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.01.00
|
|
5
5
|
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 1
|
|
8
|
-
- 0
|
|
9
|
-
- 0
|
|
10
|
-
version: 1.00.00
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
7
|
+
authors:
|
|
13
8
|
- Alex Kalderimis
|
|
14
9
|
autorequire:
|
|
15
10
|
bindir: bin
|
|
16
11
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- !ruby/object:Gem::Dependency
|
|
12
|
+
date: 2013-03-01 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
21
15
|
name: json
|
|
22
|
-
|
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
24
17
|
none: false
|
|
25
|
-
requirements:
|
|
26
|
-
- -
|
|
27
|
-
- !ruby/object:Gem::Version
|
|
28
|
-
|
|
29
|
-
segments:
|
|
30
|
-
- 0
|
|
31
|
-
version: "0"
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '0'
|
|
32
22
|
type: :runtime
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
== Example
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
does not require you to learn an entirely new set of concepts.
|
|
74
|
-
As such, as well as the underlying methods that are common
|
|
75
|
-
to all libraries, there is an additional set of aliases and sugar
|
|
76
|
-
methods that emulate the DSL style of SQL:
|
|
77
|
-
|
|
78
|
-
=== SQL style
|
|
79
|
-
|
|
80
|
-
service = Service.new("www.flymine.org/query")
|
|
81
|
-
service.model.
|
|
82
|
-
table("Gene").
|
|
83
|
-
select("*", "pathways.*").
|
|
84
|
-
where(:symbol => "zen").
|
|
85
|
-
order_by(:symbol).
|
|
86
|
-
outerjoin(:pathways).
|
|
87
|
-
each_row do |r|
|
|
88
|
-
puts r
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
=== Common InterMine interface
|
|
92
|
-
|
|
93
|
-
service = Service.new("www.flymine.org/query")
|
|
94
|
-
query = service.new_query("Gene")
|
|
95
|
-
query.add_views("*", "pathways.*")
|
|
96
|
-
query.add_constraint("symbol", "=", "zen")
|
|
97
|
-
query.add_sort_order(:symbol)
|
|
98
|
-
query.add_join(:pathways)
|
|
99
|
-
query.each_row do |r|
|
|
100
|
-
puts r
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
For more details, see the accompanying documentation and the unit tests
|
|
104
|
-
for interface examples. Further documentation is available at www.intermine.org.
|
|
105
|
-
|
|
106
|
-
== Support
|
|
107
|
-
|
|
108
|
-
Support is available on our development mailing list: dev@intermine.org
|
|
109
|
-
|
|
110
|
-
== License
|
|
111
|
-
|
|
112
|
-
This code is Open Source under the LGPL. Source code for all InterMine code
|
|
113
|
-
can be checked out from svn://subversion.flymine.org/flymine
|
|
114
|
-
|
|
115
|
-
email:
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ! '>='
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '0'
|
|
30
|
+
description: ! "= Webservice Client Library for InterMine Data-Warehouses\n\nThis
|
|
31
|
+
library provides an interface to the InterMine webservices\nAPI. It makes construction
|
|
32
|
+
and execution of queries more \nstraightforward, safe and convenient, and allows
|
|
33
|
+
for results\nto be used directly in Ruby code. As well as traditional row based\naccess,
|
|
34
|
+
the library provides an object-orientated record result\nformat (similar to ActiveRecords),
|
|
35
|
+
and allows for fast, memory \nefficient iteration of result sets.\n\n== Example\n\nGet
|
|
36
|
+
all protein domains associated with a set of genes and print their names:\n\n require
|
|
37
|
+
\"intermine/service\"\n\n Service.new(\"www.flymine.org/query\").\n new_query(\"Pathway\")\n
|
|
38
|
+
\ select(:name).\n where(\"genes.symbol\" => [\"zen\", \"hox\", \"h\",
|
|
39
|
+
\"bib\"]).\n each_row { |row| puts row[:name]}\n\n== Who is this for?\n\nInterMine
|
|
40
|
+
data warehouses are typically constructed to hold\nBiological data, and as this
|
|
41
|
+
library facilitates programmatic\naccess to these data, this install is primarily
|
|
42
|
+
aimed at \nbioinformaticians. In particular, users of the following services\nmay
|
|
43
|
+
find it especially useful:\n * FlyMine (http://www.flymine.org/query)\n * YeastMine
|
|
44
|
+
(http://yeastmine.yeastgenome.org/yeastmine)\n * RatMine (http://ratmine.mcw.edu/ratmine)\n
|
|
45
|
+
* modMine (http://intermine.modencode.org/release-23)\n * metabolicMine (http://www.metabolicmine.org/beta)\n\n==
|
|
46
|
+
How to use this library:\n\nWe have tried to construct an interface to this library
|
|
47
|
+
that\ndoes not require you to learn an entirely new set of concepts. \nAs such,
|
|
48
|
+
as well as the underlying methods that are common\nto all libraries, there is an
|
|
49
|
+
additional set of aliases and sugar\nmethods that emulate the DSL style of SQL:\n\n===
|
|
50
|
+
SQL style\n\n service = Service.new(\"www.flymine.org/query\")\n service.model.\n
|
|
51
|
+
\ table(\"Gene\").\n select(\"*\", \"pathways.*\").\n where(:symbol =>
|
|
52
|
+
\"zen\").\n order_by(:symbol).\n outerjoin(:pathways).\n each_row do
|
|
53
|
+
|r|\n puts r\n end\n\n=== Common InterMine interface\n\n service = Service.new(\"www.flymine.org/query\")\n
|
|
54
|
+
\ query = service.new_query(\"Gene\")\n query.add_views(\"*\", \"pathways.*\")\n
|
|
55
|
+
\ query.add_constraint(\"symbol\", \"=\", \"zen\")\n query.add_sort_order(:symbol)\n
|
|
56
|
+
\ query.add_join(:pathways)\n query.each_row do |r|\n puts r\n end\n\nFor more
|
|
57
|
+
details, see the accompanying documentation and the unit tests\nfor interface examples.
|
|
58
|
+
Further documentation is available at www.intermine.org.\n\n== Support\n\nSupport
|
|
59
|
+
is available on our development mailing list: dev@intermine.org\n\n== License\n\nThis
|
|
60
|
+
code is Open Source under the LGPL. Source code for all InterMine code\ncan be checked
|
|
61
|
+
out from svn://subversion.flymine.org/flymine\n"
|
|
62
|
+
email:
|
|
116
63
|
- dev@intermine.org
|
|
117
64
|
executables: []
|
|
118
|
-
|
|
119
65
|
extensions: []
|
|
120
|
-
|
|
121
66
|
extra_rdoc_files: []
|
|
122
|
-
|
|
123
|
-
files:
|
|
67
|
+
files:
|
|
124
68
|
- lib/intermine/lists.rb
|
|
125
69
|
- lib/intermine/model.rb
|
|
126
70
|
- lib/intermine/query.rb
|
|
@@ -153,41 +97,40 @@ files:
|
|
|
153
97
|
- Gemfile
|
|
154
98
|
- contact_header.rdoc
|
|
155
99
|
homepage: http://www.intermine.org
|
|
156
|
-
licenses:
|
|
100
|
+
licenses:
|
|
157
101
|
- LGPL
|
|
158
102
|
post_install_message:
|
|
159
|
-
rdoc_options:
|
|
103
|
+
rdoc_options:
|
|
160
104
|
- --title
|
|
161
105
|
- InterMine Webservice Client
|
|
162
106
|
- --main
|
|
163
107
|
- README.rdoc
|
|
164
108
|
- --line-numbers
|
|
165
|
-
require_paths:
|
|
109
|
+
require_paths:
|
|
166
110
|
- lib
|
|
167
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
168
112
|
none: false
|
|
169
|
-
requirements:
|
|
170
|
-
- -
|
|
171
|
-
- !ruby/object:Gem::Version
|
|
172
|
-
|
|
173
|
-
segments:
|
|
113
|
+
requirements:
|
|
114
|
+
- - ! '>='
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: '0'
|
|
117
|
+
segments:
|
|
174
118
|
- 0
|
|
175
|
-
|
|
176
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
|
+
hash: 150304175
|
|
120
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
121
|
none: false
|
|
178
|
-
requirements:
|
|
179
|
-
- -
|
|
180
|
-
- !ruby/object:Gem::Version
|
|
181
|
-
|
|
182
|
-
segments:
|
|
122
|
+
requirements:
|
|
123
|
+
- - ! '>='
|
|
124
|
+
- !ruby/object:Gem::Version
|
|
125
|
+
version: '0'
|
|
126
|
+
segments:
|
|
183
127
|
- 0
|
|
184
|
-
|
|
128
|
+
hash: 150304175
|
|
185
129
|
requirements: []
|
|
186
|
-
|
|
187
130
|
rubyforge_project: intermine
|
|
188
|
-
rubygems_version: 1.8.
|
|
131
|
+
rubygems_version: 1.8.25
|
|
189
132
|
signing_key:
|
|
190
133
|
specification_version: 3
|
|
191
134
|
summary: Webservice Client Library for InterMine Data-Warehouses
|
|
192
|
-
test_files:
|
|
135
|
+
test_files:
|
|
193
136
|
- test/unit_tests.rb
|