riddl 0.101.24 → 0.105
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.
- checksums.yaml +4 -4
- data/examples/declaration-server-distributed/declaration.rb +1 -1
- data/examples/declaration-server-distributed/declaration.xml +4 -4
- data/examples/declaration-server-distributed/main.rb +4 -4
- data/examples/declaration-server-distributed/properties.rb +5 -5
- data/examples/declaration-server-distributed/xsloverlay.rb +1 -1
- data/examples/declaration-server-hybrid/declaration.rb +6 -6
- data/examples/declaration-server-hybrid/declaration.xml +2 -2
- data/examples/declaration-server-hybrid/xsloverlay.rb +1 -1
- data/examples/declaration-server-local/declaration.rb +5 -5
- data/examples/declaration-test/main.rb +5 -5
- data/examples/downloadify/client.rb +1 -1
- data/examples/downloadify/server.rb +2 -2
- data/examples/flickr/declaration.xml +1 -1
- data/examples/helloworld/declaration-definition_goal.xml +1 -3
- data/examples/helloworld/description.xml +5 -7
- data/examples/library/description.xml +5 -5
- data/examples/library/server.rb +1 -1
- data/examples/notifications/producer.rb +3 -3
- data/examples/properties/server.properties.xml +1 -1
- data/lib/ruby/riddl/handlers/plain-type.rb +7 -6
- data/lib/ruby/riddl/ns/common-patterns/notifications-consumer/2.0/consumer.xml +12 -12
- data/lib/ruby/riddl/protocols/http/parser.rb +12 -5
- data/lib/ruby/riddl/server.rb +11 -1
- data/lib/ruby/riddl/wrapper.rb +12 -5
- data/ns/common-patterns/notifications-consumer/2.0/consumer.xml +12 -12
- data/riddl.gemspec +3 -3
- data/test/smartrunner.rb +21 -14
- data/test/tc_declaration-distributed.rb +1 -0
- data/test/tc_websocket.rb +16 -15
- metadata +8 -19
- data/examples/properties/properties.schema.xsl +0 -1
- data/examples/xmpp/blather/description.xml +0 -981
- data/examples/xmpp/blather/direct.rb +0 -44
- data/examples/xmpp/blather/load.rb +0 -18
- data/examples/xmpp/blather/pp.rb +0 -40
- data/examples/xmpp/blather/test.rb +0 -32
- data/examples/xmpp/client.rb +0 -20
- data/examples/xmpp/description.rb +0 -17
- data/examples/xmpp/properties.xml +0 -1
- data/examples/xmpp/server.properties.schema +0 -34
- data/examples/xmpp/server.properties.xml +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a9281315099f1f79cb26e07966c0b5ca62e1b453212d14bb1bc0dfb7fdc8e10
|
4
|
+
data.tar.gz: c8ecbfea56bb9ef33309fac83d12be4903c0542dfefca7f65b1743d092816b45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0d30308234141020cc251d1f9031b4f70c95aeb20b95d6f16a06f6d918ff939c2166926825d3ec50c5de98eae20e23e324d5568f51a73412ae40f53d1d0b551
|
7
|
+
data.tar.gz: 87cab038380f1e5a7414c8444b7bc836db31ed9007f4bf8c5a7cef32e5a4e821c4633bad4a4fcdcb107c024951bd54bab7550a238dca314f2f5c8962fd42dd0f
|
@@ -1,4 +1,4 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/server')
|
3
3
|
|
4
|
-
Riddl::Server.new(File.dirname(__FILE__) + '/declaration.xml', :port =>
|
4
|
+
Riddl::Server.new(File.dirname(__FILE__) + '/declaration.xml', :port => 9004).loop!
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<declaration xmlns="http://riddl.org/ns/declaration/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
|
2
|
-
<interface name="main" location="http://localhost:
|
2
|
+
<interface name="main" location="http://localhost:9003">
|
3
3
|
<xi:include href="main.xml"/>
|
4
4
|
</interface>
|
5
|
-
<interface name="properties" location="http://localhost:
|
5
|
+
<interface name="properties" location="http://localhost:9002">
|
6
6
|
<xi:include href="properties.xml"/>
|
7
7
|
</interface>
|
8
|
-
<interface name="xsloverlay" location='http://localhost:
|
8
|
+
<interface name="xsloverlay" location='http://localhost:9001'>
|
9
9
|
<xi:include href="xsloverlay.xml"/>
|
10
|
-
</interface>
|
10
|
+
</interface>
|
11
11
|
|
12
12
|
<facade>
|
13
13
|
<tile>
|
@@ -20,16 +20,16 @@ class Info < Riddl::Implementation
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
Riddl::Server.new(File.dirname(__FILE__) + '/main.xml', :port =>
|
23
|
+
Riddl::Server.new(File.dirname(__FILE__) + '/main.xml', :port => 9003) do
|
24
24
|
on resource do
|
25
25
|
run Riddl::Utils::FileServe, 'instances/instances.xml' if get '*'
|
26
26
|
on resource do
|
27
27
|
run Info if get
|
28
|
-
end
|
28
|
+
end
|
29
29
|
on resource 'xsls' do
|
30
30
|
on resource do
|
31
31
|
run Riddl::Utils::FileServe, "xsls" if get
|
32
|
-
end
|
33
|
-
end
|
32
|
+
end
|
33
|
+
end
|
34
34
|
end
|
35
35
|
end.loop!
|
@@ -3,17 +3,17 @@ require 'pp'
|
|
3
3
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/server')
|
4
4
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/utils/properties')
|
5
5
|
|
6
|
-
Riddl::Server.new(File.dirname(__FILE__) + '/properties.xml', :port =>
|
6
|
+
Riddl::Server.new(File.dirname(__FILE__) + '/properties.xml', :port => 9002) do
|
7
7
|
on resource do |r|
|
8
8
|
### header RIDDL_DECLARATION_PATH holds the full path used in the declaration
|
9
9
|
### from there we get the instance, which is not present in the path used for properties
|
10
10
|
properties = if r[:h]['RIDDL_DECLARATION_PATH']
|
11
11
|
@riddl_opts[:basepath] + '/instances/' + r[:h]['RIDDL_DECLARATION_PATH'].split('/')[1] + '/properties.xml'
|
12
|
-
else
|
12
|
+
else
|
13
13
|
@riddl_opts[:basepath] + '/instances/1/properties.xml'
|
14
|
-
end
|
15
|
-
backend = Riddl::Utils::Properties::Backend.new(
|
16
|
-
@riddl_opts[:basepath] + '/instances/properties.schema',
|
14
|
+
end
|
15
|
+
backend = Riddl::Utils::Properties::Backend.new(
|
16
|
+
@riddl_opts[:basepath] + '/instances/properties.schema',
|
17
17
|
properties
|
18
18
|
)
|
19
19
|
|
@@ -3,7 +3,7 @@ require 'pp'
|
|
3
3
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/server')
|
4
4
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/utils/xsloverlay')
|
5
5
|
|
6
|
-
Riddl::Server.new(File.dirname(__FILE__) + '/xsloverlay.xml', :port =>
|
6
|
+
Riddl::Server.new(File.dirname(__FILE__) + '/xsloverlay.xml', :port => 9001) do
|
7
7
|
on resource do
|
8
8
|
run Riddl::Utils::XSLOverlay, "/xsls/instances.xsl" if get && declaration_resource == '/'
|
9
9
|
run Riddl::Utils::XSLOverlay, "/xsls/info.xsl" if get && declaration_resource == '/{}'
|
@@ -21,25 +21,25 @@ class Info < Riddl::Implementation
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
Riddl::Server.new(File.dirname(__FILE__) + '/declaration.xml', :port =>
|
24
|
+
Riddl::Server.new(File.dirname(__FILE__) + '/declaration.xml', :port => 9002) do
|
25
25
|
accessible_description true
|
26
26
|
|
27
27
|
interface 'main' do
|
28
28
|
run Riddl::Utils::FileServe, 'instances/instances.xml' if get '*'
|
29
29
|
on resource do
|
30
30
|
run Info if get
|
31
|
-
end
|
31
|
+
end
|
32
32
|
on resource 'xsls' do
|
33
33
|
on resource do
|
34
34
|
run Riddl::Utils::FileServe, "xsls" if get
|
35
|
-
end
|
36
|
-
end
|
35
|
+
end
|
36
|
+
end
|
37
37
|
end
|
38
38
|
|
39
39
|
interface 'properties' do |r|
|
40
40
|
properties = @riddl_opts[:basepath] + '/instances/' + r[:h]['RIDDL_DECLARATION_PATH'].split('/')[1] + '/properties.xml'
|
41
|
-
backend = Riddl::Utils::Properties::Backend.new(
|
42
|
-
@riddl_opts[:basepath] + '/instances/properties.schema',
|
41
|
+
backend = Riddl::Utils::Properties::Backend.new(
|
42
|
+
@riddl_opts[:basepath] + '/instances/properties.schema',
|
43
43
|
properties
|
44
44
|
)
|
45
45
|
|
@@ -5,9 +5,9 @@
|
|
5
5
|
<interface name="properties">
|
6
6
|
<xi:include href="properties.xml"/>
|
7
7
|
</interface>
|
8
|
-
<interface name="xsloverlay" location='http://localhost:
|
8
|
+
<interface name="xsloverlay" location='http://localhost:9001'>
|
9
9
|
<xi:include href="xsloverlay.xml"/>
|
10
|
-
</interface>
|
10
|
+
</interface>
|
11
11
|
|
12
12
|
<facade>
|
13
13
|
<tile>
|
@@ -3,7 +3,7 @@ require 'pp'
|
|
3
3
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/server')
|
4
4
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/utils/xsloverlay')
|
5
5
|
|
6
|
-
Riddl::Server.new(File.dirname(__FILE__) + '/xsloverlay.xml', :port =>
|
6
|
+
Riddl::Server.new(File.dirname(__FILE__) + '/xsloverlay.xml', :port => 9001) do
|
7
7
|
# accessible_description true
|
8
8
|
|
9
9
|
on resource do
|
@@ -5,12 +5,12 @@ require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/utils/p
|
|
5
5
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/utils/xsloverlay')
|
6
6
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/utils/fileserve')
|
7
7
|
|
8
|
-
Riddl::Server.new(File.dirname(__FILE__) + '/declaration.xml', :port =>
|
8
|
+
Riddl::Server.new(File.dirname(__FILE__) + '/declaration.xml', :port => 9001) do
|
9
9
|
accessible_description true
|
10
10
|
|
11
|
-
backend = Riddl::Utils::Properties::Backend.new(
|
12
|
-
@riddl_opts[:basepath] + '/server.properties.schema',
|
13
|
-
@riddl_opts[:basepath] + '/server.properties.xml'
|
11
|
+
backend = Riddl::Utils::Properties::Backend.new(
|
12
|
+
@riddl_opts[:basepath] + '/server.properties.schema',
|
13
|
+
@riddl_opts[:basepath] + '/server.properties.xml'
|
14
14
|
)
|
15
15
|
|
16
16
|
interface 'main' do
|
@@ -20,7 +20,7 @@ Riddl::Server.new(File.dirname(__FILE__) + '/declaration.xml', :port => 9292) do
|
|
20
20
|
interface 'xsls' do |r|
|
21
21
|
on resource do
|
22
22
|
run Riddl::Utils::FileServe, "xsls" if get
|
23
|
-
end
|
23
|
+
end
|
24
24
|
end
|
25
25
|
|
26
26
|
interface 'xsloverlay' do
|
@@ -7,24 +7,24 @@ class A < Riddl::Implementation
|
|
7
7
|
def response
|
8
8
|
Riddl::Parameter::Simple.new("x","1")
|
9
9
|
end
|
10
|
-
end
|
10
|
+
end
|
11
11
|
class B < Riddl::Implementation
|
12
12
|
def response
|
13
13
|
Riddl::Parameter::Simple.new("y","1")
|
14
14
|
end
|
15
|
-
end
|
15
|
+
end
|
16
16
|
class C < Riddl::Implementation
|
17
17
|
def response
|
18
18
|
Riddl::Parameter::Simple.new("z","1")
|
19
19
|
end
|
20
|
-
end
|
20
|
+
end
|
21
21
|
class S < Riddl::Implementation
|
22
22
|
def response
|
23
23
|
@p # return input parameters unchanged
|
24
24
|
end
|
25
|
-
end
|
25
|
+
end
|
26
26
|
|
27
|
-
Riddl::Server.new("main.xml", :port =>
|
27
|
+
Riddl::Server.new("main.xml", :port => 9001) do
|
28
28
|
process_out false
|
29
29
|
logger Riddl::CommonLogger.new("Main","main.log")
|
30
30
|
on resource do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/server')
|
3
3
|
|
4
|
-
srv = Riddl::Client.interface("http://localhost:
|
4
|
+
srv = Riddl::Client.interface("http://localhost:9001","server.declaration.xml")
|
5
5
|
|
6
6
|
status, ret = srv.resource('/test.txt').post [
|
7
7
|
Riddl::Parameter::Simple.new("mimetype","text/plain"),
|
@@ -2,13 +2,13 @@
|
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/server')
|
3
3
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/downloadify')
|
4
4
|
|
5
|
-
Riddl::Server.new(::File.dirname(__FILE__) + '/server.declaration.xml', :port =>
|
5
|
+
Riddl::Server.new(::File.dirname(__FILE__) + '/server.declaration.xml', :port => 9001) do
|
6
6
|
accessible_description true
|
7
7
|
|
8
8
|
interface "main" do
|
9
9
|
end
|
10
10
|
|
11
|
-
interface "downloadify" do
|
11
|
+
interface "downloadify" do
|
12
12
|
on resource do
|
13
13
|
run Riddl::Utils::Downloadify if get 'dfin'
|
14
14
|
run Riddl::Utils::Downloadify if post 'dfin'
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<interface name="main" location="http://api.flickr.com/services">
|
3
3
|
<xi:include href="Flickr/flickr.xml"/>
|
4
4
|
</interface>
|
5
|
-
<interface name="exif" location="http://localhost:
|
5
|
+
<interface name="exif" location="http://localhost:9001">
|
6
6
|
<xi:include href="Exif/exif.xml"/>
|
7
7
|
</interface>
|
8
8
|
|
@@ -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>
|
data/examples/library/server.rb
CHANGED
@@ -34,7 +34,7 @@ class BookDescription < Riddl::Implementation
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
-
Riddl::Server.new(File.dirname(__FILE__) + '/description.xml', :port =>
|
37
|
+
Riddl::Server.new(File.dirname(__FILE__) + '/description.xml', :port => 9001, :bind => '::') do
|
38
38
|
accessible_description true
|
39
39
|
|
40
40
|
on resource do
|
@@ -3,7 +3,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/server'
|
|
3
3
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/utils/fileserve')
|
4
4
|
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/utils/notifications_producer')
|
5
5
|
|
6
|
-
Riddl::Server.new(::File.dirname(__FILE__) + '/producer.declaration.xml', :port =>
|
6
|
+
Riddl::Server.new(::File.dirname(__FILE__) + '/producer.declaration.xml', :port => 9001) do
|
7
7
|
accessible_description true
|
8
8
|
backend = Riddl::Utils::Notifications::Producer::Backend.new(
|
9
9
|
::File.dirname(__FILE__) + '/topics.xml',
|
@@ -14,7 +14,7 @@ Riddl::Server.new(::File.dirname(__FILE__) + '/producer.declaration.xml', :port
|
|
14
14
|
run Riddl::Utils::FileServe, "implementation/index.html" if get
|
15
15
|
on resource 'oliver' do
|
16
16
|
run Riddl::Utils::FileServe, "implementation/oliver.html" if get
|
17
|
-
end
|
17
|
+
end
|
18
18
|
on resource 'juergen' do
|
19
19
|
run Riddl::Utils::FileServe, "implementation/juergen.html" if get
|
20
20
|
end
|
@@ -22,5 +22,5 @@ Riddl::Server.new(::File.dirname(__FILE__) + '/producer.declaration.xml', :port
|
|
22
22
|
|
23
23
|
interface 'main' do |r|
|
24
24
|
use Riddl::Utils::Notifications::Producer::implementation(backend,nil,@riddl_opts[:mode])
|
25
|
-
end
|
25
|
+
end
|
26
26
|
end.loop!
|
@@ -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
|
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)
|
@@ -30,18 +30,18 @@
|
|
30
30
|
</message>
|
31
31
|
|
32
32
|
<message name="acknowledgment">
|
33
|
-
<
|
34
|
-
<
|
35
|
-
<
|
36
|
-
<
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
<
|
43
|
-
</
|
44
|
-
</
|
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
45
|
</message>
|
46
46
|
|
47
47
|
<resource pattern="http://riddl.org/ns/common-patterns/notifications-consumer/2.0">
|
@@ -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
|