matterhorn_whymper 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/matterhorn/endpoint/ingest.rb +118 -66
- data/lib/matterhorn/endpoint/workflow.rb +71 -43
- data/lib/matterhorn/endpoint.rb +24 -9
- data/lib/matterhorn/error.rb +24 -5
- data/lib/matterhorn/http_client.rb +42 -39
- data/lib/matterhorn/media_package.rb +19 -9
- data/lib/matterhorn/smil.rb +97 -52
- data/lib/matterhorn/workflow_instance.rb +19 -27
- data/lib/matterhorn_whymper/version.rb +10 -2
- data/lib/matterhorn_whymper.rb +21 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzEwYzM5Nzg5YmFkZmU2MjNlZDZhMzQ5NDg3ZTRlNjc1MWU3YzdhZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZDNhNmEyZTE5YWYzYTY0ZGQwOGNhNDY2YzMyYjEzNzc1NmFlYTU0ZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NjUyZjBkMTI1MzI2YjI0YjBmOGE0Mjc3NjZmMDFjN2EzNzQxMGMwNWI2NGJj
|
10
|
+
MzJkYjkyZTBmMzY1NDliNjY0YWFiMmU0YTBjZWNhYzc5ZmM2ZTBlN2I4OWUy
|
11
|
+
MjMyOTk5YzZkODdjYmRjZGUxMjNhMDM5NTczN2JkOWE4MzhjNTM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YWU5ZTIzMGJlY2NjZDU0ODEyNTc3MWExMzlkYTg4YTNiZjA2NWE5NGRhNWU4
|
14
|
+
Y2E5MzRlZWVjMDQxZTM0M2UyYmQ2OTIwZmRjOGUyMDY3NWI3OTM2NzBiOTRm
|
15
|
+
YTYyZmZjYWE5ZTI2ZmRiYTBjNjlhYWU5YzQ1MjczNzFhY2ZmNzI=
|
@@ -1,99 +1,155 @@
|
|
1
|
-
|
1
|
+
# ================================================================= Matterhorn::Endpoint::Ingest ===
|
2
2
|
|
3
|
-
|
3
|
+
class Matterhorn::Endpoint::Ingest < Matterhorn::Endpoint
|
4
4
|
|
5
5
|
|
6
|
-
#
|
6
|
+
# -------------------------------------------------------------------------- endpoint methodes ---
|
7
7
|
|
8
8
|
def addAttachment(file, flavor)
|
9
|
-
|
10
|
-
|
9
|
+
unless @media_pkg_remote then raise(Matterhorn::Error, "No media package is available!"); end
|
10
|
+
@media_pkg_local.add_attachment(file, flavor) if @media_pkg_local
|
11
|
+
begin
|
12
|
+
@media_pkg_remote = http_client.post(
|
13
|
+
"ingest/addAttachment",
|
14
|
+
{ 'flavor' => flavor,
|
15
|
+
'mediaPackage' => @media_pkg_remote,
|
16
|
+
'BODY' => file
|
17
|
+
}
|
18
|
+
).body
|
19
|
+
rescue Matterhorn::HttpClientError => ex
|
20
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::addAttachment | " +
|
21
|
+
"Media package not valid! / media package:\n#{@media_pkg_remote}" }
|
22
|
+
raise ex
|
23
|
+
rescue Matterhorn::HttpServerError => ex
|
24
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::addAttachment | " +
|
25
|
+
"Internal server error on Matterhorn!" }
|
26
|
+
raise ex
|
11
27
|
end
|
12
|
-
@
|
13
|
-
@media_pkg_remote = http_client.post(
|
14
|
-
"ingest/addAttachment",
|
15
|
-
{ 'flavor' => flavor,
|
16
|
-
'mediaPackage' => @media_pkg_remote,
|
17
|
-
'BODY' => file
|
18
|
-
}
|
19
|
-
).body
|
28
|
+
@media_pkg_remote
|
20
29
|
end
|
21
30
|
|
22
31
|
|
23
32
|
def addCatalog(file, flavor)
|
24
|
-
|
25
|
-
|
33
|
+
unless @media_pkg_remote then raise(Matterhorn::Error, "No media package is available!"); end
|
34
|
+
@media_pkg_local.add_catalog(file, flavor) if @media_pkg_local
|
35
|
+
begin
|
36
|
+
@media_pkg_remote = http_client.post(
|
37
|
+
"ingest/addCatalog",
|
38
|
+
{ 'flavor' => flavor,
|
39
|
+
'mediaPackage' => @media_pkg_remote,
|
40
|
+
'BODY' => file
|
41
|
+
}
|
42
|
+
).body
|
43
|
+
rescue Matterhorn::HttpClientError => ex
|
44
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::addCatalog | " +
|
45
|
+
"Media package not valid! / media package:\n#{@media_pkg_remote}" }
|
46
|
+
raise ex
|
47
|
+
rescue Matterhorn::HttpServerError => ex
|
48
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::addCatalog | " +
|
49
|
+
"Internal server error on Matterhorn!" }
|
50
|
+
raise ex
|
26
51
|
end
|
27
|
-
@
|
28
|
-
@media_pkg_remote = http_client.post(
|
29
|
-
"ingest/addCatalog",
|
30
|
-
{ 'flavor' => flavor,
|
31
|
-
'mediaPackage' => @media_pkg_remote,
|
32
|
-
'BODY' => file
|
33
|
-
}
|
34
|
-
).body
|
52
|
+
@media_pkg_remote
|
35
53
|
end
|
36
54
|
|
37
55
|
|
38
56
|
def addDCCatalog(dublin_core)
|
39
|
-
|
40
|
-
|
57
|
+
unless @media_pkg_remote then raise(Matterhorn::Error, "No media package is available!"); end
|
58
|
+
@media_pkg_local.add_dc_catalog(dublin_core) if @media_pkg_local
|
59
|
+
begin
|
60
|
+
@media_pkg_remote = http_client.post(
|
61
|
+
"ingest/addDCCatalog",
|
62
|
+
{ 'flavor' => 'dublincore/episode',
|
63
|
+
'mediaPackage' => @media_pkg_remote,
|
64
|
+
'dublinCore' => dublin_core
|
65
|
+
}
|
66
|
+
).body
|
67
|
+
rescue Matterhorn::HttpClientError => ex
|
68
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::addDCCatalog | " +
|
69
|
+
"Media package not valid! / media package:\n#{@media_pkg_remote}" }
|
70
|
+
raise ex
|
71
|
+
rescue Matterhorn::HttpServerError => ex
|
72
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::addDCCatalog | " +
|
73
|
+
"Internal server error on Matterhorn!" }
|
74
|
+
raise ex
|
41
75
|
end
|
42
|
-
@
|
43
|
-
@media_pkg_remote = http_client.post(
|
44
|
-
"ingest/addDCCatalog",
|
45
|
-
{ 'flavor' => 'dublincore/episode',
|
46
|
-
'mediaPackage' => @media_pkg_remote,
|
47
|
-
'dublinCore' => dublin_core
|
48
|
-
}
|
49
|
-
).body
|
76
|
+
@media_pkg_remote
|
50
77
|
end
|
51
78
|
|
52
79
|
|
53
80
|
def addTrack(file, flavor)
|
54
|
-
|
55
|
-
|
81
|
+
unless @media_pkg_remote then raise(Matterhorn::Error, "No media package is available!"); end
|
82
|
+
@media_pkg_local.add_track(file, flavor) if @media_pkg_local
|
83
|
+
begin
|
84
|
+
@media_pkg_remote = http_client.post(
|
85
|
+
"ingest/addTrack",
|
86
|
+
{ 'flavor' => flavor,
|
87
|
+
'mediaPackage' => @media_pkg_remote,
|
88
|
+
'BODY' => file
|
89
|
+
}
|
90
|
+
).body
|
91
|
+
rescue Matterhorn::HttpClientError => ex
|
92
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::addTrack | " +
|
93
|
+
"Media package not valid! / media package:\n#{@media_pkg_remote}" }
|
94
|
+
raise ex
|
95
|
+
rescue Matterhorn::HttpServerError => ex
|
96
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::addTrack | " +
|
97
|
+
"Internal server error on Matterhorn!" }
|
98
|
+
raise ex
|
56
99
|
end
|
57
|
-
@
|
58
|
-
@media_pkg_remote = http_client.post(
|
59
|
-
"ingest/addTrack",
|
60
|
-
{ 'flavor' => flavor,
|
61
|
-
'mediaPackage' => @media_pkg_remote,
|
62
|
-
'BODY' => file
|
63
|
-
}
|
64
|
-
).body
|
100
|
+
@media_pkg_remote
|
65
101
|
end
|
66
102
|
|
67
103
|
|
68
|
-
|
69
|
-
|
70
|
-
|
104
|
+
# Create a media package on the matterhorn server.
|
105
|
+
# If the source_path to the source folder of uploaded items for that media package is given,
|
106
|
+
# then a local media description file 'manifest.xml' will be automaticaly saved in that folder.
|
107
|
+
#
|
108
|
+
def createMediaPackage(source_path = nil)
|
109
|
+
if @media_pkg_remote then raise(Matterhorn::Error, "A media package is allready created!"); end
|
110
|
+
@media_pkg_local = source_path ? Matterhorn::MediaPackage.new(source_path) : nil
|
111
|
+
begin
|
112
|
+
@media_pkg_remote = http_client.get(
|
113
|
+
"ingest/createMediaPackage"
|
114
|
+
).body
|
115
|
+
rescue Matterhorn::HttpServerError => ex
|
116
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::createMediaPackage | " +
|
117
|
+
"Internal server error on Matterhorn!" }
|
118
|
+
raise ex
|
71
119
|
end
|
72
|
-
@
|
73
|
-
@media_pkg_remote = http_client.get(
|
74
|
-
"ingest/createMediaPackage"
|
75
|
-
).body
|
120
|
+
@media_pkg_remote
|
76
121
|
end
|
77
122
|
|
78
123
|
|
79
124
|
def ingest(wdID = 'full', options = {})
|
80
|
-
|
81
|
-
|
82
|
-
end
|
83
|
-
@media_pkg_local.save if !@media_pkg_local.nil?
|
125
|
+
unless @media_pkg_remote then raise(Matterhorn::Error, "No media package is available!"); end
|
126
|
+
@media_pkg_local.save if @media_pkg_local
|
84
127
|
options['mediaPackage'] = @media_pkg_remote
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
128
|
+
begin
|
129
|
+
@workflow_inst = http_client.post(
|
130
|
+
"ingest/ingest/#{wdID}",
|
131
|
+
options
|
132
|
+
).body
|
133
|
+
rescue Matterhorn::HttpClientError => ex
|
134
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::ingest | " +
|
135
|
+
"Media package not valid! / media package:\n#{@media_pkg_remote}" }
|
136
|
+
raise ex
|
137
|
+
rescue Matterhorn::HttpServerError => ex
|
138
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::ingest | " +
|
139
|
+
"Internal server error on Matterhorn!" }
|
140
|
+
raise ex
|
141
|
+
end
|
89
142
|
workflow_instance
|
90
143
|
end
|
91
144
|
|
92
145
|
|
146
|
+
# ---------------------------------------------------------------------------- helper methodes ---
|
147
|
+
|
93
148
|
def media_package(kind = 'local')
|
94
|
-
|
149
|
+
unless @media_pkg_remote then raise(Matterhorn::Error, "No media package is available!"); end
|
150
|
+
if kind == 'local' && @media_pkg_local
|
95
151
|
return @media_pkg_local
|
96
|
-
elsif
|
152
|
+
elsif @media_pkg_remote
|
97
153
|
Matterhorn::MediaPackage.new(@media_pkg_remote)
|
98
154
|
else
|
99
155
|
nil
|
@@ -113,12 +169,8 @@ DUBLIN_CORE
|
|
113
169
|
|
114
170
|
|
115
171
|
def workflow_instance
|
116
|
-
|
117
|
-
Matterhorn::WorkflowInstance.new(@workflow_inst)
|
118
|
-
else
|
119
|
-
nil
|
120
|
-
end
|
172
|
+
@workflow_inst ? Matterhorn::WorkflowInstance.new(@workflow_inst) : nil
|
121
173
|
end
|
122
174
|
|
123
175
|
|
124
|
-
end
|
176
|
+
end # --------------------------------------------------------- end Matterhorn::Endpoint::Ingest ---
|
@@ -1,67 +1,95 @@
|
|
1
|
-
|
1
|
+
# =============================================================== Matterhorn::Endpoint::Workflow ===
|
2
2
|
|
3
|
-
|
3
|
+
class Matterhorn::Endpoint::Workflow < Matterhorn::Endpoint
|
4
4
|
|
5
5
|
|
6
|
-
#
|
6
|
+
# -------------------------------------------------------------------------- endpoint methodes ---
|
7
7
|
|
8
8
|
def instance(wi_id)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
begin
|
10
|
+
wi = http_client.get(
|
11
|
+
"workflow/instance/#{wi_id}.xml"
|
12
|
+
).body
|
13
|
+
rescue Matterhorn::HttpClientError, Matterhorn::HttpServerError => ex
|
14
|
+
if ex.code == 404
|
15
|
+
wi = nil
|
16
|
+
MatterhornWhymper.logger.warn { "#{self.class.name}::instance | " +
|
17
|
+
"WorkflowInstance[#{wi_id}]: No workflow instance with that identifier exists." }
|
18
|
+
else
|
19
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::instance | " +
|
20
|
+
"WorkflowInstance[#{wi_id}]: Internal server error on Matterhorn!" }
|
21
|
+
|
22
|
+
raise ex
|
23
|
+
end
|
24
|
+
end
|
25
|
+
wi ? Matterhorn::WorkflowInstance.new(wi) : nil
|
13
26
|
end
|
14
27
|
|
15
28
|
|
16
|
-
def remove(wi_id
|
29
|
+
def remove(wi_id)
|
17
30
|
begin
|
18
|
-
|
31
|
+
http_client.delete(
|
19
32
|
"workflow/remove/#{wi_id}"
|
20
|
-
)
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
33
|
+
)
|
34
|
+
wi_removed = true
|
35
|
+
rescue Matterhorn::HttpClientError, Matterhorn::HttpServerError => ex
|
36
|
+
if ex.code == 404
|
37
|
+
wi_removed = false
|
38
|
+
MatterhornWhymper.logger.warn { "#{self.class.name}::remove | " +
|
39
|
+
"WorkflowInstance[#{wi_id}]: No workflow instance with that identifier exists." }
|
40
|
+
else
|
41
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::remove | " +
|
42
|
+
"WorkflowInstance[#{wi_id}]: Internal server error on Matterhorn!" }
|
43
|
+
|
44
|
+
raise ex
|
45
|
+
end
|
27
46
|
end
|
47
|
+
wi_removed
|
28
48
|
end
|
29
49
|
|
30
50
|
|
31
|
-
def resume(wi_id
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
51
|
+
def resume(wi_id)
|
52
|
+
begin
|
53
|
+
wi = http_client.post(
|
54
|
+
"workflow/resume",
|
55
|
+
{ 'id' => wi_id }
|
56
|
+
).body
|
57
|
+
rescue Matterhorn::HttpClientError, Matterhorn::HttpServerError => ex
|
58
|
+
if ex.code == 404
|
59
|
+
wi = nil
|
60
|
+
MatterhornWhymper.logger.warn { "#{self.class.name}::resume | " +
|
61
|
+
"WorkflowInstance[#{wi_id}]: No suspended workflow instance with that identifier exists." }
|
62
|
+
else
|
63
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::resume | " +
|
64
|
+
"WorkflowInstance[#{wi_id}]: Internal server error on Matterhorn!" }
|
65
|
+
|
66
|
+
raise ex
|
67
|
+
end
|
68
|
+
end
|
69
|
+
wi ? Matterhorn::WorkflowInstance.new(wi) : nil
|
38
70
|
end
|
39
71
|
|
40
72
|
|
41
|
-
def stop(wi_id
|
73
|
+
def stop(wi_id)
|
42
74
|
begin
|
43
|
-
|
44
|
-
@workflow_inst = http_client.post(
|
75
|
+
wi = http_client.post(
|
45
76
|
"workflow/stop",
|
46
|
-
|
77
|
+
{ 'id' => wi_id }
|
47
78
|
).body
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
end
|
79
|
+
rescue Matterhorn::HttpClientError, Matterhorn::HttpServerError => ex
|
80
|
+
if ex.code == 404
|
81
|
+
wi = nil
|
82
|
+
MatterhornWhymper.logger.warn { "#{self.class.name}::stop | " +
|
83
|
+
"WorkflowInstance[#{wi_id}]: No running workflow instance with that identifier exists." }
|
84
|
+
else
|
85
|
+
MatterhornWhymper.logger.error { "#{self.class.name}::stop | " +
|
86
|
+
"WorkflowInstance[#{wi_id}]: Internal server error on Matterhorn!" }
|
57
87
|
|
58
|
-
|
59
|
-
|
60
|
-
if !@workflow_inst.nil?
|
61
|
-
Matterhorn::WorkflowInstance.new(@workflow_inst)
|
62
|
-
else
|
63
|
-
nil
|
88
|
+
raise ex
|
89
|
+
end
|
64
90
|
end
|
91
|
+
wi ? Matterhorn::WorkflowInstance.new(wi) : nil
|
65
92
|
end
|
93
|
+
|
66
94
|
|
67
|
-
end
|
95
|
+
end # ------------------------------------------------------- end Matterhorn::Endpoint::Workflow ---
|
data/lib/matterhorn/endpoint.rb
CHANGED
@@ -1,25 +1,37 @@
|
|
1
|
+
# =================================================================================== Matterhorn ===
|
2
|
+
|
1
3
|
module Matterhorn
|
2
4
|
|
5
|
+
|
6
|
+
# ======================================================================= Matterhorn::Endpoint ===
|
7
|
+
|
3
8
|
class Endpoint
|
4
9
|
|
5
|
-
#
|
10
|
+
# ------------------------------------------------------------------------------- attributes ---
|
6
11
|
|
7
12
|
attr_reader :http_client
|
8
13
|
|
9
14
|
|
10
|
-
#
|
15
|
+
# --------------------------------------------------------------------------- initialization ---
|
11
16
|
|
12
17
|
def self.open(endpoint)
|
13
18
|
if endpoint.respond_to? 'to_s'
|
14
19
|
endpoint = endpoint.to_s.capitalize
|
15
20
|
else
|
16
|
-
|
21
|
+
raise(Matterhorn::Error, "Matterhorn::Endpoint::open | " +
|
22
|
+
"#{endpoint.inspect} does not respond to 'to_s'")
|
17
23
|
end
|
18
24
|
endpoint = Object.const_get('Matterhorn').const_get('Endpoint').const_get(endpoint).new
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
25
|
+
if endpoint.nil? || !endpoint.kind_of?(Matterhorn::Endpoint)
|
26
|
+
raise(Matterhorn::Error, "Matterhorn::Endpoint::open | " +
|
27
|
+
"#{endpoint ? endpoint.class.name : 'nil'} is not a sub class " +
|
28
|
+
"of 'Matterhorn::Endpoint'!")
|
29
|
+
end
|
30
|
+
begin
|
31
|
+
yield endpoint
|
32
|
+
ensure
|
33
|
+
endpoint.close
|
34
|
+
end
|
23
35
|
end
|
24
36
|
|
25
37
|
|
@@ -30,11 +42,14 @@ module Matterhorn
|
|
30
42
|
end
|
31
43
|
|
32
44
|
|
45
|
+
# --------------------------------------------------------------------------------- methodes ---
|
46
|
+
|
33
47
|
def close
|
34
48
|
http_client.close
|
35
49
|
end
|
36
50
|
|
37
51
|
|
38
|
-
end
|
52
|
+
end # --------------------------------------------------------------- end Matterhorn::Endpoint ---
|
53
|
+
|
39
54
|
|
40
|
-
end
|
55
|
+
end # --------------------------------------------------------------------------- end Matterhorn ---
|
data/lib/matterhorn/error.rb
CHANGED
@@ -1,15 +1,34 @@
|
|
1
|
+
# =================================================================================== Matterhorn ===
|
2
|
+
|
1
3
|
module Matterhorn
|
2
4
|
|
3
|
-
# --- Matterhorn Exceptions ------------------------------------------------------------------------
|
4
5
|
|
5
|
-
|
6
|
+
# ====================================================================== several error classes ===
|
7
|
+
|
8
|
+
class Error < StandardError
|
6
9
|
end
|
7
10
|
|
8
|
-
|
11
|
+
|
12
|
+
class HttpGeneralError < Matterhorn::Error
|
13
|
+
|
14
|
+
attr_reader :code, :request, :response
|
15
|
+
|
16
|
+
def initialize(message, request, response)
|
17
|
+
@request = request
|
18
|
+
@response = response
|
19
|
+
@code = response.code.to_i
|
20
|
+
super(message)
|
21
|
+
end
|
22
|
+
|
9
23
|
end
|
24
|
+
|
25
|
+
|
26
|
+
class HttpClientError < Matterhorn::HttpGeneralError
|
27
|
+
end
|
28
|
+
|
10
29
|
|
11
|
-
class
|
30
|
+
class HttpServerError < Matterhorn::HttpGeneralError
|
12
31
|
end
|
13
32
|
|
14
33
|
|
15
|
-
end
|
34
|
+
end # --------------------------------------------------------------------------- end Matterhorn ---
|
@@ -1,15 +1,22 @@
|
|
1
1
|
require 'net/http/post/multipart'
|
2
2
|
require 'net/http/digest_auth'
|
3
3
|
|
4
|
+
|
5
|
+
# =================================================================================== Matterhorn ===
|
6
|
+
|
4
7
|
module Matterhorn
|
5
8
|
|
9
|
+
|
10
|
+
# ===================================================================== Matterhorn::HttpClient ===
|
11
|
+
|
6
12
|
class HttpClient
|
7
13
|
|
8
|
-
#
|
14
|
+
# ------------------------------------------------------------------------------- attributes ---
|
9
15
|
|
10
16
|
attr_reader :base_uri, :host, :port, :ssl
|
11
17
|
|
12
|
-
|
18
|
+
|
19
|
+
# --------------------------------------------------------------------------- initialization ---
|
13
20
|
|
14
21
|
def initialize(base_uri)
|
15
22
|
@base_uri = URI.parse(base_uri)
|
@@ -18,11 +25,14 @@ module Matterhorn
|
|
18
25
|
@ssl = @port == 443 ? true : false
|
19
26
|
end
|
20
27
|
|
21
|
-
|
22
|
-
|
28
|
+
|
29
|
+
# ---------------------------------------------------------------------------- http methodes ---
|
30
|
+
|
31
|
+
def get(url)
|
32
|
+
request = Net::HTTP::Get.new(base_uri.request_uri + url)
|
33
|
+
execute_request(request)
|
23
34
|
end
|
24
35
|
|
25
|
-
# --- http methodes ----------------------------------------------------------
|
26
36
|
|
27
37
|
def post(url, params = {}, file = nil, filename = nil, mime_type = nil)
|
28
38
|
if params.has_key?('BODY') || !file.nil?
|
@@ -34,21 +44,18 @@ module Matterhorn
|
|
34
44
|
end
|
35
45
|
|
36
46
|
|
37
|
-
def get(url)
|
38
|
-
request = Net::HTTP::Get.new(base_uri.request_uri + url)
|
39
|
-
execute_request(request)
|
40
|
-
end
|
41
|
-
|
42
|
-
|
43
47
|
def delete(url)
|
44
48
|
request = Net::HTTP::Delete.new(base_uri.request_uri + url)
|
45
49
|
execute_request(request)
|
46
50
|
end
|
47
51
|
|
48
52
|
|
49
|
-
|
50
|
-
|
51
|
-
|
53
|
+
def close
|
54
|
+
@http_socket.finish if !@http_socket.nil? && @http_socket.started?
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
# -------------------------------------------------------------------------- private section ---
|
52
59
|
private
|
53
60
|
|
54
61
|
def http_socket
|
@@ -62,7 +69,6 @@ module Matterhorn
|
|
62
69
|
def singlepart_post(url, params)
|
63
70
|
request = Net::HTTP::Post.new(base_uri.request_uri + url)
|
64
71
|
request.set_form_data(params)
|
65
|
-
MatterhornWhymper.logger.debug { "Matterhorn::Client::singlepart_post: request = #{request.to_yaml}"}
|
66
72
|
request
|
67
73
|
end
|
68
74
|
|
@@ -79,9 +85,9 @@ module Matterhorn
|
|
79
85
|
file = params['BODY']
|
80
86
|
params['BODY'] = nil
|
81
87
|
else
|
82
|
-
raise(Matterhorn::Error, "Matterhorn::
|
88
|
+
raise(Matterhorn::Error, "Matterhorn::HttpClient::multipart_post | " +
|
89
|
+
"Neither a BODY nor a file is present!")
|
83
90
|
end
|
84
|
-
MatterhornWhymper.logger.debug { "Matterhorn::Client::multipart_post: file = #{file.inspect}"}
|
85
91
|
if filename.nil?
|
86
92
|
filename = File.basename(file.path)
|
87
93
|
end
|
@@ -89,7 +95,6 @@ module Matterhorn
|
|
89
95
|
mime_type = MIME::Types.type_for(File.basename(file.path)).first
|
90
96
|
end
|
91
97
|
params['BODY'] = UploadIO.new(file, mime_type, filename)
|
92
|
-
MatterhornWhymper.logger.debug { "Matterhorn::Client::multipart_post: params = #{params.to_yaml}"}
|
93
98
|
Net::HTTP::Post::Multipart.new(base_uri.request_uri + url, params)
|
94
99
|
end
|
95
100
|
|
@@ -111,46 +116,44 @@ module Matterhorn
|
|
111
116
|
when 500..599
|
112
117
|
handle_5xx_error(request, response)
|
113
118
|
else
|
114
|
-
|
119
|
+
handle_general_error(request, response)
|
115
120
|
end
|
116
121
|
response
|
117
122
|
end
|
118
123
|
|
119
124
|
|
120
125
|
def handle_2xx_ok(request, response)
|
121
|
-
|
126
|
+
msg = log_message('handle_2xx_ok', request, response)
|
127
|
+
MatterhornWhymper.logger.debug { msg }
|
122
128
|
end
|
123
129
|
|
124
130
|
def handle_4xx_error(request, response)
|
125
|
-
|
126
|
-
|
131
|
+
msg = log_message('handle_4xx_error', request, response)
|
132
|
+
MatterhornWhymper.logger.debug { msg }
|
133
|
+
raise(Matterhorn::HttpClientError, msg, request, response)
|
127
134
|
end
|
128
135
|
|
129
136
|
def handle_5xx_error(request, response)
|
130
|
-
|
131
|
-
|
137
|
+
msg = log_message('handle_5xx_error', request, response)
|
138
|
+
MatterhornWhymper.logger.debug { msg }
|
139
|
+
raise(Matterhorn::HttpServerError, msg, request, response)
|
132
140
|
end
|
133
141
|
|
134
|
-
def
|
135
|
-
|
136
|
-
|
142
|
+
def handle_general_error(request, response)
|
143
|
+
msg = log_message('handle_general_error', request, response)
|
144
|
+
MatterhornWhymper.logger.debug { msg }
|
145
|
+
raise(Matterhorn::HttpGeneralError, msg, request, response)
|
137
146
|
end
|
138
147
|
|
139
148
|
|
140
|
-
def log_message(request, response)
|
141
|
-
"
|
142
|
-
"
|
149
|
+
def log_message(method, request, response)
|
150
|
+
"#{self.class.name}::#{method} | code = #{response.code}\n" +
|
151
|
+
" request = #{request.method} #{request.path}\n" +
|
152
|
+
" response = #{response.code} #{response.msg}, body:\n#{response.body}\n"
|
143
153
|
end
|
144
154
|
|
145
|
-
def log_request(request)
|
146
|
-
"#{request.method} #{request.path}"
|
147
|
-
end
|
148
|
-
|
149
|
-
def log_response(response)
|
150
|
-
"#{response.code} #{response.msg}, body:\n#{response.body}\n"
|
151
|
-
end
|
152
155
|
|
156
|
+
end # ------------------------------------------------------------- end Matterhorn::HttpClient ---
|
153
157
|
|
154
|
-
end
|
155
158
|
|
156
|
-
end
|
159
|
+
end # --------------------------------------------------------------------------- end Matterhorn ---
|
@@ -1,34 +1,40 @@
|
|
1
1
|
require 'nokogiri'
|
2
2
|
|
3
|
+
|
4
|
+
# =================================================================================== Matterhorn ===
|
5
|
+
|
3
6
|
module Matterhorn
|
4
7
|
|
8
|
+
|
9
|
+
# =================================================================== Matterhorn::MediaPackage ===
|
10
|
+
|
5
11
|
class MediaPackage
|
6
12
|
|
7
|
-
#
|
13
|
+
# ------------------------------------------------------------------------ const definitions ---
|
14
|
+
|
8
15
|
XML_NS_MEDIAPACKAGE = "http://mediapackage.opencastproject.org"
|
9
16
|
|
10
17
|
|
11
|
-
#
|
18
|
+
# --------------------------------------------------------------------------- initialization ---
|
12
19
|
|
13
20
|
def initialize(path, xml = nil)
|
14
|
-
@path = path + (path[-1] == '/' ? '' : '/')
|
21
|
+
@path = path + (path[-1] == '/' ? '' : '/') # guarantee that path ends with a slash
|
15
22
|
if !xml.nil?
|
16
23
|
@document = Nokogiri::XML(xml)
|
17
24
|
else
|
18
25
|
@document = Nokogiri::XML::Builder.new do |xml|
|
19
|
-
xml.mediapackage('xmlns' => XML_NS_MEDIAPACKAGE)
|
26
|
+
xml.mediapackage('xmlns' => XML_NS_MEDIAPACKAGE) do
|
20
27
|
xml.media
|
21
28
|
xml.metadata
|
22
29
|
xml.attachments
|
23
|
-
|
30
|
+
end
|
24
31
|
end
|
25
32
|
.doc
|
26
33
|
end
|
27
|
-
MatterhornWhymper.logger.debug { "Matterhorn::MediaPackage::initialize | doc = #{to_xml}" }
|
28
34
|
end
|
29
35
|
|
30
36
|
|
31
|
-
#
|
37
|
+
# --------------------------------------------------------------------------------- methodes ---
|
32
38
|
|
33
39
|
# <attachments>
|
34
40
|
# <attachment type="switchcastrecorder/metadata">
|
@@ -36,6 +42,7 @@ module Matterhorn
|
|
36
42
|
# <url>metadata.plist</url>
|
37
43
|
# </attachment>
|
38
44
|
# </attachments>
|
45
|
+
#
|
39
46
|
def add_attachment(file, flavor)
|
40
47
|
Nokogiri::XML::Builder.with(@document.at('attachments')) do |xml|
|
41
48
|
xml.attachment(:type => flavor) {
|
@@ -53,6 +60,7 @@ module Matterhorn
|
|
53
60
|
# <url>dublincore.xml</url>
|
54
61
|
# </catalog>
|
55
62
|
# </metadata>
|
63
|
+
#
|
56
64
|
def add_catalog(file, flavor, mimetype = 'text/xml')
|
57
65
|
Nokogiri::XML::Builder.with(@document.at('metadata')) do |xml|
|
58
66
|
xml.catalog(:type => flavor) {
|
@@ -82,6 +90,7 @@ module Matterhorn
|
|
82
90
|
# <url>source1/mux_2013_12-17T14_51_29_738.mov</url>
|
83
91
|
# </track>
|
84
92
|
# </media>
|
93
|
+
#
|
85
94
|
def add_track(file, flavor)
|
86
95
|
Nokogiri::XML::Builder.with(@document.at('media')) do |xml|
|
87
96
|
xml.track(:type => flavor) {
|
@@ -105,6 +114,7 @@ module Matterhorn
|
|
105
114
|
end
|
106
115
|
|
107
116
|
|
108
|
-
end
|
117
|
+
end # ----------------------------------------------------------- end Matterhorn::MediaPackage ---
|
118
|
+
|
109
119
|
|
110
|
-
end
|
120
|
+
end # --------------------------------------------------------------------------- end Matterhorn ---
|
data/lib/matterhorn/smil.rb
CHANGED
@@ -1,29 +1,30 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
|
4
|
+
# =================================================================================== Matterhorn ===
|
5
|
+
|
1
6
|
module Matterhorn
|
2
7
|
|
3
|
-
class Smil
|
4
|
-
|
5
|
-
# --- const definitions ------------------------------------------------------
|
6
8
|
|
7
|
-
|
9
|
+
# =========================================================================== Matterhorn::Smil ===
|
10
|
+
|
11
|
+
class Smil
|
12
|
+
|
13
|
+
|
14
|
+
# ------------------------------------------------------------------------------- attributes ---
|
15
|
+
|
8
16
|
attr_reader :head, :body
|
9
17
|
|
10
|
-
# --- validations ------------------------------------------------------------
|
11
|
-
|
12
|
-
|
13
|
-
# --- callback declarations --------------------------------------------------
|
14
|
-
|
15
|
-
|
16
|
-
# --- relations --------------------------------------------------------------
|
17
18
|
|
18
|
-
|
19
|
-
# --- initialization ---------------------------------------------------------
|
19
|
+
# --------------------------------------------------------------------------- initialization ---
|
20
20
|
|
21
21
|
def initialize()
|
22
22
|
@head = Smil::Head.new
|
23
23
|
@body = Smil::Body.new
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
|
27
|
+
# --------------------------------------------------------------------------------- methodes ---
|
27
28
|
|
28
29
|
def save(smil_file)
|
29
30
|
File.open(smil_file, 'w') do |file|
|
@@ -35,52 +36,52 @@ module Matterhorn
|
|
35
36
|
|
36
37
|
|
37
38
|
def to_xml
|
38
|
-
|
39
|
-
|
40
|
-
bx
|
41
|
-
|
42
|
-
head.to_xml(bx)
|
43
|
-
body.to_xml(bx)
|
44
|
-
end
|
45
|
-
strio.string
|
39
|
+
doc = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |bx|
|
40
|
+
bx.smil('xmlns' => "http://www.w3.org/ns/SMIL") do
|
41
|
+
head.to_xml(bx)
|
42
|
+
body.to_xml(bx)
|
46
43
|
end
|
44
|
+
doc.to_xml
|
47
45
|
end
|
48
46
|
|
49
|
-
|
50
|
-
|
51
|
-
# === protected section === #
|
52
|
-
# ========================================================================== #
|
53
|
-
protected
|
54
|
-
|
55
|
-
|
56
|
-
# ========================================================================== #
|
57
|
-
# === private section === #
|
58
|
-
# ========================================================================== #
|
59
|
-
private
|
60
|
-
|
61
|
-
end
|
47
|
+
|
48
|
+
end # ------------------------------------------------------------------- end Matterhorn::Smil ---
|
62
49
|
|
63
50
|
|
64
51
|
|
52
|
+
# ===================================================================== Matterhorn::Smil::Head ===
|
53
|
+
|
65
54
|
class Smil::Head
|
66
55
|
|
67
|
-
def to_xml(
|
68
|
-
|
56
|
+
def to_xml(bx)
|
57
|
+
bx.head do
|
69
58
|
end
|
70
59
|
end
|
71
60
|
|
72
|
-
|
61
|
+
|
62
|
+
end # ------------------------------------------------------------- end Matterhorn::Smil::Head ---
|
63
|
+
|
73
64
|
|
74
65
|
|
66
|
+
# ===================================================================== Matterhorn::Smil::Body ===
|
75
67
|
|
76
68
|
class Smil::Body
|
77
69
|
|
70
|
+
|
71
|
+
# ------------------------------------------------------------------------------- attributes ---
|
72
|
+
|
78
73
|
attr_reader :par_list
|
79
74
|
|
75
|
+
|
76
|
+
# --------------------------------------------------------------------------- initialization ---
|
77
|
+
|
80
78
|
def initialize()
|
81
79
|
@par_list = Array.new
|
82
80
|
end
|
83
81
|
|
82
|
+
|
83
|
+
# --------------------------------------------------------------------------------- methodes ---
|
84
|
+
|
84
85
|
def add_par()
|
85
86
|
par = Smil::Par.new
|
86
87
|
@par_list << par
|
@@ -96,16 +97,23 @@ module Matterhorn
|
|
96
97
|
end
|
97
98
|
end
|
98
99
|
|
99
|
-
|
100
|
+
|
101
|
+
end # ------------------------------------------------------------- end Matterhorn::Smil::Body ---
|
100
102
|
|
101
103
|
|
102
104
|
|
105
|
+
# ================================================================== Matterhorn::Smil::Element ===
|
106
|
+
|
103
107
|
class Smil::Element
|
104
108
|
|
105
|
-
|
109
|
+
|
110
|
+
# ------------------------------------------------------------------------------- attributes ---
|
111
|
+
|
106
112
|
attr_reader :start_point, :end_point, :rel_begin, :duration, :parent
|
107
113
|
|
108
|
-
|
114
|
+
|
115
|
+
# --------------------------------------------------------------------------- initialization ---
|
116
|
+
|
109
117
|
def initialize(parent = nil)
|
110
118
|
@start_point = nil
|
111
119
|
@end_point = nil
|
@@ -114,7 +122,8 @@ module Matterhorn
|
|
114
122
|
@parent = parent
|
115
123
|
end
|
116
124
|
|
117
|
-
|
125
|
+
|
126
|
+
# --------------------------------------------------------------------------------- methodes ---
|
118
127
|
|
119
128
|
def attr_list
|
120
129
|
attr_list = Hash.new
|
@@ -127,10 +136,8 @@ module Matterhorn
|
|
127
136
|
attr_list
|
128
137
|
end
|
129
138
|
|
130
|
-
|
131
|
-
#
|
132
|
-
# === protected section === #
|
133
|
-
# ========================================================================== #
|
139
|
+
|
140
|
+
# ------------------------------------------------------------------------ protected section ---
|
134
141
|
protected
|
135
142
|
|
136
143
|
def start_point=(new_start_point)
|
@@ -145,6 +152,7 @@ module Matterhorn
|
|
145
152
|
@start_point = new_start_point
|
146
153
|
end
|
147
154
|
|
155
|
+
|
148
156
|
def end_point=(new_end_point)
|
149
157
|
if new_end_point.kind_of? String
|
150
158
|
# end_point is an absolut time position and must be in the format 2013-12-02T14:12:42.364
|
@@ -157,6 +165,7 @@ module Matterhorn
|
|
157
165
|
@end_point = new_end_point
|
158
166
|
end
|
159
167
|
|
168
|
+
|
160
169
|
def rel_begin=(new_rel_begin)
|
161
170
|
if new_rel_begin.kind_of? Fixnum
|
162
171
|
new_rel_begin = new_rel_begin / 1000.0
|
@@ -168,6 +177,7 @@ module Matterhorn
|
|
168
177
|
@rel_begin = new_rel_begin
|
169
178
|
end
|
170
179
|
|
180
|
+
|
171
181
|
def duration=(new_duration)
|
172
182
|
if new_duration.kind_of? Fixnum
|
173
183
|
# duration is in ms
|
@@ -182,6 +192,7 @@ module Matterhorn
|
|
182
192
|
@duration = new_duration
|
183
193
|
end
|
184
194
|
|
195
|
+
|
185
196
|
def update(sub_elem)
|
186
197
|
if !sub_elem.start_point.nil? && (start_point.nil? || start_point > sub_elem.start_point)
|
187
198
|
@start_point = sub_elem.start_point
|
@@ -203,21 +214,30 @@ module Matterhorn
|
|
203
214
|
propagate(self) if parent.nil?
|
204
215
|
end
|
205
216
|
|
217
|
+
|
206
218
|
def propagate(parent_elem)
|
207
219
|
end
|
208
220
|
|
209
|
-
|
221
|
+
|
222
|
+
end # ---------------------------------------------------------- end Matterhorn::Smil::Element ---
|
210
223
|
|
211
224
|
|
212
225
|
|
226
|
+
# ====================================================================== Matterhorn::Smil::Par ===
|
227
|
+
|
213
228
|
class Smil::Par < Smil::Element
|
214
229
|
|
230
|
+
|
231
|
+
# --------------------------------------------------------------------------- initialization ---
|
232
|
+
|
215
233
|
def initialize()
|
216
234
|
super
|
217
235
|
@seq_list = Array.new
|
218
236
|
end
|
219
237
|
|
220
238
|
|
239
|
+
# --------------------------------------------------------------------------------- methodes ---
|
240
|
+
|
221
241
|
def add_seq
|
222
242
|
seq = Smil::Seq.new(self)
|
223
243
|
@seq_list << seq
|
@@ -240,23 +260,33 @@ module Matterhorn
|
|
240
260
|
end
|
241
261
|
end
|
242
262
|
|
243
|
-
|
263
|
+
|
264
|
+
end # -------------------------------------------------------------- end Matterhorn::Smil::Par ---
|
265
|
+
|
244
266
|
|
245
267
|
|
268
|
+
# ====================================================================== Matterhorn::Smil::Seq ===
|
246
269
|
|
247
270
|
class Smil::Seq < Smil::Element
|
248
271
|
|
272
|
+
|
273
|
+
# --------------------------------------------------------------------------- initialization ---
|
274
|
+
|
249
275
|
def initialize(parent)
|
250
276
|
super(parent)
|
251
277
|
@track_list = Array.new
|
252
278
|
end
|
253
279
|
|
280
|
+
|
281
|
+
# --------------------------------------------------------------------------------- methodes ---
|
282
|
+
|
254
283
|
def attr_list
|
255
284
|
attrib_list = super
|
256
285
|
attrib_list.delete(:begin)
|
257
286
|
attrib_list
|
258
287
|
end
|
259
288
|
|
289
|
+
|
260
290
|
def add_track(kind, file, start_point, duration)
|
261
291
|
track = Smil::Track.new(self, kind, file, start_point, duration)
|
262
292
|
@track_list << track
|
@@ -264,6 +294,7 @@ module Matterhorn
|
|
264
294
|
track
|
265
295
|
end
|
266
296
|
|
297
|
+
|
267
298
|
def propagate(parent_elem)
|
268
299
|
@rel_begin = start_point - parent_elem.start_point
|
269
300
|
@track_list.each do |track|
|
@@ -272,6 +303,7 @@ module Matterhorn
|
|
272
303
|
end
|
273
304
|
end
|
274
305
|
|
306
|
+
|
275
307
|
def to_xml(bx)
|
276
308
|
bx.seq(attr_list) do
|
277
309
|
@track_list.each do |track|
|
@@ -280,11 +312,18 @@ module Matterhorn
|
|
280
312
|
end
|
281
313
|
end
|
282
314
|
|
283
|
-
|
315
|
+
|
316
|
+
end # -------------------------------------------------------------- end Matterhorn::Smil::Seq ---
|
284
317
|
|
285
318
|
|
319
|
+
|
320
|
+
# ====================================================================================== Track ===
|
321
|
+
|
286
322
|
class Smil::Track < Smil::Element
|
287
323
|
|
324
|
+
|
325
|
+
# --------------------------------------------------------------------------- initialization ---
|
326
|
+
|
288
327
|
def initialize(parent, kind, file, start_point, duration)
|
289
328
|
super(parent)
|
290
329
|
@kind = kind
|
@@ -293,18 +332,24 @@ module Matterhorn
|
|
293
332
|
self.duration = duration
|
294
333
|
end
|
295
334
|
|
335
|
+
|
336
|
+
# --------------------------------------------------------------------------------- methodes ---
|
337
|
+
|
296
338
|
def propagate(parent_elem)
|
297
339
|
@rel_begin = start_point - parent_elem.start_point
|
298
340
|
end
|
299
341
|
|
342
|
+
|
300
343
|
def to_xml(bx)
|
301
344
|
attributes = attr_list
|
302
345
|
if !@src.nil?
|
303
346
|
attributes[:src] = @src.to_s
|
304
347
|
end
|
305
|
-
bx.
|
348
|
+
bx.tag_(@kind, attributes)
|
306
349
|
end
|
307
350
|
|
308
|
-
end
|
309
351
|
|
310
|
-
end
|
352
|
+
end # ------------------------------------------------------------ end Matterhorn::Smil::Track ---
|
353
|
+
|
354
|
+
|
355
|
+
end # --------------------------------------------------------------------------- end Matterhorn ---
|
@@ -1,59 +1,51 @@
|
|
1
1
|
require 'nokogiri'
|
2
2
|
|
3
|
+
|
4
|
+
# =================================================================================== Matterhorn ===
|
5
|
+
|
3
6
|
module Matterhorn
|
4
7
|
|
8
|
+
|
9
|
+
# =============================================================== Matterhorn::WorkflowInstance ===
|
10
|
+
|
5
11
|
class WorkflowInstance
|
6
12
|
|
13
|
+
|
14
|
+
# ------------------------------------------------------------------------ const definitions ---
|
15
|
+
|
7
16
|
XML_NS_WORKFLOW = "http://workflow.opencastproject.org"
|
17
|
+
|
8
18
|
|
9
|
-
#
|
10
|
-
|
11
|
-
# --- attributes -------------------------------------------------------------
|
12
|
-
|
13
|
-
# --- validations ------------------------------------------------------------
|
14
|
-
|
15
|
-
# --- callback declarations --------------------------------------------------
|
16
|
-
|
17
|
-
|
18
|
-
# --- relations --------------------------------------------------------------
|
19
|
-
|
20
|
-
|
21
|
-
# --- initialization ---------------------------------------------------------
|
19
|
+
# --------------------------------------------------------------------------- initialization ---
|
22
20
|
|
23
21
|
def initialize(xml)
|
24
22
|
@document = Nokogiri::XML(xml)
|
25
23
|
end
|
24
|
+
|
26
25
|
|
27
|
-
#
|
26
|
+
# --------------------------------------------------------------------------------- methodes ---
|
28
27
|
|
29
28
|
def id
|
30
29
|
@document.xpath('/nsw:workflow/@id', {"nsw" => XML_NS_WORKFLOW}).first.value
|
31
30
|
end
|
32
31
|
|
32
|
+
|
33
33
|
def state
|
34
34
|
@document.xpath('/nsw:workflow/@state', {"nsw" => XML_NS_WORKFLOW}).first.value
|
35
35
|
end
|
36
36
|
|
37
|
+
|
37
38
|
def template
|
38
39
|
@document.xpath('/nsw:workflow/nsw:template', {"nsw" => XML_NS_WORKFLOW}).first.content
|
39
40
|
end
|
40
41
|
|
42
|
+
|
41
43
|
def to_xml
|
42
44
|
@document.to_xml
|
43
45
|
end
|
44
46
|
|
45
47
|
|
46
|
-
|
47
|
-
|
48
|
-
# ========================================================================== #
|
49
|
-
protected
|
50
|
-
|
51
|
-
|
52
|
-
# ========================================================================== #
|
53
|
-
# === private section === #
|
54
|
-
# ========================================================================== #
|
55
|
-
private
|
56
|
-
|
57
|
-
end
|
48
|
+
end # ------------------------------------------------------- end Matterhorn::WorkflowInstance ---
|
49
|
+
|
58
50
|
|
59
|
-
end
|
51
|
+
end # --------------------------------------------------------------------------- end Matterhorn ---
|
@@ -1,3 +1,11 @@
|
|
1
|
+
# ============================================================================ MatterhornWhymper ===
|
2
|
+
|
1
3
|
module MatterhornWhymper
|
2
|
-
|
3
|
-
|
4
|
+
|
5
|
+
|
6
|
+
# -------------------------------------------------------------------------- const definitions ---
|
7
|
+
|
8
|
+
VERSION = "0.0.3"
|
9
|
+
|
10
|
+
|
11
|
+
end # -------------------------------------------------------------------- end MatterhornWhymper ---
|
data/lib/matterhorn_whymper.rb
CHANGED
@@ -7,17 +7,24 @@ require 'matterhorn/media_package'
|
|
7
7
|
require 'matterhorn/error'
|
8
8
|
|
9
9
|
|
10
|
+
# ============================================================================ MatterhornWhymper ===
|
11
|
+
|
10
12
|
module MatterhornWhymper
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
|
15
|
+
# --------------------------------------------------------------------------------- attributes ---
|
16
|
+
|
17
17
|
class << self
|
18
18
|
attr_accessor :configuration, :logger
|
19
19
|
end
|
20
20
|
|
21
|
+
|
22
|
+
# ----------------------------------------------------------------------------------- methodes ---
|
23
|
+
|
24
|
+
def self.info
|
25
|
+
"Ruby wrapper against the Matterhorn Endpoint API. Version #{MatterhornWhymper::VERSION}"
|
26
|
+
end
|
27
|
+
|
21
28
|
|
22
29
|
def self.configure
|
23
30
|
self.configuration ||= Configuration.new
|
@@ -32,16 +39,23 @@ module MatterhornWhymper
|
|
32
39
|
|
33
40
|
|
34
41
|
|
42
|
+
# =========================================================== MatterhornWhymper::Configuration ===
|
43
|
+
|
35
44
|
class Configuration
|
36
45
|
|
46
|
+
# ------------------------------------------------------------------------------- attributes ---
|
47
|
+
|
37
48
|
attr_accessor :system_account_user, :system_account_password, :system_domain, :system_protocol
|
38
49
|
|
50
|
+
|
51
|
+
# --------------------------------------------------------------------------------- methodes ---
|
52
|
+
|
39
53
|
def uri
|
40
54
|
"#{system_protocol}://#{system_account_user}:#{system_account_password}@#{system_domain}"
|
41
55
|
end
|
42
56
|
|
43
57
|
|
44
|
-
end
|
58
|
+
end # --------------------------------------------------- end MatterhornWhymper::Configuration ---
|
45
59
|
|
46
60
|
|
47
|
-
end
|
61
|
+
end # -------------------------------------------------------------------- end MatterhornWhymper ---
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: matterhorn_whymper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Fritschi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multipart-post
|