riddl 0.101.11 → 0.101.17

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: 5d978936f72adba90d559b02854c9a9e90b29667c758b699719b7c3813ac336b
4
- data.tar.gz: fbeb981ed3830b2fc6a7fcce299b1a7bd82e1823debcef16d5ae584e890afa06
3
+ metadata.gz: 103e67ac3db9a89d45c0ebaa0ace242a69fcd4da4c9c964d0caaa69497837d87
4
+ data.tar.gz: 7c532f031ceea4193a554ede2fb05c3f4923c9f9bc1f12e80aa1984ed50974e9
5
5
  SHA512:
6
- metadata.gz: 195c791d35d2481885a121ba7dd749db315e41a0d2cb9a06873d5bdb89fb110cd4b7d85493b5382163ed7f1f22d90377897d3423268682315140a08b5c1bf12d
7
- data.tar.gz: c95886c342f3c7d351702af686ac7225fde1af60402bdc1aa1025634bb523cce9dc364671b6c849c024e50cd575aaea9ed90939f07165376581f9f1998231f9c
6
+ metadata.gz: 014ff19c79f656f7ac1fa613aef36973da12a30229ab055ab6d97d2eacbf41e6850b24b381f938f0b5713007fd07f66d4fbafc0f4c3a054c7383bde448ce1d5f
7
+ data.tar.gz: 4a8b74408654c019d1fa239a212ffe3c49d9afcae095adb10a8edeb14ce834fcc30913c98756140decd826fe0b1e6cfc6202f38c657295ab7ccf82127da9db0d
@@ -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,157 @@
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
+ <oneOrMore>
104
+ <parameter name="topic" type="string"/>
105
+ <choice>
106
+ <parameter name="votes" type="string">
107
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
108
+ </parameter>
109
+ <parameter name="events" type="string">
110
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
111
+ </parameter>
112
+ </choice>
113
+ </oneOrMore>
114
+ </message>
115
+ <message name="acknowledgment">
116
+ <parameter name="key" type="string"/>
117
+ </message>
118
+
119
+ <message name="overview">
120
+ <parameter name="overview" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
121
+ <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">
122
+ <start>
123
+ <element name="overview">
124
+ <element name="topics">
125
+ <empty/>
126
+ </element>
127
+ <element name="subscriptions">
128
+ <empty/>
129
+ </element>
130
+ </element>
131
+ </start>
132
+ </grammar>
133
+ </parameter>
134
+ </message>
135
+
136
+ <resource pattern="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
137
+ <resource relative="notifications">
138
+ <get in="*" out="overview"/>
139
+ <resource relative="topics">
140
+ <get in="*" out="topics"/>
141
+ </resource>
142
+ <resource relative="subscriptions">
143
+ <get in="*" out="subscriptions"/>
144
+ <post in="subscribe" out="acknowledgment"/>
145
+ <resource>
146
+ <get out="subscription"/>
147
+ <put in="subscribe"/>
148
+ <delete/>
149
+ <resource relative="sse">
150
+ <sse/>
151
+ </resource>
152
+ </resource>
153
+ </resource>
154
+ </resource>
155
+ </resource>
156
+
157
+ </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
@@ -0,0 +1,157 @@
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
+ <oneOrMore>
104
+ <parameter name="topic" type="string"/>
105
+ <choice>
106
+ <parameter name="votes" type="string">
107
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
108
+ </parameter>
109
+ <parameter name="events" type="string">
110
+ <param name="pattern">([\w-_]+,)*([\w-_]+)</param>
111
+ </parameter>
112
+ </choice>
113
+ </oneOrMore>
114
+ </message>
115
+ <message name="acknowledgment">
116
+ <parameter name="key" type="string"/>
117
+ </message>
118
+
119
+ <message name="overview">
120
+ <parameter name="overview" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
121
+ <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">
122
+ <start>
123
+ <element name="overview">
124
+ <element name="topics">
125
+ <empty/>
126
+ </element>
127
+ <element name="subscriptions">
128
+ <empty/>
129
+ </element>
130
+ </element>
131
+ </start>
132
+ </grammar>
133
+ </parameter>
134
+ </message>
135
+
136
+ <resource pattern="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
137
+ <resource relative="notifications">
138
+ <get in="*" out="overview"/>
139
+ <resource relative="topics">
140
+ <get in="*" out="topics"/>
141
+ </resource>
142
+ <resource relative="subscriptions">
143
+ <get in="*" out="subscriptions"/>
144
+ <post in="subscribe" out="acknowledgment"/>
145
+ <resource>
146
+ <get out="subscription"/>
147
+ <put in="subscribe"/>
148
+ <delete/>
149
+ <resource relative="sse">
150
+ <sse/>
151
+ </resource>
152
+ </resource>
153
+ </resource>
154
+ </resource>
155
+ </resource>
156
+
157
+ </description>
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "riddl"
3
- s.version = "0.101.11"
3
+ s.version = "0.101.17"
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.11
4
+ version: 0.101.17
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-08-04 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