biomart 0.1.3 → 0.1.4
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/History.txt +5 -0
- data/Manifest.txt +2 -1
- data/README.rdoc +17 -2
- data/Rakefile +1 -1
- data/biomart.gemspec +3 -3
- data/lib/biomart.rb +114 -34
- data/lib/biomart/dataset.rb +23 -5
- data/tasks/metrics.task +23 -0
- data/tasks/{shoulda.rake → shoulda.task} +0 -0
- data/test/test_biomart.rb +57 -28
- metadata +4 -3
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
data/README.rdoc
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
http://github.com/dazoakley/biomart
|
|
4
4
|
|
|
5
|
-
http://
|
|
5
|
+
http://rdoc.info/projects/dazoakley/biomart
|
|
6
6
|
|
|
7
7
|
Biomart provides a simple interface for working with Biomart servers
|
|
8
8
|
(see http://www.biomart.org for more info on Biomart itself), so you
|
|
@@ -92,13 +92,28 @@ Now all requests made through Biomart will be proxied via proxy.example.com.
|
|
|
92
92
|
Alternatively you can also set your proxy url in the environment variable
|
|
93
93
|
'http_proxy', and Biomart will automatically detect this.
|
|
94
94
|
|
|
95
|
+
== Setting a Timeout Value
|
|
96
|
+
|
|
97
|
+
If you need to alter the default request timeout value, you can alter this
|
|
98
|
+
globally via Biomart.timeout:
|
|
99
|
+
|
|
100
|
+
Biomart.timeout = 60 # For a 60 second timeout...
|
|
101
|
+
|
|
102
|
+
Or on a per-request basis by passing the :timeout option when searching:
|
|
103
|
+
|
|
104
|
+
kermits.search(
|
|
105
|
+
:filters => { "marker_symbol" => "Cbx1" },
|
|
106
|
+
:process_results => true,
|
|
107
|
+
:timeout => 60
|
|
108
|
+
)
|
|
109
|
+
|
|
95
110
|
== Meta
|
|
96
111
|
|
|
97
112
|
Written by Darren Oakley (daz dot oakley at gmail dot com)
|
|
98
113
|
|
|
99
114
|
http://github.com/dazoakley/biomart
|
|
100
115
|
|
|
101
|
-
http://
|
|
116
|
+
http://rdoc.info/projects/dazoakley/biomart
|
|
102
117
|
|
|
103
118
|
== License
|
|
104
119
|
|
data/Rakefile
CHANGED
data/biomart.gemspec
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = %q{biomart}
|
|
5
|
-
s.version = "0.1.
|
|
5
|
+
s.version = "0.1.4"
|
|
6
6
|
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
8
8
|
s.authors = ["Darren Oakley"]
|
|
9
|
-
s.date = %q{
|
|
9
|
+
s.date = %q{2010-01-20}
|
|
10
10
|
s.description = %q{A ruby API for interacting with Biomart services.}
|
|
11
11
|
s.email = ["daz.oakley@gmail.com"]
|
|
12
12
|
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.rdoc"]
|
|
13
|
-
s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "biomart.gemspec", "lib/biomart.rb", "lib/biomart/attribute.rb", "lib/biomart/database.rb", "lib/biomart/dataset.rb", "lib/biomart/filter.rb", "lib/biomart/server.rb", "script/console", "script/destroy", "script/generate", "tasks/shoulda.
|
|
13
|
+
s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "biomart.gemspec", "lib/biomart.rb", "lib/biomart/attribute.rb", "lib/biomart/database.rb", "lib/biomart/dataset.rb", "lib/biomart/filter.rb", "lib/biomart/server.rb", "script/console", "script/destroy", "script/generate", "tasks/metrics.task", "tasks/shoulda.task", "test/test_biomart.rb", "test/test_helper.rb"]
|
|
14
14
|
s.homepage = %q{http://github.com/dazoakley/biomart}
|
|
15
15
|
s.rdoc_options = ["--main", "README.rdoc"]
|
|
16
16
|
s.require_paths = ["lib"]
|
data/lib/biomart.rb
CHANGED
|
@@ -6,8 +6,16 @@ require "csv"
|
|
|
6
6
|
require "rubygems"
|
|
7
7
|
require "builder"
|
|
8
8
|
|
|
9
|
+
#begin
|
|
10
|
+
# require "curb"
|
|
11
|
+
# use_curb = true
|
|
12
|
+
#rescue LoadError
|
|
13
|
+
# use_curb = false
|
|
14
|
+
#end
|
|
15
|
+
#CURB_AVAILABLE = use_curb
|
|
16
|
+
|
|
9
17
|
module Biomart
|
|
10
|
-
VERSION = "0.1.
|
|
18
|
+
VERSION = "0.1.4"
|
|
11
19
|
|
|
12
20
|
# This is the base Biomart error/exception class. Rescue it if
|
|
13
21
|
# you want to catch any exceptions that this code might raise.
|
|
@@ -38,50 +46,122 @@ module Biomart
|
|
|
38
46
|
# dataset.
|
|
39
47
|
class DatasetError < BiomartError; end
|
|
40
48
|
|
|
41
|
-
@@url = 'http://www.biomart.org/biomart/martservice'
|
|
42
|
-
@@client = Net::HTTP
|
|
43
|
-
|
|
44
49
|
# Centralised request function for handling all of the HTTP requests
|
|
45
50
|
# to the biomart servers.
|
|
46
51
|
def request( params={} )
|
|
47
|
-
|
|
48
|
-
proxy_uri = Biomart.proxy
|
|
49
|
-
proxy_uri ||= ENV['http_proxy']
|
|
50
|
-
proxy = URI.parse( proxy_uri )
|
|
51
|
-
@@client = Net::HTTP::Proxy( proxy.host, proxy.port )
|
|
52
|
-
end
|
|
52
|
+
net_http_request(params)
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
#if CURB_AVAILABLE and ( Biomart.use_net_http != true )
|
|
55
|
+
# curb_request(params)
|
|
56
|
+
#else
|
|
57
|
+
# net_http_request(params)
|
|
58
|
+
#end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
class << self
|
|
62
|
+
attr_accessor :proxy, :timeout, :use_net_http
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
private
|
|
55
66
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
67
|
+
# Utility function to perform the request method using the curb
|
|
68
|
+
# gem (a wrapper around libcurl) - supposed to be faster than
|
|
69
|
+
# Net::HTTP.
|
|
70
|
+
def curb_request( params={} )
|
|
71
|
+
client = Curl::Easy.new( params[:url] )
|
|
72
|
+
|
|
73
|
+
if Biomart.timeout or params[:timeout]
|
|
74
|
+
client.connect_timeout = params[:timeout] ? params[:timeout] : Biomart.timeout
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
if proxy_url() then client.proxy_url = proxy_url() end
|
|
78
|
+
|
|
79
|
+
case params[:method]
|
|
80
|
+
when 'post'
|
|
81
|
+
client.http_post( Curl::PostField.content( "query", params[:query], "text/xml" ) )
|
|
82
|
+
else
|
|
83
|
+
client.http_get
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
check_response( client.body_str, client.response_code )
|
|
87
|
+
|
|
88
|
+
return client.body_str
|
|
60
89
|
end
|
|
61
90
|
|
|
62
|
-
#
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
91
|
+
# Utility function to perform the request method using Net::HTTP.
|
|
92
|
+
def net_http_request( params={} )
|
|
93
|
+
uri = URI.parse( params[:url] )
|
|
94
|
+
client = net_http_client()
|
|
95
|
+
req = nil
|
|
96
|
+
response = nil
|
|
97
|
+
|
|
98
|
+
case params[:method]
|
|
99
|
+
when 'post'
|
|
100
|
+
req = Net::HTTP::Post.new(uri.path)
|
|
101
|
+
req.form_data = { "query" => params[:query] }
|
|
102
|
+
else
|
|
103
|
+
req = Net::HTTP::Get.new(uri.request_uri)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
client.start(uri.host, uri.port) do |http|
|
|
107
|
+
if Biomart.timeout or params[:timeout]
|
|
108
|
+
http.read_timeout = params[:timeout] ? params[:timeout] : Biomart.timeout
|
|
109
|
+
http.open_timeout = params[:timeout] ? params[:timeout] : Biomart.timeout
|
|
75
110
|
end
|
|
111
|
+
response = http.request(req)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
check_response( response.body, response.code )
|
|
115
|
+
|
|
116
|
+
return response.body
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Utility function to create a Net::HTTP object.
|
|
120
|
+
def net_http_client
|
|
121
|
+
client = Net::HTTP
|
|
122
|
+
if proxy_url()
|
|
123
|
+
proxy = URI.parse( proxy_url() )
|
|
124
|
+
client = Net::HTTP::Proxy( proxy.host, proxy.port )
|
|
76
125
|
end
|
|
126
|
+
return client
|
|
77
127
|
end
|
|
78
128
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
129
|
+
# Utility function to determine if we need to use a proxy. If yes,
|
|
130
|
+
# returns the proxy url, if no, returns false.
|
|
131
|
+
def proxy_url
|
|
132
|
+
if Biomart.proxy or ENV['http_proxy'] or ENV['HTTP_PROXY']
|
|
133
|
+
proxy_uri = Biomart.proxy
|
|
134
|
+
proxy_uri ||= ENV['http_proxy']
|
|
135
|
+
proxy_uri ||= ENV['HTTP_PROXY']
|
|
136
|
+
|
|
137
|
+
return proxy_uri
|
|
138
|
+
else
|
|
139
|
+
return false
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# Utility function to test the response from a http request.
|
|
144
|
+
# Raises errors if appropriate.
|
|
145
|
+
def check_response( body, code )
|
|
146
|
+
# Process the response code/body to catch errors.
|
|
147
|
+
if code.is_a?(String) then code = code.to_i end
|
|
148
|
+
|
|
149
|
+
if code != 200
|
|
150
|
+
raise HTTPError.new(code), "HTTP error #{code}, please check your biomart server and URL settings."
|
|
151
|
+
else
|
|
152
|
+
if body =~ /ERROR/
|
|
153
|
+
if body =~ /Filter (.+) NOT FOUND/
|
|
154
|
+
raise FilterError.new(body), "Biomart error. Filter #{$1} not found."
|
|
155
|
+
elsif body =~ /Attribute (.+) NOT FOUND/
|
|
156
|
+
raise AttributeError.new(body), "Biomart error. Attribute #{$1} not found."
|
|
157
|
+
elsif body =~ /Dataset (.+) NOT FOUND/
|
|
158
|
+
raise DatasetError.new(body), "Biomart error. Dataset #{$1} not found."
|
|
159
|
+
else
|
|
160
|
+
raise BiomartError.new(body), "Biomart error."
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
85
165
|
|
|
86
166
|
end
|
|
87
167
|
|
data/lib/biomart/dataset.rb
CHANGED
|
@@ -64,9 +64,18 @@ module Biomart
|
|
|
64
64
|
# optional arguments:
|
|
65
65
|
#
|
|
66
66
|
# :filters:: hash of key-value pairs (filter => search term)
|
|
67
|
+
# :timeout:: set a timeout length for the request (secs)
|
|
67
68
|
def count( args={} )
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
result = request(
|
|
70
|
+
:method => 'post',
|
|
71
|
+
:url => @url,
|
|
72
|
+
:timeout => args[:timeout],
|
|
73
|
+
:query => generate_xml(
|
|
74
|
+
:filters => args[:filters],
|
|
75
|
+
:attributes => args[:attributes],
|
|
76
|
+
:count => "1"
|
|
77
|
+
)
|
|
78
|
+
)
|
|
70
79
|
return result.to_i
|
|
71
80
|
end
|
|
72
81
|
|
|
@@ -77,6 +86,7 @@ module Biomart
|
|
|
77
86
|
# :filters:: hash of key-value pairs (filter => search term)
|
|
78
87
|
# :attributes:: array of attributes to retrieve
|
|
79
88
|
# :process_results:: true/false - convert search results to object
|
|
89
|
+
# :timeout:: set a timeout length for the request (secs)
|
|
80
90
|
#
|
|
81
91
|
# By default will return a hash with the following:
|
|
82
92
|
#
|
|
@@ -86,9 +96,17 @@ module Biomart
|
|
|
86
96
|
# But with the :process_results option will return an array of hashes,
|
|
87
97
|
# where each hash represents a row of results (keyed by the attribute name).
|
|
88
98
|
def search( args={} )
|
|
89
|
-
response = request(
|
|
90
|
-
|
|
91
|
-
|
|
99
|
+
response = request(
|
|
100
|
+
:method => 'post',
|
|
101
|
+
:url => @url,
|
|
102
|
+
:timeout => args[:timeout],
|
|
103
|
+
:query => generate_xml(
|
|
104
|
+
:filters => args[:filters],
|
|
105
|
+
:attributes => args[:attributes]
|
|
106
|
+
)
|
|
107
|
+
)
|
|
108
|
+
result = process_tsv( args, response )
|
|
109
|
+
result = conv_results_to_a_of_h( result ) if args[:process_results]
|
|
92
110
|
return result
|
|
93
111
|
end
|
|
94
112
|
|
data/tasks/metrics.task
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
begin
|
|
2
|
+
require "metric_fu"
|
|
3
|
+
MetricFu::Configuration.run do |config|
|
|
4
|
+
config.metrics = [:churn, :saikuro, :flog, :flay, :reek, :roodi, :rcov]
|
|
5
|
+
config.graphs = [:flog, :flay, :reek, :roodi, :rcov]
|
|
6
|
+
config.flog = { :dirs_to_flog => ["lib"] }
|
|
7
|
+
config.flay = { :dirs_to_flay => ["lib"] }
|
|
8
|
+
config.reek = { :dirs_to_reek => ["lib"] }
|
|
9
|
+
config.roodi = { :dirs_to_roodi => ["lib"] }
|
|
10
|
+
config.rcov = {
|
|
11
|
+
:test_files => ["test/test_*.rb"],
|
|
12
|
+
:rcov_opts => [
|
|
13
|
+
"--sort coverage",
|
|
14
|
+
"--no-html",
|
|
15
|
+
"--text-coverage",
|
|
16
|
+
"--no-color",
|
|
17
|
+
"--profile",
|
|
18
|
+
"--exclude /gems/,/Library/,spec,features"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
end
|
|
22
|
+
rescue LoadError
|
|
23
|
+
end
|
|
File without changes
|
data/test/test_biomart.rb
CHANGED
|
@@ -42,7 +42,7 @@ class BiomartTest < Test::Unit::TestCase
|
|
|
42
42
|
setup do
|
|
43
43
|
@htgt_targ = @htgt.datasets["htgt_targ"]
|
|
44
44
|
@htgt_trap = @htgt.datasets["htgt_trap"]
|
|
45
|
-
@kermits
|
|
45
|
+
@kermits = @htgt.datasets["kermits"]
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
should "have basic metadata" do
|
|
@@ -63,34 +63,31 @@ class BiomartTest < Test::Unit::TestCase
|
|
|
63
63
|
assert( @kermits.attributes["ensembl_gene_id"].is_a?( Biomart::Attribute ), "Biomart::Dataset is not creating Biomart::Attribute objects." )
|
|
64
64
|
end
|
|
65
65
|
|
|
66
|
-
should "perform count queries" do
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
assert( htgt_count > 0, "Biomart::Dataset.count is returning zero - this is wrong!" )
|
|
66
|
+
should "perform count/search queries" do
|
|
67
|
+
perform_count_queries("net/http")
|
|
68
|
+
perform_search_queries("net/http")
|
|
70
69
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
70
|
+
#if CURB_AVAILABLE
|
|
71
|
+
# perform_count_queries("curb")
|
|
72
|
+
# perform_search_queries("curb")
|
|
73
|
+
# Biomart.use_net_http = true
|
|
74
|
+
# perform_count_queries("net/http")
|
|
75
|
+
# perform_search_queries("net/http")
|
|
76
|
+
#else
|
|
77
|
+
# perform_count_queries("net/http")
|
|
78
|
+
# perform_search_queries("net/http")
|
|
79
|
+
#end
|
|
78
80
|
end
|
|
79
81
|
|
|
80
|
-
should "perform search queries" do
|
|
81
|
-
search = @htgt_trap.search()
|
|
82
|
-
assert( search.is_a?( Hash ), "Biomart::Dataset.search (no options) is not returning a hash." )
|
|
83
|
-
assert( search[:data].is_a?( Array ), "Biomart::Dataset.search[:data] (no options) is not returning an array." )
|
|
82
|
+
should "perform search queries whilst altering the timeout property" do
|
|
83
|
+
search = @htgt_trap.search( :timeout => 60 )
|
|
84
|
+
assert( search.is_a?( Hash ), "Biomart::Dataset.search (no options except per-request timeout) is not returning a hash." )
|
|
85
|
+
assert( search[:data].is_a?( Array ), "Biomart::Dataset.search[:data] (no options except per-request timeout) is not returning an array." )
|
|
84
86
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
assert(
|
|
88
|
-
assert(
|
|
89
|
-
|
|
90
|
-
search2 = @htgt_targ.search( :filters => { "marker_symbol" => "Cbx1" }, :attributes => ["marker_symbol","ensembl_gene_id"], :process_results => true )
|
|
91
|
-
assert( search2.is_a?( Array ), "Biomart::Dataset.search (filters and attributes defined with processing) is not returning an array." )
|
|
92
|
-
assert( search2.first.is_a?( Hash ), "Biomart::Dataset.search (filters and attributes defined with processing) is not returning an array of hashes." )
|
|
93
|
-
assert( search2.first["marker_symbol"] == "Cbx1", "Biomart::Dataset.search (filters and attributes defined with processing) is not returning the correct info." )
|
|
87
|
+
Biomart.timeout = 60
|
|
88
|
+
search = @htgt_trap.search()
|
|
89
|
+
assert( search.is_a?( Hash ), "Biomart::Dataset.search (no options except global timeout) is not returning a hash." )
|
|
90
|
+
assert( search[:data].is_a?( Array ), "Biomart::Dataset.search[:data] (no options except global timeout) is not returning an array." )
|
|
94
91
|
end
|
|
95
92
|
|
|
96
93
|
should "handle search queries that will generate poorly formatted TSV data" do
|
|
@@ -100,17 +97,49 @@ class BiomartTest < Test::Unit::TestCase
|
|
|
100
97
|
"is_eucomm", "is_komp_csd", "is_komp_regeneron", "is_norcomm",
|
|
101
98
|
"is_mgp", "mgi_accession_id", "marker_symbol", "ensembl_gene_id",
|
|
102
99
|
"status", "status_code", "status_type", "status_description",
|
|
103
|
-
"status_sequence", "pipeline_stage", "
|
|
100
|
+
"status_sequence", "pipeline_stage", "ikmc_project_id", "bac",
|
|
104
101
|
"design_id", "design_plate", "design_well", "intvec_plate",
|
|
105
102
|
"intvec_well", "intvec_distribute", "targvec_plate", "targvec_well",
|
|
106
103
|
"targvec_distribute", "backbone", "cassette", "allele_name",
|
|
107
|
-
"
|
|
108
|
-
"is_latest_for_gene", "
|
|
104
|
+
"escell_clone", "escell_distribute", "escell_line", "colonies_picked",
|
|
105
|
+
"is_latest_for_gene", "targeted_trap"
|
|
109
106
|
]
|
|
110
107
|
)
|
|
111
108
|
assert( search.is_a?( Hash ), "Biomart::Dataset.search (no options) is not returning a hash." )
|
|
112
109
|
assert( search[:data].is_a?( Array ), "Biomart::Dataset.search[:data] (no options) is not returning an array." )
|
|
110
|
+
assert( search[:data].size > 0, "Biomart::Dataset.search[:data] for poorly formatted TSV data is empty." )
|
|
113
111
|
end
|
|
112
|
+
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def perform_count_queries( library )
|
|
116
|
+
htgt_count = @htgt_targ.count()
|
|
117
|
+
assert( htgt_count.is_a?( Integer ), "Biomart::Dataset.count is not returning integers. [using #{library} for HTTP communication]" )
|
|
118
|
+
assert( htgt_count > 0, "Biomart::Dataset.count is returning zero - this is wrong! [using #{library} for HTTP communication]" )
|
|
119
|
+
|
|
120
|
+
htgt_count_single_filter = @htgt_targ.count( :filters => { "is_eucomm" => "1" } )
|
|
121
|
+
assert( htgt_count_single_filter.is_a?( Integer ), "Biomart::Dataset.count (with single filter) is not returning integers. [using #{library} for HTTP communication]" )
|
|
122
|
+
assert( htgt_count_single_filter > 0, "Biomart::Dataset.count (with single filter) is returning zero - this is wrong! [using #{library} for HTTP communication]" )
|
|
123
|
+
|
|
124
|
+
htgt_count_single_filter_group_value = @htgt_targ.count( :filters => { "marker_symbol" => ["Cbx1","Cbx7","Art4"] } )
|
|
125
|
+
assert( htgt_count_single_filter_group_value.is_a?( Integer ), "Biomart::Dataset.count (with single filter, group value) is not returning integers. [using #{library} for HTTP communication]" )
|
|
126
|
+
assert( htgt_count_single_filter_group_value > 0, "Biomart::Dataset.count (with single filter, group value) is returning zero - this is wrong! [using #{library} for HTTP communication]" )
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def perform_search_queries( library )
|
|
130
|
+
search = @htgt_trap.search()
|
|
131
|
+
assert( search.is_a?( Hash ), "Biomart::Dataset.search (no options) is not returning a hash. [using #{library} for HTTP communication]" )
|
|
132
|
+
assert( search[:data].is_a?( Array ), "Biomart::Dataset.search[:data] (no options) is not returning an array. [using #{library} for HTTP communication]" )
|
|
133
|
+
|
|
134
|
+
search1 = @htgt_targ.search( :filters => { "marker_symbol" => "Cbx1" }, :process_results => true )
|
|
135
|
+
assert( search1.is_a?( Array ), "Biomart::Dataset.search (filters defined with processing) is not returning an array. [using #{library} for HTTP communication]" )
|
|
136
|
+
assert( search1.first.is_a?( Hash ), "Biomart::Dataset.search (filters defined with processing) is not returning an array of hashes. [using #{library} for HTTP communication]" )
|
|
137
|
+
assert( search1.first["marker_symbol"] == "Cbx1", "Biomart::Dataset.search (filters defined with processing) is not returning the correct info. [using #{library} for HTTP communication]" )
|
|
138
|
+
|
|
139
|
+
search2 = @htgt_targ.search( :filters => { "marker_symbol" => "Cbx1" }, :attributes => ["marker_symbol","ensembl_gene_id"], :process_results => true )
|
|
140
|
+
assert( search2.is_a?( Array ), "Biomart::Dataset.search (filters and attributes defined with processing) is not returning an array. [using #{library} for HTTP communication]" )
|
|
141
|
+
assert( search2.first.is_a?( Hash ), "Biomart::Dataset.search (filters and attributes defined with processing) is not returning an array of hashes. [using #{library} for HTTP communication]" )
|
|
142
|
+
assert( search2.first["marker_symbol"] == "Cbx1", "Biomart::Dataset.search (filters and attributes defined with processing) is not returning the correct info. [using #{library} for HTTP communication]" )
|
|
114
143
|
end
|
|
115
144
|
|
|
116
145
|
context "The Biomart module" do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: biomart
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Darren Oakley
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date:
|
|
12
|
+
date: 2010-01-20 00:00:00 +00:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
@@ -68,7 +68,8 @@ files:
|
|
|
68
68
|
- script/console
|
|
69
69
|
- script/destroy
|
|
70
70
|
- script/generate
|
|
71
|
-
- tasks/
|
|
71
|
+
- tasks/metrics.task
|
|
72
|
+
- tasks/shoulda.task
|
|
72
73
|
- test/test_biomart.rb
|
|
73
74
|
- test/test_helper.rb
|
|
74
75
|
has_rdoc: true
|