myexperiment-rest 0.2.8 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +13 -0
- data/README +3 -3
- data/Rakefile +4 -9
- data/bin/get_workflow_data.rb +27 -9
- data/doc/rdoc/CHANGES.html +30 -4
- data/doc/rdoc/LICENSE.html +8 -4
- data/doc/rdoc/MyExperimentREST.html +101 -10
- data/doc/rdoc/MyExperimentREST/{TavernaIOData.html → MyExperimentIOData.html} +76 -14
- data/doc/rdoc/MyExperimentREST/{TavernaUser.html → MyExperimentUser.html} +122 -22
- data/doc/rdoc/MyExperimentREST/{TavernaWorkflow.html → MyExperimentWorkflow.html} +87 -62
- data/doc/rdoc/MyExperimentREST/Urls.html +168 -0
- data/doc/rdoc/MyExperimentREST/User.html +260 -0
- data/doc/rdoc/MyExperimentREST/{Workflows.html → Workflow.html} +72 -61
- data/doc/rdoc/README.html +12 -7
- data/doc/rdoc/created.rid +7 -5
- data/doc/rdoc/index.html +30 -11
- data/doc/rdoc/lib/myexperiment-rest/constants_rb.html +52 -0
- data/doc/rdoc/lib/myexperiment-rest/{myexperiment_rest_rb.html → user_rb.html} +2 -8
- data/doc/rdoc/lib/myexperiment-rest/workflow_rb.html +54 -0
- data/doc/rdoc/lib/myexperiment-rest_rb.html +10 -2
- data/lib/myexperiment-rest.rb +42 -1
- data/lib/myexperiment-rest/constants.rb +11 -0
- data/lib/myexperiment-rest/user.rb +83 -0
- data/lib/myexperiment-rest/workflow.rb +145 -0
- metadata +21 -15
- data/lib/myexperiment-rest/myexperiment_rest.rb +0 -190
data/doc/rdoc/README.html
CHANGED
@@ -66,13 +66,17 @@
|
|
66
66
|
|
67
67
|
<li><a href="./MyExperimentREST.html">MyExperimentREST</a></li>
|
68
68
|
|
69
|
-
<li><a href="./MyExperimentREST/
|
69
|
+
<li><a href="./MyExperimentREST/MyExperimentIOData.html">MyExperimentREST::MyExperimentIOData</a></li>
|
70
70
|
|
71
|
-
<li><a href="./MyExperimentREST/
|
71
|
+
<li><a href="./MyExperimentREST/MyExperimentUser.html">MyExperimentREST::MyExperimentUser</a></li>
|
72
72
|
|
73
|
-
<li><a href="./MyExperimentREST/
|
73
|
+
<li><a href="./MyExperimentREST/MyExperimentWorkflow.html">MyExperimentREST::MyExperimentWorkflow</a></li>
|
74
74
|
|
75
|
-
<li><a href="./MyExperimentREST/
|
75
|
+
<li><a href="./MyExperimentREST/Urls.html">MyExperimentREST::Urls</a></li>
|
76
|
+
|
77
|
+
<li><a href="./MyExperimentREST/User.html">MyExperimentREST::User</a></li>
|
78
|
+
|
79
|
+
<li><a href="./MyExperimentREST/Workflow.html">MyExperimentREST::Workflow</a></li>
|
76
80
|
|
77
81
|
</ul>
|
78
82
|
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
@@ -90,7 +94,7 @@
|
|
90
94
|
<p>Konstantinos Karasavvas</p>
|
91
95
|
</td></tr><tr><td class="rdoc-term"><p>Gem Version</p></td>
|
92
96
|
<td>
|
93
|
-
<p>0.
|
97
|
+
<p>0.3.0</p>
|
94
98
|
</td></tr><tr><td class="rdoc-term"><p>Contact</p></td>
|
95
99
|
<td>
|
96
100
|
<p><a href="mailto:kostas.karasavvas@nbic.nl">kostas.karasavvas@nbic.nl</a></p>
|
@@ -109,12 +113,13 @@ href="http://www.opensource.org/licenses/mit-license">www.opensource.org/license
|
|
109
113
|
|
110
114
|
<h2>Features/Problems</h2>
|
111
115
|
|
112
|
-
<p>Only a subset of myExperiment workflow data can be currently
|
116
|
+
<p>Only a subset of myExperiment workflow and user data can be currently
|
117
|
+
accessed.</p>
|
113
118
|
|
114
119
|
<h2>Usage</h2>
|
115
120
|
|
116
121
|
<p>There is an example script inside the <tt>bin</tt> directory that
|
117
|
-
demonstrates how you can use the library.</p>
|
122
|
+
demonstrates how you can use the library: $ get_workflow_data.rb.</p>
|
118
123
|
|
119
124
|
<h2>Installation</h2>
|
120
125
|
|
data/doc/rdoc/created.rid
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
|
1
|
+
Wed, 28 Sep 2011 12:45:52 +0200
|
2
2
|
LICENSE Tue, 26 Jul 2011 16:45:34 +0200
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
lib/myexperiment-rest
|
3
|
+
lib/myexperiment-rest/constants.rb Wed, 28 Sep 2011 10:04:55 +0200
|
4
|
+
README Wed, 28 Sep 2011 12:41:40 +0200
|
5
|
+
lib/myexperiment-rest/user.rb Wed, 28 Sep 2011 12:11:32 +0200
|
6
|
+
lib/myexperiment-rest.rb Wed, 28 Sep 2011 12:07:50 +0200
|
7
|
+
CHANGES Wed, 28 Sep 2011 12:42:24 +0200
|
8
|
+
lib/myexperiment-rest/workflow.rb Wed, 28 Sep 2011 12:32:43 +0200
|
data/doc/rdoc/index.html
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
<p>Konstantinos Karasavvas</p>
|
30
30
|
</td></tr><tr><td class="rdoc-term"><p>Gem Version</p></td>
|
31
31
|
<td>
|
32
|
-
<p>0.
|
32
|
+
<p>0.3.0</p>
|
33
33
|
</td></tr><tr><td class="rdoc-term"><p>Contact</p></td>
|
34
34
|
<td>
|
35
35
|
<p><a href="mailto:kostas.karasavvas@nbic.nl">kostas.karasavvas@nbic.nl</a></p>
|
@@ -48,12 +48,13 @@ href="http://www.opensource.org/licenses/mit-license">www.opensource.org/license
|
|
48
48
|
|
49
49
|
<h2>Features/Problems</h2>
|
50
50
|
|
51
|
-
<p>Only a subset of myExperiment workflow data can be currently
|
51
|
+
<p>Only a subset of myExperiment workflow and user data can be currently
|
52
|
+
accessed.</p>
|
52
53
|
|
53
54
|
<h2>Usage</h2>
|
54
55
|
|
55
56
|
<p>There is an example script inside the <tt>bin</tt> directory that
|
56
|
-
demonstrates how you can use the library.</p>
|
57
|
+
demonstrates how you can use the library: $ get_workflow_data.rb.</p>
|
57
58
|
|
58
59
|
<h2>Installation</h2>
|
59
60
|
|
@@ -87,26 +88,44 @@ demonstrates how you can use the library.</p>
|
|
87
88
|
|
88
89
|
<li class="module"><a href="MyExperimentREST.html">MyExperimentREST</a></li>
|
89
90
|
|
90
|
-
<li class="class"><a href="MyExperimentREST/
|
91
|
+
<li class="class"><a href="MyExperimentREST/MyExperimentIOData.html">MyExperimentREST::MyExperimentIOData</a></li>
|
91
92
|
|
92
|
-
<li class="class"><a href="MyExperimentREST/
|
93
|
+
<li class="class"><a href="MyExperimentREST/MyExperimentUser.html">MyExperimentREST::MyExperimentUser</a></li>
|
93
94
|
|
94
|
-
<li class="class"><a href="MyExperimentREST/
|
95
|
+
<li class="class"><a href="MyExperimentREST/MyExperimentWorkflow.html">MyExperimentREST::MyExperimentWorkflow</a></li>
|
95
96
|
|
96
|
-
<li class="
|
97
|
+
<li class="module"><a href="MyExperimentREST/Urls.html">MyExperimentREST::Urls</a></li>
|
98
|
+
|
99
|
+
<li class="class"><a href="MyExperimentREST/User.html">MyExperimentREST::User</a></li>
|
100
|
+
|
101
|
+
<li class="class"><a href="MyExperimentREST/Workflow.html">MyExperimentREST::Workflow</a></li>
|
97
102
|
|
98
103
|
</ul>
|
99
104
|
|
100
105
|
<h2 id="methods">Methods</h2>
|
101
106
|
<ul>
|
102
107
|
|
103
|
-
<li><a href="MyExperimentREST/
|
108
|
+
<li><a href="MyExperimentREST/User.html#method-c-from_id">::from_id — MyExperimentREST::User</a></li>
|
109
|
+
|
110
|
+
<li><a href="MyExperimentREST/Workflow.html#method-c-from_id_and_version">::from_id_and_version — MyExperimentREST::Workflow</a></li>
|
111
|
+
|
112
|
+
<li><a href="MyExperimentREST/User.html#method-c-from_uri">::from_uri — MyExperimentREST::User</a></li>
|
113
|
+
|
114
|
+
<li><a href="MyExperimentREST/Workflow.html#method-c-from_uri">::from_uri — MyExperimentREST::Workflow</a></li>
|
115
|
+
|
116
|
+
<li><a href="MyExperimentREST/MyExperimentIOData.html#method-c-from_xml">::from_xml — MyExperimentREST::MyExperimentIOData</a></li>
|
117
|
+
|
118
|
+
<li><a href="MyExperimentREST.html#method-c-get_myexperiment_data">::get_myexperiment_data — MyExperimentREST</a></li>
|
119
|
+
|
120
|
+
<li><a href="MyExperimentREST/MyExperimentUser.html#method-c-new">::new — MyExperimentREST::MyExperimentUser</a></li>
|
121
|
+
|
122
|
+
<li><a href="MyExperimentREST/MyExperimentWorkflow.html#method-c-new">::new — MyExperimentREST::MyExperimentWorkflow</a></li>
|
104
123
|
|
105
|
-
<li><a href="MyExperimentREST/
|
124
|
+
<li><a href="MyExperimentREST/MyExperimentIOData.html#method-c-new">::new — MyExperimentREST::MyExperimentIOData</a></li>
|
106
125
|
|
107
|
-
<li><a href="MyExperimentREST/
|
126
|
+
<li><a href="MyExperimentREST/MyExperimentUser.html#method-c-parse">::parse — MyExperimentREST::MyExperimentUser</a></li>
|
108
127
|
|
109
|
-
<li><a href="MyExperimentREST/
|
128
|
+
<li><a href="MyExperimentREST/MyExperimentWorkflow.html#method-c-parse">::parse — MyExperimentREST::MyExperimentWorkflow</a></li>
|
110
129
|
|
111
130
|
</ul>
|
112
131
|
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
3
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
4
|
+
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
6
|
+
<head>
|
7
|
+
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
8
|
+
|
9
|
+
<title>File: constants.rb [myexperiment-rest Docs]</title>
|
10
|
+
|
11
|
+
<link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet" />
|
12
|
+
|
13
|
+
<script src="../../js/jquery.js" type="text/javascript"
|
14
|
+
charset="utf-8"></script>
|
15
|
+
<script src="../../js/thickbox-compressed.js" type="text/javascript"
|
16
|
+
charset="utf-8"></script>
|
17
|
+
<script src="../../js/quicksearch.js" type="text/javascript"
|
18
|
+
charset="utf-8"></script>
|
19
|
+
<script src="../../js/darkfish.js" type="text/javascript"
|
20
|
+
charset="utf-8"></script>
|
21
|
+
</head>
|
22
|
+
|
23
|
+
<body class="file file-popup">
|
24
|
+
<div id="metadata">
|
25
|
+
<dl>
|
26
|
+
<dt class="modified-date">Last Modified</dt>
|
27
|
+
<dd class="modified-date">Wed Sep 28 10:04:55 +0200 2011</dd>
|
28
|
+
|
29
|
+
|
30
|
+
<dt class="requires">Requires</dt>
|
31
|
+
<dd class="requires">
|
32
|
+
<ul>
|
33
|
+
|
34
|
+
</ul>
|
35
|
+
</dd>
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
</dl>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<div id="documentation">
|
43
|
+
|
44
|
+
<div class="description">
|
45
|
+
<h2>Description</h2>
|
46
|
+
|
47
|
+
</div>
|
48
|
+
|
49
|
+
</div>
|
50
|
+
</body>
|
51
|
+
</html>
|
52
|
+
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<head>
|
7
7
|
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
8
8
|
|
9
|
-
<title>File:
|
9
|
+
<title>File: user.rb [myexperiment-rest Docs]</title>
|
10
10
|
|
11
11
|
<link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet" />
|
12
12
|
|
@@ -24,19 +24,13 @@
|
|
24
24
|
<div id="metadata">
|
25
25
|
<dl>
|
26
26
|
<dt class="modified-date">Last Modified</dt>
|
27
|
-
<dd class="modified-date">
|
27
|
+
<dd class="modified-date">Wed Sep 28 12:11:32 +0200 2011</dd>
|
28
28
|
|
29
29
|
|
30
30
|
<dt class="requires">Requires</dt>
|
31
31
|
<dd class="requires">
|
32
32
|
<ul>
|
33
33
|
|
34
|
-
<li>rubygems</li>
|
35
|
-
|
36
|
-
<li>rest_client</li>
|
37
|
-
|
38
|
-
<li>open-uri</li>
|
39
|
-
|
40
34
|
<li>libxml</li>
|
41
35
|
|
42
36
|
</ul>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
3
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
4
|
+
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
6
|
+
<head>
|
7
|
+
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
8
|
+
|
9
|
+
<title>File: workflow.rb [myexperiment-rest Docs]</title>
|
10
|
+
|
11
|
+
<link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet" />
|
12
|
+
|
13
|
+
<script src="../../js/jquery.js" type="text/javascript"
|
14
|
+
charset="utf-8"></script>
|
15
|
+
<script src="../../js/thickbox-compressed.js" type="text/javascript"
|
16
|
+
charset="utf-8"></script>
|
17
|
+
<script src="../../js/quicksearch.js" type="text/javascript"
|
18
|
+
charset="utf-8"></script>
|
19
|
+
<script src="../../js/darkfish.js" type="text/javascript"
|
20
|
+
charset="utf-8"></script>
|
21
|
+
</head>
|
22
|
+
|
23
|
+
<body class="file file-popup">
|
24
|
+
<div id="metadata">
|
25
|
+
<dl>
|
26
|
+
<dt class="modified-date">Last Modified</dt>
|
27
|
+
<dd class="modified-date">Wed Sep 28 12:32:43 +0200 2011</dd>
|
28
|
+
|
29
|
+
|
30
|
+
<dt class="requires">Requires</dt>
|
31
|
+
<dd class="requires">
|
32
|
+
<ul>
|
33
|
+
|
34
|
+
<li>libxml</li>
|
35
|
+
|
36
|
+
</ul>
|
37
|
+
</dd>
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
</dl>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div id="documentation">
|
45
|
+
|
46
|
+
<div class="description">
|
47
|
+
<h2>Description</h2>
|
48
|
+
|
49
|
+
</div>
|
50
|
+
|
51
|
+
</div>
|
52
|
+
</body>
|
53
|
+
</html>
|
54
|
+
|
@@ -24,14 +24,22 @@
|
|
24
24
|
<div id="metadata">
|
25
25
|
<dl>
|
26
26
|
<dt class="modified-date">Last Modified</dt>
|
27
|
-
<dd class="modified-date">
|
27
|
+
<dd class="modified-date">Wed Sep 28 12:07:50 +0200 2011</dd>
|
28
28
|
|
29
29
|
|
30
30
|
<dt class="requires">Requires</dt>
|
31
31
|
<dd class="requires">
|
32
32
|
<ul>
|
33
33
|
|
34
|
-
<li>
|
34
|
+
<li>rubygems</li>
|
35
|
+
|
36
|
+
<li>rest_client</li>
|
37
|
+
|
38
|
+
<li>myexperiment-rest/constants</li>
|
39
|
+
|
40
|
+
<li>myexperiment-rest/workflow</li>
|
41
|
+
|
42
|
+
<li>myexperiment-rest/user</li>
|
35
43
|
|
36
44
|
</ul>
|
37
45
|
</dd>
|
data/lib/myexperiment-rest.rb
CHANGED
@@ -1,5 +1,46 @@
|
|
1
|
-
require '
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rest_client'
|
3
|
+
|
4
|
+
require 'myexperiment-rest/constants'
|
5
|
+
require 'myexperiment-rest/workflow'
|
6
|
+
require 'myexperiment-rest/user'
|
7
|
+
|
2
8
|
|
3
9
|
module MyExperimentREST
|
4
10
|
|
11
|
+
|
12
|
+
# Get information from myExperiment using the REST API. Resources supported currently
|
13
|
+
# are +WORKFLOW_URL+"+ and +USER_URL+.
|
14
|
+
def self.get_myexperiment_data(resource_url, params)
|
15
|
+
case resource_url
|
16
|
+
|
17
|
+
when Urls::WORKFLOW_URL
|
18
|
+
begin
|
19
|
+
# Get workflow resource information -- if version is empty it returns the current version
|
20
|
+
response = RestClient.get("#{Urls::MYEXPERIMENT_URL}/#{Urls::WORKFLOW_URL}",
|
21
|
+
{:params => {'id' => "#{params[:id]}",
|
22
|
+
'version' => "#{params[:version]}",
|
23
|
+
'elements' => 'title,description,content-uri,components,uploader'} } )
|
24
|
+
response
|
25
|
+
rescue Exception => e
|
26
|
+
raise "REST call to acquire workflow resource failed!\n" + e
|
27
|
+
end
|
28
|
+
|
29
|
+
when Urls::USER_URL
|
30
|
+
begin
|
31
|
+
# Get user resource information
|
32
|
+
response = RestClient.get("#{Urls::MYEXPERIMENT_URL}/#{Urls::USER_URL}",
|
33
|
+
{:params => {'id' => "#{params[:id]}" } } )
|
34
|
+
response
|
35
|
+
rescue Exception => e
|
36
|
+
raise "REST call to acquire user resource failed!\n" + e
|
37
|
+
end
|
38
|
+
|
39
|
+
else
|
40
|
+
raise "This is not a supported resource type!\n"
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
|
5
46
|
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'libxml'
|
2
|
+
|
3
|
+
module MyExperimentREST
|
4
|
+
|
5
|
+
#
|
6
|
+
# Connects to myExperiment REST API and creates a _MyExperimentUser_ object.
|
7
|
+
#
|
8
|
+
class User
|
9
|
+
|
10
|
+
# Returns a _MyExperimentUser_ object given a URI of the user in the repository as a String.
|
11
|
+
def self.from_uri(uri)
|
12
|
+
|
13
|
+
user_id = ''
|
14
|
+
|
15
|
+
# Get user id - will match both user/74 and users.xml?id=74
|
16
|
+
uri_id = uri.match(/user.*[\/?](id=)?(\d+)/)
|
17
|
+
if uri_id != nil
|
18
|
+
user_id = uri_id[2]
|
19
|
+
else
|
20
|
+
raise "Could not match user id."
|
21
|
+
end
|
22
|
+
|
23
|
+
# Get user resource information
|
24
|
+
xml = MyExperimentREST.get_myexperiment_data(Urls::USER_URL, :id => user_id)
|
25
|
+
|
26
|
+
MyExperimentUser.parse(xml)
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
# Returns a _MyExperimentUser_ object given a myExperiment id for that user.
|
31
|
+
def self.from_id(user_id)
|
32
|
+
|
33
|
+
# Get user resource information
|
34
|
+
xml = MyExperimentREST.get_myexperiment_data(Urls::USER_URL, :id => user_id)
|
35
|
+
|
36
|
+
MyExperimentUser.parse(xml)
|
37
|
+
end
|
38
|
+
|
39
|
+
end # class User
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
#
|
44
|
+
# Contains information about a user. All basic information is available but not
|
45
|
+
# some of the more advanced like all user's friends or workflow's.
|
46
|
+
#
|
47
|
+
class MyExperimentUser
|
48
|
+
attr_reader(:id, :created_at, :name, :description, :email, :avatar_uri, :city, :country, :website)
|
49
|
+
|
50
|
+
def initialize(attributes)
|
51
|
+
@id = attributes[:id]
|
52
|
+
@created_at = attributes[:created_at]
|
53
|
+
@name = attributes[:name]
|
54
|
+
@description = attributes[:description]
|
55
|
+
@email = attributes[:email]
|
56
|
+
@avatar_uri = attributes[:avatar_uri]
|
57
|
+
@city = attributes[:city]
|
58
|
+
@country = attributes[:country]
|
59
|
+
@website = attributes[:website]
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
# Acquire data from XML response and instantiate a _MyExperimentWorkflow_ object
|
64
|
+
def self.parse(xml)
|
65
|
+
|
66
|
+
doc = LibXML::XML::Document.string(xml)
|
67
|
+
|
68
|
+
new(:id => doc.find_first("/user/id").content,
|
69
|
+
:created_at => doc.find_first("/user/created-at").content,
|
70
|
+
:name => doc.find_first("/user/name").content,
|
71
|
+
:description => doc.find_first("/user/description").content,
|
72
|
+
:email => doc.find_first("/user/email").content,
|
73
|
+
:avatar_uri => doc.find_first("/user/avatar").attributes[:uri],
|
74
|
+
:city => doc.find_first("/user/city").content,
|
75
|
+
:country => doc.find_first("/user/country").content,
|
76
|
+
:website => doc.find_first("/user/website").content)
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
end # class MyexperimentUser
|
81
|
+
|
82
|
+
|
83
|
+
end # module MyExperimentREST
|