myexperiment-rest 0.2.8 → 0.3.0
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/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
|