riddl 0.101.17 → 0.101.26
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/helloworld/declaration-definition_goal.xml +1 -3
- data/examples/helloworld/description.xml +5 -7
- data/examples/library/description.xml +5 -5
- data/lib/ruby/riddl/handlers/plain-type.rb +7 -6
- data/lib/ruby/riddl/implementation.rb +3 -3
- data/lib/ruby/riddl/ns/common-patterns/notifications-consumer/2.0/consumer.xml +52 -0
- data/lib/ruby/riddl/protocols/http/parser.rb +12 -5
- data/lib/ruby/riddl/server.rb +2 -2
- data/lib/ruby/riddl/utils/properties.rb +1 -1
- data/lib/ruby/riddl/wrapper.rb +1 -1
- data/lib/ruby/riddl/wrapper/messageparser.rb +1 -0
- data/ns/common-patterns/notifications-consumer/2.0/consumer.xml +52 -0
- data/riddl.gemspec +2 -3
- metadata +12 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b0c69ed74aacd5d1e986311d0d84934c91a66e59224d6d3a0e3971a5397d411
|
4
|
+
data.tar.gz: fe9e202e7b2f42d8561e0eb0946254c4d9f9a5a6adf3d1dd1e9fe724968609be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5969e8231531f20da2e5df34d3bb46043df109331bcd0ca4533ff4ed02cd0195cc733f89bff56c8525f22dc794a7d806676b8d8de02ab97a6c0cd0f8d0f32758
|
7
|
+
data.tar.gz: 10a8c256399af36f642ca6ecfdd3bbc2ad054bb2295999cfde8a9e9602f3eb7d11d57db8cebeb011858e1a5290bf115a29c4fb9547aa008f2fceaf0453dcd105
|
@@ -2,9 +2,7 @@
|
|
2
2
|
<description xmlns="http://riddl.org/ns/description/1.0" xmlns:xi="http://www.w3.org/2001/XInclude" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
3
3
|
<message name="hello">
|
4
4
|
<parameter name="return" mimetype="text/plain" handler="http://riddl.org/ns/handlers/plain-type">
|
5
|
-
<
|
6
|
-
<param name="pattern">hello .+</param>
|
7
|
-
</plain>
|
5
|
+
<pattern>hello .+</pattern>
|
8
6
|
</parameter>
|
9
7
|
</message>
|
10
8
|
<message name="hello-form">
|
@@ -2,9 +2,7 @@
|
|
2
2
|
|
3
3
|
<message name="hello">
|
4
4
|
<parameter name="return" mimetype="text/plain" handler="http://riddl.org/ns/handlers/plain-type">
|
5
|
-
<
|
6
|
-
<param name="pattern">hello .+</param>
|
7
|
-
</plain>
|
5
|
+
<pattern>hello .+</pattern>
|
8
6
|
</parameter>
|
9
7
|
</message>
|
10
8
|
<message name="hello-form">
|
@@ -22,15 +20,15 @@
|
|
22
20
|
<parameter name="type" type="string">
|
23
21
|
<choice>
|
24
22
|
<value>html</value>
|
25
|
-
</choice>
|
26
|
-
</parameter>
|
23
|
+
</choice>
|
24
|
+
</parameter>
|
27
25
|
</message>
|
28
26
|
|
29
27
|
<resource>
|
30
28
|
<post in="hello"/>
|
31
29
|
<post in="hello-form"/>
|
32
30
|
<get in="*" out="hello-form"/>
|
33
|
-
<get in="type-html" out="hello-list-html"/>
|
31
|
+
<get in="type-html" out="hello-list-html"/>
|
34
32
|
<resource>
|
35
33
|
<get in="*" out="hello"/>
|
36
34
|
<put in="hello" out="hello"/>
|
@@ -43,5 +41,5 @@
|
|
43
41
|
<post in="hello"/>
|
44
42
|
</resource>
|
45
43
|
</resource>
|
46
|
-
|
44
|
+
|
47
45
|
</description>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<!--header name="Library" type="positiveInteger"/-->
|
5
5
|
<oneOrMore>
|
6
6
|
<parameter name="author" type="string"/>
|
7
|
-
</oneOrMore>
|
7
|
+
</oneOrMore>
|
8
8
|
<parameter name="title" type="string"/>
|
9
9
|
</message>
|
10
10
|
<message name="list-of-books">
|
@@ -13,9 +13,9 @@
|
|
13
13
|
</parameter>
|
14
14
|
</message>
|
15
15
|
<message name="book-description-form">
|
16
|
-
<oneOrMore>
|
16
|
+
<oneOrMore>
|
17
17
|
<parameter name="author" type="string"/>
|
18
|
-
</oneOrMore>
|
18
|
+
</oneOrMore>
|
19
19
|
<parameter name="title" type="string"/>
|
20
20
|
</message>
|
21
21
|
<message name="book-description">
|
@@ -25,7 +25,7 @@
|
|
25
25
|
</message>
|
26
26
|
<message name="book-id">
|
27
27
|
<parameter name="book-id" mimetype="text/plain" handler="http://riddl.org/ns/handlers/plain-type">
|
28
|
-
<
|
28
|
+
<pattern>\d+</pattern>
|
29
29
|
</parameter>
|
30
30
|
</message>
|
31
31
|
|
@@ -75,6 +75,6 @@
|
|
75
75
|
<resource relative="about">
|
76
76
|
<get in="*" out="main-output"/>
|
77
77
|
</resource>
|
78
|
-
</resource>
|
78
|
+
</resource>
|
79
79
|
|
80
80
|
</description>
|
@@ -4,18 +4,19 @@ module Riddl
|
|
4
4
|
def self::handle(what,hinfo)
|
5
5
|
if what.class == Riddl::Parameter::Tempfile
|
6
6
|
w = what.read
|
7
|
-
else
|
7
|
+
else
|
8
8
|
w = what
|
9
|
-
end
|
9
|
+
end
|
10
10
|
begin
|
11
|
-
|
12
|
-
|
11
|
+
hi = XML::Smart::string(hinfo)
|
12
|
+
re = Regexp.new(hi.root.text)
|
13
|
+
rescue => e
|
13
14
|
return false
|
14
15
|
end
|
15
16
|
w =~ re
|
16
17
|
end
|
17
18
|
end
|
18
|
-
end
|
19
|
-
end
|
19
|
+
end
|
20
|
+
end
|
20
21
|
|
21
22
|
Riddl::Handlers::add("http://riddl.org/ns/handlers/plain-type",Riddl::Handlers::PlainType)
|
@@ -40,10 +40,10 @@ module Riddl
|
|
40
40
|
def onerror(err);end
|
41
41
|
|
42
42
|
def send(data)
|
43
|
-
|
43
|
+
@ws[:io].send_with_id 'data', data
|
44
44
|
end
|
45
45
|
def send_with_id(id,data)
|
46
|
-
|
46
|
+
@ws[:io].send_with_id id, data
|
47
47
|
end
|
48
48
|
|
49
49
|
def io=(connection)
|
@@ -77,7 +77,7 @@ module Riddl
|
|
77
77
|
def onerror(err);end
|
78
78
|
|
79
79
|
def send(data)
|
80
|
-
|
80
|
+
@ws[:io].send data
|
81
81
|
end
|
82
82
|
|
83
83
|
def io=(connection)
|
@@ -0,0 +1,52 @@
|
|
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="event">
|
4
|
+
<parameter name="type" fixed="event"/>
|
5
|
+
<parameter name="topic" type="string">
|
6
|
+
<param name="pattern">[\w_/]+</param>
|
7
|
+
</parameter>
|
8
|
+
<parameter name="event" type="string">
|
9
|
+
<param name="pattern">[\w_]+</param>
|
10
|
+
</parameter>
|
11
|
+
<choice>
|
12
|
+
<parameter name="notification" type="string"/>
|
13
|
+
<parameter name="notification" mimetype="application/json"/>
|
14
|
+
</choice>
|
15
|
+
</message>
|
16
|
+
|
17
|
+
<message name="vote">
|
18
|
+
<parameter name="type" fixed="vote"/>
|
19
|
+
<parameter name="topic" type="string">
|
20
|
+
<param name="pattern">[\w_/]+</param>
|
21
|
+
</parameter>
|
22
|
+
<parameter name="vote" type="string">
|
23
|
+
<param name="pattern">[\w_]+</param>
|
24
|
+
</parameter>
|
25
|
+
<parameter name="callback" type="string"/>
|
26
|
+
<choice>
|
27
|
+
<parameter name="notification" type="string"/>
|
28
|
+
<parameter name="notification" mimetype="application/json"/>
|
29
|
+
</choice>
|
30
|
+
</message>
|
31
|
+
|
32
|
+
<message name="acknowledgment">
|
33
|
+
<choice>
|
34
|
+
<parameter name="continue" type="string">
|
35
|
+
<choice>
|
36
|
+
<value>true</value>
|
37
|
+
<value>false</value>
|
38
|
+
<value>callback</value>
|
39
|
+
</choice>
|
40
|
+
</parameter>
|
41
|
+
<parameter name="continue" mimetype="text/plain" handler="http://riddl.org/ns/handlers/plain-type">
|
42
|
+
<pattern>^(true|false|callback)$</pattern>
|
43
|
+
</parameter>
|
44
|
+
</choice>
|
45
|
+
</message>
|
46
|
+
|
47
|
+
<resource pattern="http://riddl.org/ns/common-patterns/notifications-consumer/2.0">
|
48
|
+
<post in="event"/>
|
49
|
+
<post in="vote" out="acknowledgment"/>
|
50
|
+
</resource>
|
51
|
+
|
52
|
+
</description>
|
@@ -34,9 +34,16 @@ module Riddl
|
|
34
34
|
body = ''
|
35
35
|
end
|
36
36
|
|
37
|
-
if content_length == 0
|
37
|
+
if content_length == 0
|
38
|
+
bufsize = 16384
|
39
|
+
until input.eof?
|
40
|
+
c = input.read(bufsize)
|
41
|
+
raise EOFError, "bad content body" if c.nil? || c.empty?
|
42
|
+
body << c
|
43
|
+
content_length -= c.size
|
44
|
+
end
|
38
45
|
body << input.read
|
39
|
-
else
|
46
|
+
else
|
40
47
|
bufsize = 16384
|
41
48
|
until content_length <= 0
|
42
49
|
c = input.read(bufsize < content_length ? bufsize : content_length)
|
@@ -131,7 +138,7 @@ module Riddl
|
|
131
138
|
@params << Parameter::Complex.new(name, ctype, body, filename, head)
|
132
139
|
elsif !filename && ctype
|
133
140
|
body.rewind
|
134
|
-
|
141
|
+
|
135
142
|
# Generic multipart cases, not coming from a form
|
136
143
|
@params << Parameter::Complex.new(name, ctype, body, nil, head)
|
137
144
|
else
|
@@ -170,7 +177,7 @@ module Riddl
|
|
170
177
|
elsif FORM_CONTENT_TYPES.include?(media_type)
|
171
178
|
# sub is a fix for Safari Ajax postings that always append \0
|
172
179
|
parse_nested_query(input.read.sub(/\0\z/, ''),:body)
|
173
|
-
else
|
180
|
+
else
|
174
181
|
parse_content(input,content_type,content_length.to_i,content_disposition||'',content_id||'',riddl_type||'')
|
175
182
|
end
|
176
183
|
|
@@ -187,4 +194,4 @@ module Riddl
|
|
187
194
|
end
|
188
195
|
end
|
189
196
|
end
|
190
|
-
end
|
197
|
+
end
|
data/lib/ruby/riddl/server.rb
CHANGED
@@ -162,7 +162,7 @@ module Riddl
|
|
162
162
|
if @riddl_message.nil?
|
163
163
|
if @riddl_info[:env].has_key?('HTTP_ORIGIN') && @riddl_cross_site_xhr && @riddl_method == 'options'
|
164
164
|
@riddl_res['Access-Control-Allow-Origin'] = '*'
|
165
|
-
@riddl_res['Access-Control-Allow-Methods'] = 'GET, POST, PUT, DELETE, OPTIONS'
|
165
|
+
@riddl_res['Access-Control-Allow-Methods'] = 'GET, POST, PUT, PATCH, DELETE, OPTIONS'
|
166
166
|
@riddl_res['Access-Control-Allow-Headers'] = @riddl_info[:env]['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'] if @riddl_info[:env]['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']
|
167
167
|
@riddl_res['Access-Control-Max-Age'] = '0'
|
168
168
|
@riddl_res['Content-Length'] = '0'
|
@@ -223,7 +223,7 @@ module Riddl
|
|
223
223
|
@riddl_res = Rack::Response.new
|
224
224
|
@riddl_status = 404
|
225
225
|
|
226
|
-
@riddl_pinfo =
|
226
|
+
@riddl_pinfo = @riddl_env["PATH_INFO"].gsub(/\/+/,'/')
|
227
227
|
@riddl_matching_path = @riddl_paths.find{ |e| @riddl_pinfo.match(e[1]).to_s.length == @riddl_pinfo.length }
|
228
228
|
|
229
229
|
if @riddl_matching_path
|
@@ -466,7 +466,7 @@ module Riddl
|
|
466
466
|
nodes.each do |ele|
|
467
467
|
if value.nil?
|
468
468
|
newstuff.each do |child|
|
469
|
-
cpath = File.basename(child.
|
469
|
+
cpath = File.basename(child.qname.name)
|
470
470
|
subele = ele.find("p:" + cpath).first
|
471
471
|
if subele
|
472
472
|
subele.replace_by_copy(child)
|
data/lib/ruby/riddl/wrapper.rb
CHANGED
@@ -79,7 +79,7 @@ module Riddl
|
|
79
79
|
name = File.expand_path(File.dirname(__FILE__)) + $2
|
80
80
|
end
|
81
81
|
begin
|
82
|
-
fh = name.respond_to?(:read) ? name : open(name,:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE)
|
82
|
+
fh = name.respond_to?(:read) ? name : URI.open(name,:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE)
|
83
83
|
@doc = XML::Smart.string(fh.read)
|
84
84
|
fh.close
|
85
85
|
fpath = File.dirname(fh.path) if fh.is_a?(File) || fh.is_a?(Tempfile)
|
@@ -0,0 +1,52 @@
|
|
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="event">
|
4
|
+
<parameter name="type" fixed="event"/>
|
5
|
+
<parameter name="topic" type="string">
|
6
|
+
<param name="pattern">[\w_/]+</param>
|
7
|
+
</parameter>
|
8
|
+
<parameter name="event" type="string">
|
9
|
+
<param name="pattern">[\w_]+</param>
|
10
|
+
</parameter>
|
11
|
+
<choice>
|
12
|
+
<parameter name="notification" type="string"/>
|
13
|
+
<parameter name="notification" mimetype="application/json"/>
|
14
|
+
</choice>
|
15
|
+
</message>
|
16
|
+
|
17
|
+
<message name="vote">
|
18
|
+
<parameter name="type" fixed="vote"/>
|
19
|
+
<parameter name="topic" type="string">
|
20
|
+
<param name="pattern">[\w_/]+</param>
|
21
|
+
</parameter>
|
22
|
+
<parameter name="vote" type="string">
|
23
|
+
<param name="pattern">[\w_]+</param>
|
24
|
+
</parameter>
|
25
|
+
<parameter name="callback" type="string"/>
|
26
|
+
<choice>
|
27
|
+
<parameter name="notification" type="string"/>
|
28
|
+
<parameter name="notification" mimetype="application/json"/>
|
29
|
+
</choice>
|
30
|
+
</message>
|
31
|
+
|
32
|
+
<message name="acknowledgment">
|
33
|
+
<choice>
|
34
|
+
<parameter name="continue" type="string">
|
35
|
+
<choice>
|
36
|
+
<value>true</value>
|
37
|
+
<value>false</value>
|
38
|
+
<value>callback</value>
|
39
|
+
</choice>
|
40
|
+
</parameter>
|
41
|
+
<parameter name="continue" mimetype="text/plain" handler="http://riddl.org/ns/handlers/plain-type">
|
42
|
+
<pattern>^(true|false|callback)$</pattern>
|
43
|
+
</parameter>
|
44
|
+
</choice>
|
45
|
+
</message>
|
46
|
+
|
47
|
+
<resource pattern="http://riddl.org/ns/common-patterns/notifications-consumer/2.0">
|
48
|
+
<post in="event"/>
|
49
|
+
<post in="vote" out="acknowledgment"/>
|
50
|
+
</resource>
|
51
|
+
|
52
|
+
</description>
|
data/riddl.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "riddl"
|
3
|
-
s.version = "0.101.
|
3
|
+
s.version = "0.101.26"
|
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"
|
@@ -15,7 +15,6 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.executables = ['riddlcheck','riddlprocess']
|
16
16
|
s.test_files = Dir['test/tc_*.rb','test/smartrunner.rb']
|
17
17
|
|
18
|
-
|
19
18
|
s.email = 'juergen.mangler@gmail.com'
|
20
19
|
s.authors = ['Juergen \'eTM\' Mangler','Florian \'Solo\' Stertz','Sonja Biedermann']
|
21
20
|
s.email = 'juergen.mangler@gmail.com'
|
@@ -23,7 +22,7 @@ Gem::Specification.new do |s|
|
|
23
22
|
|
24
23
|
s.required_ruby_version = '>=2.2.0'
|
25
24
|
|
26
|
-
s.add_runtime_dependency 'daemonite', '~>0.
|
25
|
+
s.add_runtime_dependency 'daemonite', '~>0.5', '>=0.5.9'
|
27
26
|
s.add_runtime_dependency 'typhoeus', '~>1.3'
|
28
27
|
s.add_runtime_dependency 'xml-smart', '>=0.4.3', '~>0'
|
29
28
|
s.add_runtime_dependency 'rdf-smart', '>=0.0.160', '~>0'
|
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.
|
4
|
+
version: 0.101.26
|
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-
|
13
|
+
date: 2020-10-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: daemonite
|
@@ -18,14 +18,20 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '0.
|
21
|
+
version: '0.5'
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.5.9
|
22
25
|
type: :runtime
|
23
26
|
prerelease: false
|
24
27
|
version_requirements: !ruby/object:Gem::Requirement
|
25
28
|
requirements:
|
26
29
|
- - "~>"
|
27
30
|
- !ruby/object:Gem::Version
|
28
|
-
version: '0.
|
31
|
+
version: '0.5'
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.5.9
|
29
35
|
- !ruby/object:Gem::Dependency
|
30
36
|
name: typhoeus
|
31
37
|
requirement: !ruby/object:Gem::Requirement
|
@@ -441,6 +447,7 @@ files:
|
|
441
447
|
- lib/ruby/riddl/ns/common-patterns/addon-security/response.xml
|
442
448
|
- lib/ruby/riddl/ns/common-patterns/downloadify/1.0/downloadify.xml
|
443
449
|
- lib/ruby/riddl/ns/common-patterns/notifications-consumer/1.0/consumer.xml
|
450
|
+
- lib/ruby/riddl/ns/common-patterns/notifications-consumer/2.0/consumer.xml
|
444
451
|
- lib/ruby/riddl/ns/common-patterns/notifications-producer/1.0/producer.xml
|
445
452
|
- lib/ruby/riddl/ns/common-patterns/notifications-producer/2.0/producer.xml
|
446
453
|
- lib/ruby/riddl/ns/common-patterns/oauth2-univie-app/1.0/app.xml
|
@@ -501,6 +508,7 @@ files:
|
|
501
508
|
- ns/common-patterns/addon-security/response.xml
|
502
509
|
- ns/common-patterns/downloadify/1.0/downloadify.xml
|
503
510
|
- ns/common-patterns/notifications-consumer/1.0/consumer.xml
|
511
|
+
- ns/common-patterns/notifications-consumer/2.0/consumer.xml
|
504
512
|
- ns/common-patterns/notifications-producer/1.0/producer.xml
|
505
513
|
- ns/common-patterns/notifications-producer/2.0/producer.xml
|
506
514
|
- ns/common-patterns/oauth2-univie-app/1.0/app.xml
|