intermine 1.01.00 → 1.01.01
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/lib/intermine/model.rb +26 -12
- data/lib/intermine/version.rb +2 -1
- data/test/live_results.rb +2 -2
- data/test/live_summary_test.rb +1 -1
- data/test/live_test.rb +2 -2
- data/test/test_results.rb +1 -1
- data/test/test_service.rb +2 -2
- metadata +6 -12
data/lib/intermine/model.rb
CHANGED
@@ -544,10 +544,20 @@ module Metadata
|
|
544
544
|
if fd.is_a?(ReferenceDescriptor)
|
545
545
|
klass.class_eval do
|
546
546
|
define_method(fd.name) do
|
547
|
-
if instance_variable_get("@" + fd.name).nil?
|
548
|
-
q = __cd__.select(fd.name + ".*").where(:id => objectId)
|
549
|
-
|
550
|
-
|
547
|
+
if instance_variable_get("@" + fd.name).nil? and not instance_variable_get("@" + fd.name + "_ISNULL")
|
548
|
+
q = __cd__.select(:id, fd.name + ".*").where(:id => objectId).outerjoin(fd.name)
|
549
|
+
first_result = q.results.first
|
550
|
+
unless first_result.nil?
|
551
|
+
instance_var = first_result[fd.name]
|
552
|
+
if instance_var.nil?
|
553
|
+
if fs.is_a?(CollectionDescriptor) and instance_var.nil?
|
554
|
+
instance_var = []
|
555
|
+
else
|
556
|
+
instance_variable_set("@" + fd.name + "_ISNULL", true)
|
557
|
+
end
|
558
|
+
end
|
559
|
+
instance_variable_set("@" + fd.name, instance_var)
|
560
|
+
end
|
551
561
|
end
|
552
562
|
return instance_variable_get("@" + fd.name)
|
553
563
|
end
|
@@ -576,18 +586,22 @@ module Metadata
|
|
576
586
|
type = fd.referencedType
|
577
587
|
if fd.is_a?(CollectionDescriptor)
|
578
588
|
instance_var = []
|
579
|
-
val.
|
580
|
-
|
581
|
-
item
|
582
|
-
|
583
|
-
|
584
|
-
|
589
|
+
unless val.nil?
|
590
|
+
val.each do |item|
|
591
|
+
if item.is_a?(Hash)
|
592
|
+
item = type.model.make_new(type.name, item)
|
593
|
+
end
|
594
|
+
if !item.is_a?(type)
|
595
|
+
raise ArgumentError, "Arguments to #{fd.name} in #{@name} must be #{type.name}s"
|
596
|
+
end
|
597
|
+
instance_var << item
|
585
598
|
end
|
586
|
-
instance_var << item
|
587
599
|
end
|
588
600
|
instance_variable_set("@" + fd.name, instance_var)
|
589
601
|
else
|
590
|
-
if val.
|
602
|
+
if val.nil?
|
603
|
+
instance_variable_set("@" + fd.name + "_ISNULL", true)
|
604
|
+
elsif val.is_a?(Hash)
|
591
605
|
val = type.model.make_new(type.name, val)
|
592
606
|
end
|
593
607
|
if !val.is_a?(type)
|
data/lib/intermine/version.rb
CHANGED
@@ -3,6 +3,7 @@ module Intermine
|
|
3
3
|
# Webservice Client Version number
|
4
4
|
#
|
5
5
|
# Changes:
|
6
|
+
# 1.01.01 - Inproved lazy reference fetching
|
6
7
|
# 1.01.00 - Test compatibility with 1.8.7, 1.9.2, 2.0.0-rc1
|
7
8
|
# Numerous bug fixes.
|
8
9
|
# 1.00.00 - Up to make use of new features of the InterMine 1.0 API
|
@@ -18,5 +19,5 @@ module Intermine
|
|
18
19
|
# 0.98.09 - Major changes to results - now with thorough-going Enumerable support
|
19
20
|
# 0.98.08 - Added column summary support
|
20
21
|
#
|
21
|
-
VERSION = "1.01.
|
22
|
+
VERSION = "1.01.01"
|
22
23
|
end
|
data/test/live_results.rb
CHANGED
@@ -8,7 +8,7 @@ require "intermine/results"
|
|
8
8
|
class LiveResultsTest < Test::Unit::TestCase
|
9
9
|
|
10
10
|
def setup
|
11
|
-
@service = Service.new("http://localhost/intermine-test")
|
11
|
+
@service = Service.new("http://localhost:8080/intermine-test")
|
12
12
|
@max = 50
|
13
13
|
@q = @service.query("Employee").select("*", "department.*").where(:age => {:lt => @max})
|
14
14
|
@empty = @service.query("Employee").where(:name => "some-non-existant-value")
|
@@ -141,7 +141,7 @@ end
|
|
141
141
|
class LiveTemplateResultsTest < LiveResultsTest
|
142
142
|
|
143
143
|
def setup
|
144
|
-
@service = Service.new("http://localhost/intermine-test")
|
144
|
+
@service = Service.new("http://localhost:8080/intermine-test")
|
145
145
|
@q = @service.template("employeesOverACertainAgeFromDepartmentA")
|
146
146
|
@empty = @q
|
147
147
|
@exp_count = 18
|
data/test/live_summary_test.rb
CHANGED
@@ -6,7 +6,7 @@ require "intermine/service"
|
|
6
6
|
class LiveSummaryTest < Test::Unit::TestCase
|
7
7
|
|
8
8
|
def setup
|
9
|
-
@service = Service.new("http://localhost/intermine-test")
|
9
|
+
@service = Service.new("http://localhost:8080/intermine-test")
|
10
10
|
@query = @service.query("Employee").where(:age => {:lt => 50})
|
11
11
|
end
|
12
12
|
|
data/test/live_test.rb
CHANGED
@@ -6,7 +6,7 @@ require "intermine/service"
|
|
6
6
|
class LiveDemoTest < Test::Unit::TestCase
|
7
7
|
|
8
8
|
def setup
|
9
|
-
@service = Service.new("http://localhost/intermine-test", "test-user-token")
|
9
|
+
@service = Service.new("http://localhost:8080/intermine-test", "test-user-token")
|
10
10
|
@temp_lists = []
|
11
11
|
end
|
12
12
|
|
@@ -72,7 +72,7 @@ class LiveDemoTest < Test::Unit::TestCase
|
|
72
72
|
|
73
73
|
def testLazyCollectionFetching
|
74
74
|
list = @service.list("My-Favourite-Employees")
|
75
|
-
emps = list.map {|manager| manager.department.employees.map
|
75
|
+
emps = list.map {|manager| manager.department.employees.map{|employee| employee.age}.sort }
|
76
76
|
exp = [
|
77
77
|
[34, 36, 41, 55, 61, 61],
|
78
78
|
[44, 49, 62],
|
data/test/test_results.rb
CHANGED
@@ -11,7 +11,7 @@ q.add_views("name", "age")
|
|
11
11
|
q.add_constraint({:path => "age", :op => ">", :value => 40})
|
12
12
|
q.add_sort_order("age")
|
13
13
|
params = {"query" => q.to_xml, "format" => "jsonrows"}
|
14
|
-
uri = "http://
|
14
|
+
uri = "http://localhost:8080/intermine-test/service/query/results"
|
15
15
|
rr = Results::ResultsReader.new(uri, params, q.views)
|
16
16
|
sum, total = 0, 0
|
17
17
|
rr.each_row {|emp|
|
data/test/test_service.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
$LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/../lib' )
|
2
2
|
require "intermine/service"
|
3
3
|
|
4
|
-
service = Service.new("http://
|
4
|
+
service = Service.new("http://localhost:8080/intermine-test/service")
|
5
5
|
|
6
6
|
p service.version
|
7
7
|
p service.model.name
|
@@ -20,7 +20,7 @@ end
|
|
20
20
|
puts "Average => #{sum/total} - #{total} employees"
|
21
21
|
puts
|
22
22
|
|
23
|
-
tok_service = Service.new("http://
|
23
|
+
tok_service = Service.new("http://localhost:8080/intermine-test/service", "a1v3V1X0f3hdmaybq0l6b7Z4eVG")
|
24
24
|
|
25
25
|
q = tok_service.new_query("Employee")
|
26
26
|
q.add_views("name", "age")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intermine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.01.
|
4
|
+
version: 1.01.01
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -90,11 +90,11 @@ files:
|
|
90
90
|
- test/test_service.rb
|
91
91
|
- test/test_sugar.rb
|
92
92
|
- test/unit_tests.rb
|
93
|
-
- MANIFEST
|
94
93
|
- LICENCE
|
95
|
-
- Rakefile
|
96
|
-
- README.rdoc
|
97
94
|
- Gemfile
|
95
|
+
- MANIFEST
|
96
|
+
- README.rdoc
|
97
|
+
- Rakefile
|
98
98
|
- contact_header.rdoc
|
99
99
|
homepage: http://www.intermine.org
|
100
100
|
licenses:
|
@@ -114,21 +114,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
114
114
|
- - ! '>='
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
|
-
segments:
|
118
|
-
- 0
|
119
|
-
hash: 150304175
|
120
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
118
|
none: false
|
122
119
|
requirements:
|
123
120
|
- - ! '>='
|
124
121
|
- !ruby/object:Gem::Version
|
125
122
|
version: '0'
|
126
|
-
segments:
|
127
|
-
- 0
|
128
|
-
hash: 150304175
|
129
123
|
requirements: []
|
130
124
|
rubyforge_project: intermine
|
131
|
-
rubygems_version: 1.8.
|
125
|
+
rubygems_version: 1.8.23
|
132
126
|
signing_key:
|
133
127
|
specification_version: 3
|
134
128
|
summary: Webservice Client Library for InterMine Data-Warehouses
|