riddl 0.100.5 → 0.100.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/properties/server.properties.schema +7 -7
- data/examples/propnew/description.conf +1 -0
- data/examples/propnew/description.rb +15 -0
- data/examples/propnew/properties.schema.xsl +132 -0
- data/examples/propnew/properties.xml +1 -0
- data/examples/propnew/server.properties.schema +95 -0
- data/examples/propnew/server.properties.xml +16 -0
- data/examples/propnew/test +126 -0
- data/lib/ruby/riddl/client.rb +8 -0
- data/lib/ruby/riddl/ns/common-patterns/properties/1.0/properties.xml +9 -8
- data/lib/ruby/riddl/ns/description/1.0/description.rng +47 -43
- data/lib/ruby/riddl/server.rb +1 -0
- data/lib/ruby/riddl/utils/properties.rb +60 -0
- data/ns/common-patterns/properties/1.0/properties.xml +9 -8
- data/ns/description/1.0/description.rng +47 -43
- data/riddl.gemspec +1 -1
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0dfaffabbc8caecb6ad865f2911d9a09d1cd9166ef6d13fc756d430ec9609eb4
|
4
|
+
data.tar.gz: 8d89bfa9870e6466156b09d01650e323a8737639d8c961ee40cc2c0748c182ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f0d67ad9554f9d59cbc0d67fedc3a8d87372ee4a9cb9a4da8e1587ff6d1aea972820da74f201081e9784b343d8c6136f696234ef939c1fa5621d524aee22399
|
7
|
+
data.tar.gz: 85c548ac1686d1857ceeb8cff4bcec8a0229252955ed4081e287e7c6de67acf6912dccb0e2f5222e0b1b9fa653d52020d91d8597d7a5033e6165785357d5551c
|
@@ -5,12 +5,12 @@
|
|
5
5
|
<handlerwrapper type="simple" modifiable="false" mutable="false">
|
6
6
|
<data type="string">
|
7
7
|
<param name="pattern">[A-Z][a-zA-Z]*</param>
|
8
|
-
</data>
|
8
|
+
</data>
|
9
9
|
</handlerwrapper>
|
10
10
|
<description type="arbitrary" modifiable="false" mutable="false"/>
|
11
11
|
<optional>
|
12
12
|
<transformation type="arbitrary" modifiable="true" mutable="false"/>
|
13
|
-
</optional>
|
13
|
+
</optional>
|
14
14
|
<state type="state" modifiable="true">
|
15
15
|
<running>
|
16
16
|
<stopped putable="true"/>
|
@@ -18,17 +18,17 @@
|
|
18
18
|
</running>
|
19
19
|
<stopped>
|
20
20
|
<running putable="true"/>
|
21
|
-
</stopped>
|
21
|
+
</stopped>
|
22
22
|
<finished/>
|
23
|
-
</state>
|
23
|
+
</state>
|
24
24
|
<dataelements type="complex" modifiable="true" mutable="true">
|
25
25
|
<zeroOrMore>
|
26
26
|
<element><anyName/><text/></element>
|
27
|
-
</zeroOrMore>
|
28
|
-
</dataelements>
|
27
|
+
</zeroOrMore>
|
28
|
+
</dataelements>
|
29
29
|
<endpoints type="complex" modifiable="false" mutable="true">
|
30
30
|
<zeroOrMore>
|
31
31
|
<element><anyName/><text/></element>
|
32
|
-
</zeroOrMore>
|
32
|
+
</zeroOrMore>
|
33
33
|
</endpoints>
|
34
34
|
</properties>
|
@@ -0,0 +1 @@
|
|
1
|
+
:port: 9293
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
require 'pp'
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/server')
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../lib/ruby/riddl/utils/properties')
|
5
|
+
|
6
|
+
Riddl::Server.new(File.dirname(__FILE__) + '/properties.xml') do
|
7
|
+
backend = Riddl::Utils::Properties::Backend.new(
|
8
|
+
@riddl_opts[:basepath] + '/server.properties.schema',
|
9
|
+
@riddl_opts[:basepath] + '/server.properties.xml'
|
10
|
+
)
|
11
|
+
|
12
|
+
on resource do
|
13
|
+
use Riddl::Utils::Properties::implementation(backend)
|
14
|
+
end
|
15
|
+
end.loop!
|
@@ -0,0 +1,132 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<xsl:stylesheet version="1.0" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:p="http://riddl.org/ns/common-patterns/properties/1.0">
|
3
|
+
<xsl:output indent="yes"/>
|
4
|
+
<xsl:strip-space elements="*"/>
|
5
|
+
|
6
|
+
<xsl:template match="/p:properties">
|
7
|
+
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/properties/1.0">
|
8
|
+
|
9
|
+
<start>
|
10
|
+
<element name="properties">
|
11
|
+
<interleave>
|
12
|
+
<xsl:apply-templates select="./*[name()!='optional']"/>
|
13
|
+
<xsl:apply-templates select="p:optional"/>
|
14
|
+
</interleave>
|
15
|
+
</element>
|
16
|
+
</start>
|
17
|
+
|
18
|
+
<define name="xml">
|
19
|
+
<element>
|
20
|
+
<anyName/>
|
21
|
+
<zeroOrMore>
|
22
|
+
<attribute>
|
23
|
+
<anyName/>
|
24
|
+
</attribute>
|
25
|
+
</zeroOrMore>
|
26
|
+
<zeroOrMore>
|
27
|
+
<choice>
|
28
|
+
<text/>
|
29
|
+
<ref name="any"/>
|
30
|
+
</choice>
|
31
|
+
</zeroOrMore>
|
32
|
+
</element>
|
33
|
+
</define>
|
34
|
+
|
35
|
+
</grammar>
|
36
|
+
</xsl:template>
|
37
|
+
|
38
|
+
<xsl:template match="p:optional">
|
39
|
+
<optional>
|
40
|
+
<xsl:apply-templates select="./*[name()!='optional']"/>
|
41
|
+
</optional>
|
42
|
+
</xsl:template>
|
43
|
+
|
44
|
+
<xsl:template mode="special" match="p:attribute">
|
45
|
+
<attribute>
|
46
|
+
<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
|
47
|
+
<xsl:choose>
|
48
|
+
<xsl:when test="@type">
|
49
|
+
<data>
|
50
|
+
<xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
|
51
|
+
<xsl:apply-templates mode="special" select="p:choice"/>
|
52
|
+
</data>
|
53
|
+
</xsl:when>
|
54
|
+
<xsl:otherwise>
|
55
|
+
<xsl:apply-templates mode="special" select="p:choice"/>
|
56
|
+
</xsl:otherwise>
|
57
|
+
</xsl:choose>
|
58
|
+
</attribute>
|
59
|
+
</xsl:template>
|
60
|
+
<xsl:template mode="special" match="p:choice">
|
61
|
+
<choice>
|
62
|
+
<xsl:apply-templates mode="special" select="p:value"/>
|
63
|
+
</choice>
|
64
|
+
</xsl:template>
|
65
|
+
<xsl:template mode="special" match="p:value">
|
66
|
+
<value><xsl:value-of select="text()"/></value>
|
67
|
+
</xsl:template>
|
68
|
+
<xsl:template mode="special" match="p:param">
|
69
|
+
<param>
|
70
|
+
<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
|
71
|
+
<xsl:value-of select="text()"/>
|
72
|
+
</param>
|
73
|
+
</xsl:template>
|
74
|
+
|
75
|
+
<xsl:template match="*[name()!='optional']">
|
76
|
+
<element>
|
77
|
+
|
78
|
+
<xsl:attribute name="name">
|
79
|
+
<xsl:value-of select="name()"/>
|
80
|
+
</xsl:attribute>
|
81
|
+
|
82
|
+
<xsl:if test="@type='xml'">
|
83
|
+
<ref name="xml"/>
|
84
|
+
</xsl:if>
|
85
|
+
|
86
|
+
<xsl:if test="@type='collection'">
|
87
|
+
<xsl:apply-templates select="*"/>
|
88
|
+
</xsl:if>
|
89
|
+
|
90
|
+
<xsl:if test="@type='value'">
|
91
|
+
<xsl:apply-templates mode="special" select="p:attribute"/>
|
92
|
+
<xsl:apply-templates mode="special" select="p:choice"/>
|
93
|
+
<xsl:if test="not(p:choice)">
|
94
|
+
<data type="string"><xsl:apply-templates mode="special" select="p:param"/></data>
|
95
|
+
</xsl:if>
|
96
|
+
</xsl:if>
|
97
|
+
|
98
|
+
<xsl:if test="@type='hash'">
|
99
|
+
<element>
|
100
|
+
<anyName/>
|
101
|
+
<xsl:apply-templates mode="special" select="p:attribute"/>
|
102
|
+
<xsl:apply-templates mode="special" select="p:choice"/>
|
103
|
+
<xsl:if test="not(p:choice)">
|
104
|
+
<data type="string"><xsl:apply-templates mode="special" select="p:param"/></data>
|
105
|
+
</xsl:if>
|
106
|
+
</element>
|
107
|
+
</xsl:if>
|
108
|
+
|
109
|
+
<xsl:if test="@type='state'">
|
110
|
+
<optional>
|
111
|
+
<attribute name="changed">
|
112
|
+
<data type="dateTime"/>
|
113
|
+
</attribute>
|
114
|
+
</optional>
|
115
|
+
<choice>
|
116
|
+
<xsl:for-each select='*'>
|
117
|
+
<value><xsl:value-of select='name()'/></value>
|
118
|
+
</xsl:for-each>
|
119
|
+
</choice>
|
120
|
+
</xsl:if>
|
121
|
+
|
122
|
+
</element>
|
123
|
+
</xsl:template>
|
124
|
+
|
125
|
+
<xsl:template mode="copy-no-ns" match="*">
|
126
|
+
<xsl:element name="{name(.)}">
|
127
|
+
<xsl:copy-of select="@*"/>
|
128
|
+
<xsl:apply-templates mode="copy-no-ns"/>
|
129
|
+
</xsl:element>
|
130
|
+
</xsl:template>
|
131
|
+
|
132
|
+
</xsl:stylesheet>
|
@@ -0,0 +1 @@
|
|
1
|
+
examples/propnew/../../ns/common-patterns/properties/1.0/properties.xml
|
@@ -0,0 +1,95 @@
|
|
1
|
+
<!--
|
2
|
+
This file is part of CPEE.
|
3
|
+
|
4
|
+
CPEE is free software: you can redistribute it and/or modify it under the terms
|
5
|
+
of the GNU General Public License as published by the Free Software Foundation,
|
6
|
+
either version 3 of the License, or (at your option) any later version.
|
7
|
+
|
8
|
+
CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
9
|
+
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
10
|
+
PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
11
|
+
|
12
|
+
You should have received a copy of the GNU General Public License along with
|
13
|
+
CPEE (file COPYING in the main directory). If not, see
|
14
|
+
<http://www.gnu.org/licenses/>.
|
15
|
+
-->
|
16
|
+
|
17
|
+
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
|
18
|
+
<attributes type="hash" modifiable="true"/>
|
19
|
+
<handlerwrapper type="value" modifiable="true">
|
20
|
+
<param name="pattern">[A-Z][a-zA-Z]*</param>
|
21
|
+
</handlerwrapper>
|
22
|
+
<dsl type="value" modifiable="false" mutable="false"/>
|
23
|
+
<dslx type="xml" modifiable="false" mutable="false"/>
|
24
|
+
<description type="xml" modifiable="true"/>
|
25
|
+
<transformation type="collection" modifiable="true">
|
26
|
+
<description type="value">
|
27
|
+
<attribute name='type'>
|
28
|
+
<choice>
|
29
|
+
<value>copy</value>
|
30
|
+
<value>rest</value>
|
31
|
+
<value>xslt</value>
|
32
|
+
<value>clean</value>
|
33
|
+
<value>none</value>
|
34
|
+
</choice>
|
35
|
+
</attribute>
|
36
|
+
</description>
|
37
|
+
<dataelements type="value">
|
38
|
+
<attribute name='type'>
|
39
|
+
<choice>
|
40
|
+
<value>rest</value>
|
41
|
+
<value>xslt</value>
|
42
|
+
<value>clean</value>
|
43
|
+
<value>none</value>
|
44
|
+
</choice>
|
45
|
+
</attribute>
|
46
|
+
</dataelements>
|
47
|
+
<endpoints type="value">
|
48
|
+
<attribute name='type'>
|
49
|
+
<choice>
|
50
|
+
<value>rest</value>
|
51
|
+
<value>xslt</value>
|
52
|
+
<value>clean</value>
|
53
|
+
<value>none</value>
|
54
|
+
</choice>
|
55
|
+
</attribute>
|
56
|
+
</endpoints>
|
57
|
+
</transformation>
|
58
|
+
<state type="state" modifiable="true">
|
59
|
+
<ready>
|
60
|
+
<running putable="true"/>
|
61
|
+
<ready putable="true"/>
|
62
|
+
<simulating putable="true"/>
|
63
|
+
<abandoned putable="true"/>
|
64
|
+
</ready>
|
65
|
+
<running>
|
66
|
+
<stopping putable="true"/>
|
67
|
+
<finishing putable="false"/>
|
68
|
+
<finished putable="false"/>
|
69
|
+
</running>
|
70
|
+
<simulating>
|
71
|
+
<ready putable="false"/>
|
72
|
+
<stopped putable="false"/>
|
73
|
+
</simulating>
|
74
|
+
<stopping>
|
75
|
+
<stopped putable="false"/>
|
76
|
+
</stopping>
|
77
|
+
<stopped>
|
78
|
+
<abandoned putable="true"/>
|
79
|
+
<stopped putable="true"/>
|
80
|
+
<running putable="true"/>
|
81
|
+
<simulating putable="true"/>
|
82
|
+
</stopped>
|
83
|
+
<abandoned/>
|
84
|
+
<finished/>
|
85
|
+
</state>
|
86
|
+
<status type="value" modifiable="false" mutable="false">
|
87
|
+
<attribute name='id' type="integer"/>
|
88
|
+
</status>
|
89
|
+
<positions type="hash" modifiable="true">
|
90
|
+
<attribute name='passthrough' type="string"/>
|
91
|
+
<param name="pattern">(at|after)</param>
|
92
|
+
</positions>
|
93
|
+
<dataelements type="hash" modifiable="true"/>
|
94
|
+
<endpoints type="hash" modifiable="true"/>
|
95
|
+
</properties>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
|
2
|
+
<name>eTM</name>
|
3
|
+
<dataelements>
|
4
|
+
<a>7</a>
|
5
|
+
<b>7</b>
|
6
|
+
<c>foo</c>
|
7
|
+
</dataelements>
|
8
|
+
<endpoints>
|
9
|
+
<e1>http://www.heise.de</e1>
|
10
|
+
<e2>mager</e2>
|
11
|
+
</endpoints>
|
12
|
+
<handlerwrapper>Test</handlerwrapper>
|
13
|
+
<description>lala</description>
|
14
|
+
<state>stopped</state>
|
15
|
+
<transformation>xxx</transformation>
|
16
|
+
</properties>
|
@@ -0,0 +1,126 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:p="http://riddl.org/ns/common-patterns/properties/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://riddl.org/ns/common-patterns/properties/1.0">
|
3
|
+
<start>
|
4
|
+
<element name="properties">
|
5
|
+
<interleave>
|
6
|
+
<element name="attributes">
|
7
|
+
<element>
|
8
|
+
<anyName/>
|
9
|
+
<data type="string"/>
|
10
|
+
</element>
|
11
|
+
</element>
|
12
|
+
<element name="handlerwrapper">
|
13
|
+
<data type="string">
|
14
|
+
<param name="pattern">[A-Z][a-zA-Z]*</param>
|
15
|
+
</data>
|
16
|
+
</element>
|
17
|
+
<element name="dsl">
|
18
|
+
<data type="string"/>
|
19
|
+
</element>
|
20
|
+
<element name="dslx">
|
21
|
+
<ref name="xml"/>
|
22
|
+
</element>
|
23
|
+
<element name="description">
|
24
|
+
<ref name="xml"/>
|
25
|
+
</element>
|
26
|
+
<element name="transformation">
|
27
|
+
<element name="description">
|
28
|
+
<attribute name="type">
|
29
|
+
<choice>
|
30
|
+
<value>copy</value>
|
31
|
+
<value>rest</value>
|
32
|
+
<value>xslt</value>
|
33
|
+
<value>clean</value>
|
34
|
+
<value>none</value>
|
35
|
+
</choice>
|
36
|
+
</attribute>
|
37
|
+
<data type="string"/>
|
38
|
+
</element>
|
39
|
+
<element name="dataelements">
|
40
|
+
<attribute name="type">
|
41
|
+
<choice>
|
42
|
+
<value>rest</value>
|
43
|
+
<value>xslt</value>
|
44
|
+
<value>clean</value>
|
45
|
+
<value>none</value>
|
46
|
+
</choice>
|
47
|
+
</attribute>
|
48
|
+
<data type="string"/>
|
49
|
+
</element>
|
50
|
+
<element name="endpoints">
|
51
|
+
<attribute name="type">
|
52
|
+
<choice>
|
53
|
+
<value>rest</value>
|
54
|
+
<value>xslt</value>
|
55
|
+
<value>clean</value>
|
56
|
+
<value>none</value>
|
57
|
+
</choice>
|
58
|
+
</attribute>
|
59
|
+
<data type="string"/>
|
60
|
+
</element>
|
61
|
+
</element>
|
62
|
+
<element name="state">
|
63
|
+
<optional>
|
64
|
+
<attribute name="changed">
|
65
|
+
<data type="dateTime"/>
|
66
|
+
</attribute>
|
67
|
+
</optional>
|
68
|
+
<choice>
|
69
|
+
<value>ready</value>
|
70
|
+
<value>running</value>
|
71
|
+
<value>simulating</value>
|
72
|
+
<value>stopping</value>
|
73
|
+
<value>stopped</value>
|
74
|
+
<value>abandoned</value>
|
75
|
+
<value>finished</value>
|
76
|
+
</choice>
|
77
|
+
</element>
|
78
|
+
<element name="status">
|
79
|
+
<attribute name="id">
|
80
|
+
<data type="integer"/>
|
81
|
+
</attribute>
|
82
|
+
<data type="string"/>
|
83
|
+
</element>
|
84
|
+
<element name="positions">
|
85
|
+
<element>
|
86
|
+
<anyName/>
|
87
|
+
<attribute name="passthrough">
|
88
|
+
<data type="string"/>
|
89
|
+
</attribute>
|
90
|
+
<data type="string">
|
91
|
+
<param name="pattern">(at|after)</param>
|
92
|
+
</data>
|
93
|
+
</element>
|
94
|
+
</element>
|
95
|
+
<element name="dataelements">
|
96
|
+
<element>
|
97
|
+
<anyName/>
|
98
|
+
<data type="string"/>
|
99
|
+
</element>
|
100
|
+
</element>
|
101
|
+
<element name="endpoints">
|
102
|
+
<element>
|
103
|
+
<anyName/>
|
104
|
+
<data type="string"/>
|
105
|
+
</element>
|
106
|
+
</element>
|
107
|
+
</interleave>
|
108
|
+
</element>
|
109
|
+
</start>
|
110
|
+
<define name="xml">
|
111
|
+
<element>
|
112
|
+
<anyName/>
|
113
|
+
<zeroOrMore>
|
114
|
+
<attribute>
|
115
|
+
<anyName/>
|
116
|
+
</attribute>
|
117
|
+
</zeroOrMore>
|
118
|
+
<zeroOrMore>
|
119
|
+
<choice>
|
120
|
+
<text/>
|
121
|
+
<ref name="any"/>
|
122
|
+
</choice>
|
123
|
+
</zeroOrMore>
|
124
|
+
</element>
|
125
|
+
</define>
|
126
|
+
</grammar>
|
data/lib/ruby/riddl/client.rb
CHANGED
@@ -123,6 +123,7 @@ unless Module.constants.include?('CLIENT_INCLUDED')
|
|
123
123
|
def post(parameters = []); resource.post(parameters); end
|
124
124
|
def simulate_post(parameters = []); resource.simulate_post(parameters); end
|
125
125
|
def put(parameters = []); resource.put(parameters); end
|
126
|
+
def patch(parameters = []); resource.patch(parameters); end
|
126
127
|
def simulate_put(parameters = []); resource.simulate_put(parameters); end
|
127
128
|
def delete(parameters = []); resource.delete(parameters); end
|
128
129
|
def simulate_delete(parameters = []); resource.simulate_delete(parameters); end
|
@@ -183,6 +184,13 @@ unless Module.constants.include?('CLIENT_INCLUDED')
|
|
183
184
|
exec_request('PUT',parameters,true)
|
184
185
|
end #}}}
|
185
186
|
|
187
|
+
def patch(parameters = []) #{{{
|
188
|
+
exec_request('PATCH',parameters,false)
|
189
|
+
end #}}}
|
190
|
+
def simulate_patch(parameters = []) #{{{
|
191
|
+
exec_request('PATCH',parameters,true)
|
192
|
+
end #}}}
|
193
|
+
|
186
194
|
def delete(parameters = []) #{{{
|
187
195
|
exec_request('DELETE',parameters,false)
|
188
196
|
end #}}}
|
@@ -11,7 +11,7 @@
|
|
11
11
|
</element>
|
12
12
|
<element name="not-existing">
|
13
13
|
<empty/>
|
14
|
-
</element>
|
14
|
+
</element>
|
15
15
|
</choice>
|
16
16
|
</start>
|
17
17
|
|
@@ -23,7 +23,7 @@
|
|
23
23
|
</choice>
|
24
24
|
</zeroOrMore>
|
25
25
|
</define>
|
26
|
-
|
26
|
+
|
27
27
|
<define name="any">
|
28
28
|
<element>
|
29
29
|
<anyName/>
|
@@ -71,7 +71,7 @@
|
|
71
71
|
<element name="properties">
|
72
72
|
<zeroOrMore>
|
73
73
|
<ref name="property"/>
|
74
|
-
</zeroOrMore>
|
74
|
+
</zeroOrMore>
|
75
75
|
</element>
|
76
76
|
</start>
|
77
77
|
|
@@ -80,7 +80,7 @@
|
|
80
80
|
<anyName/>
|
81
81
|
<data type="string"/>
|
82
82
|
</element>
|
83
|
-
</define>
|
83
|
+
</define>
|
84
84
|
|
85
85
|
</grammar>
|
86
86
|
</parameter>
|
@@ -89,7 +89,7 @@
|
|
89
89
|
<choice>
|
90
90
|
<parameter name="value" type="string"/>
|
91
91
|
<parameter name="value" mimetype="text/xml"/>
|
92
|
-
</choice>
|
92
|
+
</choice>
|
93
93
|
</message>
|
94
94
|
<message name="updcontent">
|
95
95
|
<choice>
|
@@ -97,7 +97,7 @@
|
|
97
97
|
<parameter name="value" mimetype="text/plain"/>
|
98
98
|
<parameter name="content" mimetype="text/xml"/> <!-- add everything inside the root tag -->
|
99
99
|
<parameter name="content" type="string"/> <!-- add everything inside the root tag -->
|
100
|
-
</choice>
|
100
|
+
</choice>
|
101
101
|
</message>
|
102
102
|
<message name="property">
|
103
103
|
<parameter name="name" type="string">
|
@@ -121,7 +121,7 @@
|
|
121
121
|
<get in="*" out="resource-document-schema"/>
|
122
122
|
<resource relative="rng">
|
123
123
|
<get in="*" out="resource-document-schema"/>
|
124
|
-
</resource>
|
124
|
+
</resource>
|
125
125
|
<resource relative="xsd">
|
126
126
|
<get in="*" out="resource-document-schema"/>
|
127
127
|
</resource>
|
@@ -135,6 +135,7 @@
|
|
135
135
|
<delete in="*"/>
|
136
136
|
<post in="addcontent"/>
|
137
137
|
<put in="updcontent"/>
|
138
|
+
<patch in="updcontent"/>
|
138
139
|
<resource>
|
139
140
|
<get in="*" out="value"/>
|
140
141
|
<put in="updcontent"/>
|
@@ -145,6 +146,6 @@
|
|
145
146
|
</resource>
|
146
147
|
</resource>
|
147
148
|
</resource>
|
148
|
-
</resource>
|
149
|
+
</resource>
|
149
150
|
|
150
151
|
</description>
|
@@ -24,13 +24,13 @@
|
|
24
24
|
<ref name="riddl-description-other-atts"/>
|
25
25
|
<ref name="riddl-transformation"/>
|
26
26
|
</element>
|
27
|
-
</choice>
|
27
|
+
</choice>
|
28
28
|
</zeroOrMore>
|
29
|
-
<element name="resource">
|
29
|
+
<element name="resource">
|
30
30
|
<ref name="riddl-resource-dynamic"/>
|
31
31
|
</element>
|
32
32
|
</define>
|
33
|
-
|
33
|
+
|
34
34
|
<define name="riddl-message">
|
35
35
|
<ref name="riddl-att-name"/>
|
36
36
|
<zeroOrMore>
|
@@ -48,29 +48,29 @@
|
|
48
48
|
<element name="add_header">
|
49
49
|
<oneOrMore>
|
50
50
|
<ref name="riddl-header"/>
|
51
|
-
</oneOrMore>
|
52
|
-
</element>
|
51
|
+
</oneOrMore>
|
52
|
+
</element>
|
53
53
|
<element name="add_as_first">
|
54
54
|
<oneOrMore>
|
55
55
|
<ref name="riddl-parameter"/>
|
56
|
-
</oneOrMore>
|
57
|
-
</element>
|
56
|
+
</oneOrMore>
|
57
|
+
</element>
|
58
58
|
<element name="add_as_last">
|
59
59
|
<oneOrMore>
|
60
60
|
<ref name="riddl-parameter"/>
|
61
|
-
</oneOrMore>
|
62
|
-
</element>
|
61
|
+
</oneOrMore>
|
62
|
+
</element>
|
63
63
|
<element name="add_before">
|
64
64
|
<ref name="riddl-att-name-star"/>
|
65
65
|
<oneOrMore>
|
66
66
|
<ref name="riddl-parameter"/>
|
67
|
-
</oneOrMore>
|
67
|
+
</oneOrMore>
|
68
68
|
</element>
|
69
69
|
<element name="add_after">
|
70
70
|
<ref name="riddl-att-name-star"/>
|
71
71
|
<oneOrMore>
|
72
72
|
<ref name="riddl-parameter"/>
|
73
|
-
</oneOrMore>
|
73
|
+
</oneOrMore>
|
74
74
|
</element>
|
75
75
|
<element name="remove_each">
|
76
76
|
<ref name="riddl-att-col-remove"/>
|
@@ -84,15 +84,15 @@
|
|
84
84
|
</choice>
|
85
85
|
</oneOrMore>
|
86
86
|
</define>
|
87
|
-
|
87
|
+
|
88
88
|
<define name="riddl-header">
|
89
89
|
<element name="header">
|
90
90
|
<ref name="riddl-att-name"/>
|
91
91
|
<choice>
|
92
92
|
<ref name="riddl-fixed"/>
|
93
93
|
<ref name="data"/>
|
94
|
-
</choice>
|
95
|
-
</element>
|
94
|
+
</choice>
|
95
|
+
</element>
|
96
96
|
</define>
|
97
97
|
|
98
98
|
<define name="riddl-message-content">
|
@@ -102,7 +102,7 @@
|
|
102
102
|
<ref name="riddl-optional"/>
|
103
103
|
<ref name="riddl-choice"/>
|
104
104
|
<ref name="riddl-parameter"/>
|
105
|
-
</choice>
|
105
|
+
</choice>
|
106
106
|
</define>
|
107
107
|
<define name="riddl-message-content-trimmed">
|
108
108
|
<choice>
|
@@ -111,7 +111,7 @@
|
|
111
111
|
<ref name="riddl-choice"/>
|
112
112
|
<ref name="riddl-group"/>
|
113
113
|
<ref name="riddl-parameter"/>
|
114
|
-
</choice>
|
114
|
+
</choice>
|
115
115
|
</define>
|
116
116
|
|
117
117
|
<define name="riddl-zeroOrMore">
|
@@ -119,8 +119,8 @@
|
|
119
119
|
<ref name="riddl-description-others"/>
|
120
120
|
<oneOrMore>
|
121
121
|
<ref name="riddl-message-content"/>
|
122
|
-
</oneOrMore>
|
123
|
-
</element>
|
122
|
+
</oneOrMore>
|
123
|
+
</element>
|
124
124
|
</define>
|
125
125
|
<define name="riddl-oneOrMore">
|
126
126
|
<element name="oneOrMore">
|
@@ -128,15 +128,15 @@
|
|
128
128
|
<oneOrMore>
|
129
129
|
<ref name="riddl-message-content"/>
|
130
130
|
</oneOrMore>
|
131
|
-
</element>
|
131
|
+
</element>
|
132
132
|
</define>
|
133
133
|
<define name="riddl-optional">
|
134
134
|
<element name="optional">
|
135
135
|
<ref name="riddl-description-others"/>
|
136
136
|
<oneOrMore>
|
137
137
|
<ref name="riddl-message-content"/>
|
138
|
-
</oneOrMore>
|
139
|
-
</element>
|
138
|
+
</oneOrMore>
|
139
|
+
</element>
|
140
140
|
</define>
|
141
141
|
<define name="riddl-choice">
|
142
142
|
<element name="choice">
|
@@ -152,7 +152,7 @@
|
|
152
152
|
<oneOrMore>
|
153
153
|
<ref name="riddl-message-content"/>
|
154
154
|
</oneOrMore>
|
155
|
-
</element>
|
155
|
+
</element>
|
156
156
|
</define>
|
157
157
|
<define name="riddl-parameter">
|
158
158
|
<element name="parameter">
|
@@ -166,52 +166,52 @@
|
|
166
166
|
<data type="string">
|
167
167
|
<param name="pattern">(([\c]+|\*)/[\c\+]+)|([\c]+/([\c\+]+|\*))|\*</param>
|
168
168
|
</data>
|
169
|
-
</attribute>
|
169
|
+
</attribute>
|
170
170
|
<optional>
|
171
171
|
<attribute name="handler">
|
172
172
|
<data type="anyURI"/>
|
173
|
-
</attribute>
|
173
|
+
</attribute>
|
174
174
|
</optional>
|
175
175
|
<optional>
|
176
176
|
<ref name="any"/>
|
177
|
-
</optional>
|
178
|
-
</group>
|
177
|
+
</optional>
|
178
|
+
</group>
|
179
179
|
</choice>
|
180
180
|
</element>
|
181
|
-
</define>
|
181
|
+
</define>
|
182
182
|
|
183
183
|
<define name="riddl-fixed">
|
184
184
|
<optional>
|
185
185
|
<attribute name="fixed">
|
186
186
|
<data type="string"/>
|
187
187
|
</attribute>
|
188
|
-
</optional>
|
188
|
+
</optional>
|
189
189
|
</define>
|
190
190
|
|
191
191
|
<define name="riddl-resource-attributes">
|
192
192
|
<optional>
|
193
193
|
<attribute name="pattern">
|
194
194
|
<data type="anyURI"/>
|
195
|
-
</attribute>
|
195
|
+
</attribute>
|
196
196
|
</optional>
|
197
197
|
<optional>
|
198
198
|
<attribute name="role">
|
199
199
|
<data type="anyURI"/>
|
200
|
-
</attribute>
|
200
|
+
</attribute>
|
201
201
|
</optional>
|
202
202
|
<ref name="riddl-description-others"/>
|
203
203
|
</define>
|
204
|
-
|
204
|
+
|
205
205
|
<define name="riddl-resource-recursive-choice">
|
206
206
|
<choice>
|
207
207
|
<attribute name="recursive">
|
208
208
|
<data type="boolean"/>
|
209
|
-
</attribute>
|
209
|
+
</attribute>
|
210
210
|
<group>
|
211
211
|
<ref name="riddl-resource-sub"/>
|
212
|
-
</group>
|
213
|
-
</choice>
|
214
|
-
</define>
|
212
|
+
</group>
|
213
|
+
</choice>
|
214
|
+
</define>
|
215
215
|
|
216
216
|
<define name="riddl-resource-dynamic">
|
217
217
|
<ref name="riddl-resource-attributes"/>
|
@@ -226,7 +226,7 @@
|
|
226
226
|
<ref name="riddl-resource-content"/>
|
227
227
|
<ref name="riddl-resource-recursive-choice"/>
|
228
228
|
</define>
|
229
|
-
|
229
|
+
|
230
230
|
<define name="riddl-resource-sub">
|
231
231
|
<!-- One dynamic resources, multiple named ones, before or after the dynamic -->
|
232
232
|
<zeroOrMore>
|
@@ -244,7 +244,7 @@
|
|
244
244
|
<ref name="riddl-resource-named"/>
|
245
245
|
</element>
|
246
246
|
</zeroOrMore>
|
247
|
-
</define>
|
247
|
+
</define>
|
248
248
|
|
249
249
|
<define name="riddl-resource-content">
|
250
250
|
<zeroOrMore>
|
@@ -261,6 +261,10 @@
|
|
261
261
|
<ref name="riddl-atts-request"/>
|
262
262
|
<ref name="riddl-description-others"/>
|
263
263
|
</element>
|
264
|
+
<element name="patch">
|
265
|
+
<ref name="riddl-atts-request"/>
|
266
|
+
<ref name="riddl-description-others"/>
|
267
|
+
</element>
|
264
268
|
<element name="delete">
|
265
269
|
<ref name="riddl-atts-request"/>
|
266
270
|
<ref name="riddl-description-others"/>
|
@@ -269,11 +273,11 @@
|
|
269
273
|
<ref name="riddl-att-method"/>
|
270
274
|
<ref name="riddl-atts-request"/>
|
271
275
|
<ref name="riddl-description-others"/>
|
272
|
-
</element>
|
276
|
+
</element>
|
273
277
|
<element name="websocket">
|
274
278
|
<empty/>
|
275
|
-
</element>
|
276
|
-
</choice>
|
279
|
+
</element>
|
280
|
+
</choice>
|
277
281
|
</zeroOrMore>
|
278
282
|
</define>
|
279
283
|
|
@@ -298,7 +302,7 @@
|
|
298
302
|
</zeroOrMore>
|
299
303
|
</element>
|
300
304
|
</zeroOrMore>
|
301
|
-
</define>
|
305
|
+
</define>
|
302
306
|
|
303
307
|
<define name="riddl-description-other-atts">
|
304
308
|
<zeroOrMore>
|
@@ -312,6 +316,6 @@
|
|
312
316
|
</anyName>
|
313
317
|
</attribute>
|
314
318
|
</zeroOrMore>
|
315
|
-
</define>
|
316
|
-
|
319
|
+
</define>
|
320
|
+
|
317
321
|
</grammar>
|
data/lib/ruby/riddl/server.rb
CHANGED
@@ -361,6 +361,7 @@ module Riddl
|
|
361
361
|
def get(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_message.in && min == @riddl_message.in.name && @riddl_method == 'get' end
|
362
362
|
def delete(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_message.in && min == @riddl_message.in.name && @riddl_method == 'delete' end
|
363
363
|
def put(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_message.in && min == @riddl_message.in.name && @riddl_method == 'put' end
|
364
|
+
def patch(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_message.in && min == @riddl_message.in.name && @riddl_method == 'patch' end
|
364
365
|
def websocket; return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_method == 'websocket' end
|
365
366
|
def resource(rname=nil); return rname.nil? ? '{}' : rname end
|
366
367
|
|
@@ -28,6 +28,7 @@ module Riddl
|
|
28
28
|
run Riddl::Utils::Properties::DelContent, backend, handler if delete
|
29
29
|
run Riddl::Utils::Properties::AddContent, backend, handler if post 'addcontent'
|
30
30
|
run Riddl::Utils::Properties::UpdContent, backend, handler if put 'updcontent'
|
31
|
+
run Riddl::Utils::Properties::PtcContent, backend, handler if patch 'updcontent'
|
31
32
|
on resource do
|
32
33
|
run Riddl::Utils::Properties::GetContent, backend, handler if get
|
33
34
|
run Riddl::Utils::Properties::DelContent, backend, handler if delete
|
@@ -428,6 +429,65 @@ module Riddl
|
|
428
429
|
end
|
429
430
|
end #}}}
|
430
431
|
|
432
|
+
class PtcContent < Riddl::Implementation #{{{
|
433
|
+
def response
|
434
|
+
backend = @a[0]
|
435
|
+
handler = @a[1]
|
436
|
+
|
437
|
+
property = @r[1]
|
438
|
+
value = @p.detect{|p| p.name == 'value'}; value = value.nil? ? value : value.value
|
439
|
+
content = @p.detect{|p| p.name == 'content'}; content = content.nil? ? content : content.value
|
440
|
+
minor = @r[2]
|
441
|
+
|
442
|
+
unless backend.modifiable?(property)
|
443
|
+
@status = 500
|
444
|
+
return # change properties.schema
|
445
|
+
end
|
446
|
+
|
447
|
+
path = "/p:properties/*[name()=\"#{property}\"]#{minor.nil? ? '' : "/p:#{minor}"}"
|
448
|
+
nodes = backend.data.find(path)
|
449
|
+
if nodes.empty?
|
450
|
+
@status = 404
|
451
|
+
return # this property does not exist
|
452
|
+
end
|
453
|
+
|
454
|
+
if backend.is_state?(property)
|
455
|
+
unless backend.valid_state?(property,nodes.first.to_s,value)
|
456
|
+
@status = 404
|
457
|
+
return # not a valid state from here on
|
458
|
+
end
|
459
|
+
end
|
460
|
+
|
461
|
+
newstuff = value.nil? ? XML::Smart.string(content).root.children : value
|
462
|
+
backend.modify do |doc|
|
463
|
+
nodes = doc.root.find(path)
|
464
|
+
nodes.each do |ele|
|
465
|
+
if value.nil?
|
466
|
+
newstuff.each do |child|
|
467
|
+
path = File.basename(child.path)
|
468
|
+
subele = ele.find(path).first
|
469
|
+
if subele
|
470
|
+
subele.replace_by(child)
|
471
|
+
else
|
472
|
+
ele.add(child)
|
473
|
+
end
|
474
|
+
end
|
475
|
+
ele.children.first.attributes['changed'] = Time.now.xmlschema if backend.is_state?(property)
|
476
|
+
else
|
477
|
+
ele.text = newstuff
|
478
|
+
ele.attributes['changed'] = Time.now.xmlschema if backend.is_state?(property)
|
479
|
+
end
|
480
|
+
end
|
481
|
+
end || begin
|
482
|
+
@status = 400
|
483
|
+
return # bad request
|
484
|
+
end
|
485
|
+
|
486
|
+
EM.defer{handler.property(property).update} unless handler.nil?
|
487
|
+
return
|
488
|
+
end
|
489
|
+
end #}}}
|
490
|
+
|
431
491
|
class UpdContent < Riddl::Implementation #{{{
|
432
492
|
def response
|
433
493
|
backend = @a[0]
|
@@ -11,7 +11,7 @@
|
|
11
11
|
</element>
|
12
12
|
<element name="not-existing">
|
13
13
|
<empty/>
|
14
|
-
</element>
|
14
|
+
</element>
|
15
15
|
</choice>
|
16
16
|
</start>
|
17
17
|
|
@@ -23,7 +23,7 @@
|
|
23
23
|
</choice>
|
24
24
|
</zeroOrMore>
|
25
25
|
</define>
|
26
|
-
|
26
|
+
|
27
27
|
<define name="any">
|
28
28
|
<element>
|
29
29
|
<anyName/>
|
@@ -71,7 +71,7 @@
|
|
71
71
|
<element name="properties">
|
72
72
|
<zeroOrMore>
|
73
73
|
<ref name="property"/>
|
74
|
-
</zeroOrMore>
|
74
|
+
</zeroOrMore>
|
75
75
|
</element>
|
76
76
|
</start>
|
77
77
|
|
@@ -80,7 +80,7 @@
|
|
80
80
|
<anyName/>
|
81
81
|
<data type="string"/>
|
82
82
|
</element>
|
83
|
-
</define>
|
83
|
+
</define>
|
84
84
|
|
85
85
|
</grammar>
|
86
86
|
</parameter>
|
@@ -89,7 +89,7 @@
|
|
89
89
|
<choice>
|
90
90
|
<parameter name="value" type="string"/>
|
91
91
|
<parameter name="value" mimetype="text/xml"/>
|
92
|
-
</choice>
|
92
|
+
</choice>
|
93
93
|
</message>
|
94
94
|
<message name="updcontent">
|
95
95
|
<choice>
|
@@ -97,7 +97,7 @@
|
|
97
97
|
<parameter name="value" mimetype="text/plain"/>
|
98
98
|
<parameter name="content" mimetype="text/xml"/> <!-- add everything inside the root tag -->
|
99
99
|
<parameter name="content" type="string"/> <!-- add everything inside the root tag -->
|
100
|
-
</choice>
|
100
|
+
</choice>
|
101
101
|
</message>
|
102
102
|
<message name="property">
|
103
103
|
<parameter name="name" type="string">
|
@@ -121,7 +121,7 @@
|
|
121
121
|
<get in="*" out="resource-document-schema"/>
|
122
122
|
<resource relative="rng">
|
123
123
|
<get in="*" out="resource-document-schema"/>
|
124
|
-
</resource>
|
124
|
+
</resource>
|
125
125
|
<resource relative="xsd">
|
126
126
|
<get in="*" out="resource-document-schema"/>
|
127
127
|
</resource>
|
@@ -135,6 +135,7 @@
|
|
135
135
|
<delete in="*"/>
|
136
136
|
<post in="addcontent"/>
|
137
137
|
<put in="updcontent"/>
|
138
|
+
<patch in="updcontent"/>
|
138
139
|
<resource>
|
139
140
|
<get in="*" out="value"/>
|
140
141
|
<put in="updcontent"/>
|
@@ -145,6 +146,6 @@
|
|
145
146
|
</resource>
|
146
147
|
</resource>
|
147
148
|
</resource>
|
148
|
-
</resource>
|
149
|
+
</resource>
|
149
150
|
|
150
151
|
</description>
|
@@ -24,13 +24,13 @@
|
|
24
24
|
<ref name="riddl-description-other-atts"/>
|
25
25
|
<ref name="riddl-transformation"/>
|
26
26
|
</element>
|
27
|
-
</choice>
|
27
|
+
</choice>
|
28
28
|
</zeroOrMore>
|
29
|
-
<element name="resource">
|
29
|
+
<element name="resource">
|
30
30
|
<ref name="riddl-resource-dynamic"/>
|
31
31
|
</element>
|
32
32
|
</define>
|
33
|
-
|
33
|
+
|
34
34
|
<define name="riddl-message">
|
35
35
|
<ref name="riddl-att-name"/>
|
36
36
|
<zeroOrMore>
|
@@ -48,29 +48,29 @@
|
|
48
48
|
<element name="add_header">
|
49
49
|
<oneOrMore>
|
50
50
|
<ref name="riddl-header"/>
|
51
|
-
</oneOrMore>
|
52
|
-
</element>
|
51
|
+
</oneOrMore>
|
52
|
+
</element>
|
53
53
|
<element name="add_as_first">
|
54
54
|
<oneOrMore>
|
55
55
|
<ref name="riddl-parameter"/>
|
56
|
-
</oneOrMore>
|
57
|
-
</element>
|
56
|
+
</oneOrMore>
|
57
|
+
</element>
|
58
58
|
<element name="add_as_last">
|
59
59
|
<oneOrMore>
|
60
60
|
<ref name="riddl-parameter"/>
|
61
|
-
</oneOrMore>
|
62
|
-
</element>
|
61
|
+
</oneOrMore>
|
62
|
+
</element>
|
63
63
|
<element name="add_before">
|
64
64
|
<ref name="riddl-att-name-star"/>
|
65
65
|
<oneOrMore>
|
66
66
|
<ref name="riddl-parameter"/>
|
67
|
-
</oneOrMore>
|
67
|
+
</oneOrMore>
|
68
68
|
</element>
|
69
69
|
<element name="add_after">
|
70
70
|
<ref name="riddl-att-name-star"/>
|
71
71
|
<oneOrMore>
|
72
72
|
<ref name="riddl-parameter"/>
|
73
|
-
</oneOrMore>
|
73
|
+
</oneOrMore>
|
74
74
|
</element>
|
75
75
|
<element name="remove_each">
|
76
76
|
<ref name="riddl-att-col-remove"/>
|
@@ -84,15 +84,15 @@
|
|
84
84
|
</choice>
|
85
85
|
</oneOrMore>
|
86
86
|
</define>
|
87
|
-
|
87
|
+
|
88
88
|
<define name="riddl-header">
|
89
89
|
<element name="header">
|
90
90
|
<ref name="riddl-att-name"/>
|
91
91
|
<choice>
|
92
92
|
<ref name="riddl-fixed"/>
|
93
93
|
<ref name="data"/>
|
94
|
-
</choice>
|
95
|
-
</element>
|
94
|
+
</choice>
|
95
|
+
</element>
|
96
96
|
</define>
|
97
97
|
|
98
98
|
<define name="riddl-message-content">
|
@@ -102,7 +102,7 @@
|
|
102
102
|
<ref name="riddl-optional"/>
|
103
103
|
<ref name="riddl-choice"/>
|
104
104
|
<ref name="riddl-parameter"/>
|
105
|
-
</choice>
|
105
|
+
</choice>
|
106
106
|
</define>
|
107
107
|
<define name="riddl-message-content-trimmed">
|
108
108
|
<choice>
|
@@ -111,7 +111,7 @@
|
|
111
111
|
<ref name="riddl-choice"/>
|
112
112
|
<ref name="riddl-group"/>
|
113
113
|
<ref name="riddl-parameter"/>
|
114
|
-
</choice>
|
114
|
+
</choice>
|
115
115
|
</define>
|
116
116
|
|
117
117
|
<define name="riddl-zeroOrMore">
|
@@ -119,8 +119,8 @@
|
|
119
119
|
<ref name="riddl-description-others"/>
|
120
120
|
<oneOrMore>
|
121
121
|
<ref name="riddl-message-content"/>
|
122
|
-
</oneOrMore>
|
123
|
-
</element>
|
122
|
+
</oneOrMore>
|
123
|
+
</element>
|
124
124
|
</define>
|
125
125
|
<define name="riddl-oneOrMore">
|
126
126
|
<element name="oneOrMore">
|
@@ -128,15 +128,15 @@
|
|
128
128
|
<oneOrMore>
|
129
129
|
<ref name="riddl-message-content"/>
|
130
130
|
</oneOrMore>
|
131
|
-
</element>
|
131
|
+
</element>
|
132
132
|
</define>
|
133
133
|
<define name="riddl-optional">
|
134
134
|
<element name="optional">
|
135
135
|
<ref name="riddl-description-others"/>
|
136
136
|
<oneOrMore>
|
137
137
|
<ref name="riddl-message-content"/>
|
138
|
-
</oneOrMore>
|
139
|
-
</element>
|
138
|
+
</oneOrMore>
|
139
|
+
</element>
|
140
140
|
</define>
|
141
141
|
<define name="riddl-choice">
|
142
142
|
<element name="choice">
|
@@ -152,7 +152,7 @@
|
|
152
152
|
<oneOrMore>
|
153
153
|
<ref name="riddl-message-content"/>
|
154
154
|
</oneOrMore>
|
155
|
-
</element>
|
155
|
+
</element>
|
156
156
|
</define>
|
157
157
|
<define name="riddl-parameter">
|
158
158
|
<element name="parameter">
|
@@ -166,52 +166,52 @@
|
|
166
166
|
<data type="string">
|
167
167
|
<param name="pattern">(([\c]+|\*)/[\c\+]+)|([\c]+/([\c\+]+|\*))|\*</param>
|
168
168
|
</data>
|
169
|
-
</attribute>
|
169
|
+
</attribute>
|
170
170
|
<optional>
|
171
171
|
<attribute name="handler">
|
172
172
|
<data type="anyURI"/>
|
173
|
-
</attribute>
|
173
|
+
</attribute>
|
174
174
|
</optional>
|
175
175
|
<optional>
|
176
176
|
<ref name="any"/>
|
177
|
-
</optional>
|
178
|
-
</group>
|
177
|
+
</optional>
|
178
|
+
</group>
|
179
179
|
</choice>
|
180
180
|
</element>
|
181
|
-
</define>
|
181
|
+
</define>
|
182
182
|
|
183
183
|
<define name="riddl-fixed">
|
184
184
|
<optional>
|
185
185
|
<attribute name="fixed">
|
186
186
|
<data type="string"/>
|
187
187
|
</attribute>
|
188
|
-
</optional>
|
188
|
+
</optional>
|
189
189
|
</define>
|
190
190
|
|
191
191
|
<define name="riddl-resource-attributes">
|
192
192
|
<optional>
|
193
193
|
<attribute name="pattern">
|
194
194
|
<data type="anyURI"/>
|
195
|
-
</attribute>
|
195
|
+
</attribute>
|
196
196
|
</optional>
|
197
197
|
<optional>
|
198
198
|
<attribute name="role">
|
199
199
|
<data type="anyURI"/>
|
200
|
-
</attribute>
|
200
|
+
</attribute>
|
201
201
|
</optional>
|
202
202
|
<ref name="riddl-description-others"/>
|
203
203
|
</define>
|
204
|
-
|
204
|
+
|
205
205
|
<define name="riddl-resource-recursive-choice">
|
206
206
|
<choice>
|
207
207
|
<attribute name="recursive">
|
208
208
|
<data type="boolean"/>
|
209
|
-
</attribute>
|
209
|
+
</attribute>
|
210
210
|
<group>
|
211
211
|
<ref name="riddl-resource-sub"/>
|
212
|
-
</group>
|
213
|
-
</choice>
|
214
|
-
</define>
|
212
|
+
</group>
|
213
|
+
</choice>
|
214
|
+
</define>
|
215
215
|
|
216
216
|
<define name="riddl-resource-dynamic">
|
217
217
|
<ref name="riddl-resource-attributes"/>
|
@@ -226,7 +226,7 @@
|
|
226
226
|
<ref name="riddl-resource-content"/>
|
227
227
|
<ref name="riddl-resource-recursive-choice"/>
|
228
228
|
</define>
|
229
|
-
|
229
|
+
|
230
230
|
<define name="riddl-resource-sub">
|
231
231
|
<!-- One dynamic resources, multiple named ones, before or after the dynamic -->
|
232
232
|
<zeroOrMore>
|
@@ -244,7 +244,7 @@
|
|
244
244
|
<ref name="riddl-resource-named"/>
|
245
245
|
</element>
|
246
246
|
</zeroOrMore>
|
247
|
-
</define>
|
247
|
+
</define>
|
248
248
|
|
249
249
|
<define name="riddl-resource-content">
|
250
250
|
<zeroOrMore>
|
@@ -261,6 +261,10 @@
|
|
261
261
|
<ref name="riddl-atts-request"/>
|
262
262
|
<ref name="riddl-description-others"/>
|
263
263
|
</element>
|
264
|
+
<element name="patch">
|
265
|
+
<ref name="riddl-atts-request"/>
|
266
|
+
<ref name="riddl-description-others"/>
|
267
|
+
</element>
|
264
268
|
<element name="delete">
|
265
269
|
<ref name="riddl-atts-request"/>
|
266
270
|
<ref name="riddl-description-others"/>
|
@@ -269,11 +273,11 @@
|
|
269
273
|
<ref name="riddl-att-method"/>
|
270
274
|
<ref name="riddl-atts-request"/>
|
271
275
|
<ref name="riddl-description-others"/>
|
272
|
-
</element>
|
276
|
+
</element>
|
273
277
|
<element name="websocket">
|
274
278
|
<empty/>
|
275
|
-
</element>
|
276
|
-
</choice>
|
279
|
+
</element>
|
280
|
+
</choice>
|
277
281
|
</zeroOrMore>
|
278
282
|
</define>
|
279
283
|
|
@@ -298,7 +302,7 @@
|
|
298
302
|
</zeroOrMore>
|
299
303
|
</element>
|
300
304
|
</zeroOrMore>
|
301
|
-
</define>
|
305
|
+
</define>
|
302
306
|
|
303
307
|
<define name="riddl-description-other-atts">
|
304
308
|
<zeroOrMore>
|
@@ -312,6 +316,6 @@
|
|
312
316
|
</anyName>
|
313
317
|
</attribute>
|
314
318
|
</zeroOrMore>
|
315
|
-
</define>
|
316
|
-
|
319
|
+
</define>
|
320
|
+
|
317
321
|
</grammar>
|
data/riddl.gemspec
CHANGED
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.100.
|
4
|
+
version: 0.100.6
|
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: 2019-
|
13
|
+
date: 2019-03-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: daemonite
|
@@ -392,6 +392,13 @@ files:
|
|
392
392
|
- examples/properties/properties.xml
|
393
393
|
- examples/properties/server.properties.schema
|
394
394
|
- examples/properties/server.properties.xml
|
395
|
+
- examples/propnew/description.conf
|
396
|
+
- examples/propnew/description.rb
|
397
|
+
- examples/propnew/properties.schema.xsl
|
398
|
+
- examples/propnew/properties.xml
|
399
|
+
- examples/propnew/server.properties.schema
|
400
|
+
- examples/propnew/server.properties.xml
|
401
|
+
- examples/propnew/test
|
395
402
|
- examples/twitter/README
|
396
403
|
- examples/twitter/client.rb
|
397
404
|
- examples/twitter/declaration.xml
|