riddl 0.101.10 → 0.101.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 485b05cdb56232f73ec2c861aa9a7dc2f0c2dee2da745c705491c691694b8410
4
- data.tar.gz: b3580b50e80d3a2f9d593d50b5c7bdd22ff41c141a954a10049d7236977fdb93
3
+ metadata.gz: 75b27043581e0e50dc78a98091f62e4da7e2543dd9a4a7c48df7468b341247fc
4
+ data.tar.gz: 5287797068c18f3201971128ff00d73883870bd639137afe574ffe9ff47dce7c
5
5
  SHA512:
6
- metadata.gz: a59af7d2703b4576311615ff4f124987de255c4778d27ac7ff7d2ef441266f2c4bca075d60ba4c63825e5be5e9ad05645c3b3b4aa3023e770451cdbb17bdb291
7
- data.tar.gz: 53bdb586356b3f23eb5bf2802e510a1119e9cea7367a977603639c4a05c5382c287b1eb0261b49c5e8b8d463c77f0a7dfe3ce180ce588c9057bf1bda9c206b71
6
+ metadata.gz: 9b9903c8acfcd47ca16a2506c9eae4435bd994a2694e3af6fd2cc2337913be1f411d9a315a86b2948fc9f482a458617af7c0765fd3fe3537557789f4f53761de
7
+ data.tar.gz: 992f143f5064d8d7ecfc87ffb32b04f8f74b0013f5033d8cc4e1246f216d753341de408f9fa72ab3a83a28e2c9b3fe7022092b0ce9a0a3ddc41d661b54e768b0
@@ -2,17 +2,22 @@ module Riddl
2
2
  module Handlers
3
3
  class RelaxNG < Riddl::Handlers::Implementation
4
4
  def self::handle(what,hinfo)
5
- w = if what.class == Riddl::Parameter::Tempfile || what.class == File
6
- XML::Smart.open_unprotected(what)
7
- else
8
- XML::Smart.string(what)
9
- end
10
- rng = XML::Smart.string("<payload>" + hinfo + "</payload>")
11
- rng.register_namespace 'r', 'http://relaxng.org/ns/structure/1.0'
12
- w.validate_against(rng.find("//r:grammar|//r:element").first.to_doc) rescue false
5
+ begin
6
+ w = if what.class == Riddl::Parameter::Tempfile || what.class == File
7
+ XML::Smart.open_unprotected(what)
8
+ else
9
+ XML::Smart.string(what)
10
+ end
11
+ rng = XML::Smart.string("<payload>" + hinfo + "</payload>")
12
+ rng.register_namespace 'r', 'http://relaxng.org/ns/structure/1.0'
13
+ w.validate_against(rng.find("//r:grammar|//r:element").first.to_doc) rescue false
14
+ rescue
15
+ puts 'The XML sent to the server is b0rked/>'
16
+ false
17
+ end
13
18
  end
14
19
  end
15
- end
16
- end
20
+ end
21
+ end
17
22
 
18
23
  Riddl::Handlers::add("http://riddl.org/ns/handlers/relaxng",Riddl::Handlers::RelaxNG)
@@ -0,0 +1,177 @@
1
+ <description datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://riddl.org/ns/description/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
2
+
3
+ <message name="topics">
4
+ <parameter name="topics" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
5
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
6
+ <start>
7
+ <element name="topics">
8
+ <zeroOrMore>
9
+ <ref name="topic"/>
10
+ </zeroOrMore>
11
+ </element>
12
+ </start>
13
+
14
+ <define name="topic">
15
+ <element name="topic">
16
+ <attribute name="id">
17
+ <data type="string"/>
18
+ </attribute>
19
+ <zeroOrMore>
20
+ <element>
21
+ <choice>
22
+ <name>event</name>
23
+ <name>vote</name>
24
+ </choice>
25
+ <data type="string">
26
+ <param name="pattern">[\w-_]+</param>
27
+ </data>
28
+ </element>
29
+ </zeroOrMore>
30
+ </element>
31
+ </define>
32
+
33
+ </grammar>
34
+ </parameter>
35
+ </message>
36
+
37
+ <message name="subscriptions">
38
+ <parameter name="subscriptions" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
39
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
40
+ <start>
41
+ <element name="subscriptions">
42
+ <zeroOrMore>
43
+ <ref name="subscription"/>
44
+ </zeroOrMore>
45
+ </element>
46
+ </start>
47
+
48
+ <define name="subscription">
49
+ <element name="subscription">
50
+ <attribute name="id">
51
+ <data type="string"/>
52
+ </attribute>
53
+ <optional>
54
+ <attribute name="url">
55
+ <data type="string"/>
56
+ </attribute>
57
+ </optional>
58
+ </element>
59
+ </define>
60
+
61
+ </grammar>
62
+ </parameter>
63
+ </message>
64
+
65
+ <message name="subscription">
66
+ <parameter name="subscription" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
67
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
68
+ <start>
69
+ <element name="subscription">
70
+ <optional>
71
+ <attribute name="url">
72
+ <data type="string"/>
73
+ </attribute>
74
+ </optional>
75
+ <oneOrMore>
76
+ <element name="topic">
77
+ <attribute name="id">
78
+ <data type="string"/>
79
+ </attribute>
80
+ <oneOrMore>
81
+ <element>
82
+ <choice>
83
+ <name>event</name>
84
+ <name>vote</name>
85
+ </choice>
86
+ <data type="string">
87
+ <param name="pattern">[\w_]+</param>
88
+ </data>
89
+ </element>
90
+ </oneOrMore>
91
+ </element>
92
+ </oneOrMore>
93
+ </element>
94
+ </start>
95
+ </grammar>
96
+ </parameter>
97
+ </message>
98
+
99
+ <message name="subscribe">
100
+ <optional>
101
+ <parameter name="url" type="string"/>
102
+ <optional>
103
+ <parameter name="onbehalf" type="string"/>
104
+ </optional>
105
+ </optional>
106
+ <oneOrMore>
107
+ <parameter name="topic" type="string"/>
108
+ <choice>
109
+ <parameter name="votes" type="string">
110
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
111
+ </parameter>
112
+ <parameter name="events" type="string">
113
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
114
+ </parameter>
115
+ </choice>
116
+ </oneOrMore>
117
+ </message>
118
+ <message name="acknowledgment">
119
+ <parameter name="key" type="string"/>
120
+ </message>
121
+
122
+ <message name="details">
123
+ <optional>
124
+ <parameter name="url" type="string"/>
125
+ </optional>
126
+ <oneOrMore>
127
+ <parameter name="topic" type="string"/>
128
+ <choice>
129
+ <parameter name="votes" type="string">
130
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
131
+ </parameter>
132
+ <parameter name="events" type="string">
133
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
134
+ </parameter>
135
+ </choice>
136
+ </oneOrMore>
137
+ </message>
138
+
139
+ <message name="overview">
140
+ <parameter name="overview" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
141
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
142
+ <start>
143
+ <element name="overview">
144
+ <element name="topics">
145
+ <empty/>
146
+ </element>
147
+ <element name="subscriptions">
148
+ <empty/>
149
+ </element>
150
+ </element>
151
+ </start>
152
+ </grammar>
153
+ </parameter>
154
+ </message>
155
+
156
+ <resource pattern="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
157
+ <resource relative="notifications">
158
+ <get in="*" out="overview"/>
159
+ <resource relative="topics">
160
+ <get in="*" out="topics"/>
161
+ </resource>
162
+ <resource relative="subscriptions">
163
+ <get in="*" out="subscriptions"/>
164
+ <post in="subscribe" out="acknowledgment"/>
165
+ <resource>
166
+ <get out="subscription"/>
167
+ <put in="details"/>
168
+ <delete/>
169
+ <resource relative="sse">
170
+ <sse/>
171
+ </resource>
172
+ </resource>
173
+ </resource>
174
+ </resource>
175
+ </resource>
176
+
177
+ </description>
@@ -134,6 +134,11 @@ module Riddl
134
134
  end
135
135
  end
136
136
 
137
+ if @riddl_opts[:parallel]
138
+ EM.defer do
139
+ @riddl_opts[:parallel].call
140
+ end
141
+ end
137
142
  end
138
143
 
139
144
  rescue => e
@@ -144,6 +149,10 @@ module Riddl
144
149
  end
145
150
  end #}}}
146
151
 
152
+ def parallel(&blk)
153
+ @riddl_opts[:parallel] = blk
154
+ end
155
+
147
156
  def call(env)# {{{
148
157
  dup.__http_call(env)
149
158
  end# }}}
@@ -469,7 +469,7 @@ module Riddl
469
469
  cpath = File.basename(child.path)
470
470
  subele = ele.find("p:" + cpath).first
471
471
  if subele
472
- subele.replace_by(child)
472
+ subele.replace_by_copy(child)
473
473
  else
474
474
  ele.add(child)
475
475
  end
@@ -201,7 +201,8 @@ module Riddl
201
201
  end
202
202
  a.children.each do |e|
203
203
  unless e.class == XML::Smart::Dom::Text
204
- e.namespaces[nil] = 'http://relaxng.org/ns/structure/1.0'
204
+ e = e.to_doc.root
205
+ e.namespaces[nil] = 'http://relaxng.org/ns/structure/1.0'
205
206
  data.add e
206
207
  end
207
208
  end
@@ -0,0 +1,177 @@
1
+ <description datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://riddl.org/ns/description/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
2
+
3
+ <message name="topics">
4
+ <parameter name="topics" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
5
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
6
+ <start>
7
+ <element name="topics">
8
+ <zeroOrMore>
9
+ <ref name="topic"/>
10
+ </zeroOrMore>
11
+ </element>
12
+ </start>
13
+
14
+ <define name="topic">
15
+ <element name="topic">
16
+ <attribute name="id">
17
+ <data type="string"/>
18
+ </attribute>
19
+ <zeroOrMore>
20
+ <element>
21
+ <choice>
22
+ <name>event</name>
23
+ <name>vote</name>
24
+ </choice>
25
+ <data type="string">
26
+ <param name="pattern">[\w-_]+</param>
27
+ </data>
28
+ </element>
29
+ </zeroOrMore>
30
+ </element>
31
+ </define>
32
+
33
+ </grammar>
34
+ </parameter>
35
+ </message>
36
+
37
+ <message name="subscriptions">
38
+ <parameter name="subscriptions" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
39
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
40
+ <start>
41
+ <element name="subscriptions">
42
+ <zeroOrMore>
43
+ <ref name="subscription"/>
44
+ </zeroOrMore>
45
+ </element>
46
+ </start>
47
+
48
+ <define name="subscription">
49
+ <element name="subscription">
50
+ <attribute name="id">
51
+ <data type="string"/>
52
+ </attribute>
53
+ <optional>
54
+ <attribute name="url">
55
+ <data type="string"/>
56
+ </attribute>
57
+ </optional>
58
+ </element>
59
+ </define>
60
+
61
+ </grammar>
62
+ </parameter>
63
+ </message>
64
+
65
+ <message name="subscription">
66
+ <parameter name="subscription" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
67
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
68
+ <start>
69
+ <element name="subscription">
70
+ <optional>
71
+ <attribute name="url">
72
+ <data type="string"/>
73
+ </attribute>
74
+ </optional>
75
+ <oneOrMore>
76
+ <element name="topic">
77
+ <attribute name="id">
78
+ <data type="string"/>
79
+ </attribute>
80
+ <oneOrMore>
81
+ <element>
82
+ <choice>
83
+ <name>event</name>
84
+ <name>vote</name>
85
+ </choice>
86
+ <data type="string">
87
+ <param name="pattern">[\w_]+</param>
88
+ </data>
89
+ </element>
90
+ </oneOrMore>
91
+ </element>
92
+ </oneOrMore>
93
+ </element>
94
+ </start>
95
+ </grammar>
96
+ </parameter>
97
+ </message>
98
+
99
+ <message name="subscribe">
100
+ <optional>
101
+ <parameter name="url" type="string"/>
102
+ <optional>
103
+ <parameter name="onbehalf" type="string"/>
104
+ </optional>
105
+ </optional>
106
+ <oneOrMore>
107
+ <parameter name="topic" type="string"/>
108
+ <choice>
109
+ <parameter name="votes" type="string">
110
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
111
+ </parameter>
112
+ <parameter name="events" type="string">
113
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
114
+ </parameter>
115
+ </choice>
116
+ </oneOrMore>
117
+ </message>
118
+ <message name="acknowledgment">
119
+ <parameter name="key" type="string"/>
120
+ </message>
121
+
122
+ <message name="details">
123
+ <optional>
124
+ <parameter name="url" type="string"/>
125
+ </optional>
126
+ <oneOrMore>
127
+ <parameter name="topic" type="string"/>
128
+ <choice>
129
+ <parameter name="votes" type="string">
130
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
131
+ </parameter>
132
+ <parameter name="events" type="string">
133
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
134
+ </parameter>
135
+ </choice>
136
+ </oneOrMore>
137
+ </message>
138
+
139
+ <message name="overview">
140
+ <parameter name="overview" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
141
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
142
+ <start>
143
+ <element name="overview">
144
+ <element name="topics">
145
+ <empty/>
146
+ </element>
147
+ <element name="subscriptions">
148
+ <empty/>
149
+ </element>
150
+ </element>
151
+ </start>
152
+ </grammar>
153
+ </parameter>
154
+ </message>
155
+
156
+ <resource pattern="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
157
+ <resource relative="notifications">
158
+ <get in="*" out="overview"/>
159
+ <resource relative="topics">
160
+ <get in="*" out="topics"/>
161
+ </resource>
162
+ <resource relative="subscriptions">
163
+ <get in="*" out="subscriptions"/>
164
+ <post in="subscribe" out="acknowledgment"/>
165
+ <resource>
166
+ <get out="subscription"/>
167
+ <put in="details"/>
168
+ <delete/>
169
+ <resource relative="sse">
170
+ <sse/>
171
+ </resource>
172
+ </resource>
173
+ </resource>
174
+ </resource>
175
+ </resource>
176
+
177
+ </description>
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "riddl"
3
- s.version = "0.101.10"
3
+ s.version = "0.101.16"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0"
6
6
  s.summary = "restful interface description and declaration language: tools and client/server libs"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riddl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.101.10
4
+ version: 0.101.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen 'eTM' Mangler
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: tools
12
12
  cert_chain: []
13
- date: 2020-06-05 00:00:00.000000000 Z
13
+ date: 2020-07-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: daemonite
@@ -442,6 +442,7 @@ files:
442
442
  - lib/ruby/riddl/ns/common-patterns/downloadify/1.0/downloadify.xml
443
443
  - lib/ruby/riddl/ns/common-patterns/notifications-consumer/1.0/consumer.xml
444
444
  - lib/ruby/riddl/ns/common-patterns/notifications-producer/1.0/producer.xml
445
+ - lib/ruby/riddl/ns/common-patterns/notifications-producer/2.0/producer.xml
445
446
  - lib/ruby/riddl/ns/common-patterns/oauth2-univie-app/1.0/app.xml
446
447
  - lib/ruby/riddl/ns/common-patterns/oauth2-univie-app/1.0/bearer-delete.xml
447
448
  - lib/ruby/riddl/ns/common-patterns/oauth2-univie-app/1.0/bearer-get.xml
@@ -501,6 +502,7 @@ files:
501
502
  - ns/common-patterns/downloadify/1.0/downloadify.xml
502
503
  - ns/common-patterns/notifications-consumer/1.0/consumer.xml
503
504
  - ns/common-patterns/notifications-producer/1.0/producer.xml
505
+ - ns/common-patterns/notifications-producer/2.0/producer.xml
504
506
  - ns/common-patterns/oauth2-univie-app/1.0/app.xml
505
507
  - ns/common-patterns/oauth2-univie-app/1.0/bearer-delete.xml
506
508
  - ns/common-patterns/oauth2-univie-app/1.0/bearer-get.xml