riddl 0.101.6 → 0.101.12

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: 95ac699f285362fb3002c4635b8ffdf28a92404631d217e0ae0d80bfc7a28b8c
4
- data.tar.gz: bf30ebb19e885a24d133fada81fe7f8c6bb52f7761b060af10372f934ebad8d8
3
+ metadata.gz: 109e837b2ce174314da92efbd082962a6e3fb73e7a165bf5067808986d220b41
4
+ data.tar.gz: c04560d8388c750139cc45e972e5fb8da06ffe04db6eee5d6416a0e776231712
5
5
  SHA512:
6
- metadata.gz: 02aa2d45d6f6191e9b0460e22fa4c555e6a85bd674276ac355b29ab052242fbc23675d273dd29a98cf54039bedaadc7d5ed0c7128fa7040ec73c729ed9fe96fc
7
- data.tar.gz: a3fb8861f04553eaacc6edf3dbc8438f0b5e0f821acebb43fc4f8fcb13732552ac2da374e9a3b917b5671bc4f8d6ed58c3983c6501be454206ffadd7a19aa4b3
6
+ metadata.gz: 99bad479ea3a0286e7a23987c2d7ba9c3dd7e539f6291754ff60e171192cda653e79010da8e8b4c6f6cc46f36dd145c6840617961d62964e94659e0c35e11068
7
+ data.tar.gz: 4386b196c4521963f2224b4cb95e94bc1b77a9b8388f33534e9805cca69b53d74dfa280322fae7e668d19e73511acb12f7bbefe33156ea1175ca9d0acac8d14f
@@ -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)
@@ -63,7 +63,8 @@ module Riddl
63
63
  RIDDL_DESCRIPTION_SHOW = "#{File.dirname(__FILE__)}/ns/common-patterns/riddl-description/show.xml"
64
64
  RIDDL_DESCRIPTION_RESOURCE_SHOW = "#{File.dirname(__FILE__)}/ns/common-patterns/riddl-description/resource-show.xml"
65
65
  COMMON = "datatypeLibrary=\"http://www.w3.org/2001/XMLSchema-datatypes\" xmlns=\"#{DESCRIPTION}\" xmlns:xi=\"http://www.w3.org/2001/XInclude\""
66
- CHECK = "<element name=\"check\" datatypeLibrary=\"http://www.w3.org/2001/XMLSchema-datatypes\" xmlns=\"http://relaxng.org/ns/structure/1.0\"><data/></element>"
66
+ CHECK_DATA = "<element name=\"check\" datatypeLibrary=\"http://www.w3.org/2001/XMLSchema-datatypes\" xmlns=\"http://relaxng.org/ns/structure/1.0\"><data/></element>"
67
+ CHECK_CHOICE = "<element name=\"check\" datatypeLibrary=\"http://www.w3.org/2001/XMLSchema-datatypes\" xmlns=\"http://relaxng.org/ns/structure/1.0\"></element>"
67
68
  #}}}
68
69
 
69
70
  def initialize(name,get_description=false)
@@ -195,14 +195,14 @@ module Riddl
195
195
  type = XML::Smart::string(CHECK_CHOICE)
196
196
  data = type.root
197
197
  else
198
- type = XML::Smart::string(CHECK)
198
+ type = XML::Smart::string(CHECK_DATA)
199
199
  data = type.root.children[0]
200
200
  data.attributes['type'] = a.attributes['type']
201
201
  end
202
202
  a.children.each do |e|
203
203
  unless e.class == XML::Smart::Dom::Text
204
- e.namespaces.delete_all!
205
- e.find('.//*').each{ |x| x.namespaces.delete_all! }
204
+ e = e.to_doc.root
205
+ e.namespaces[nil] = 'http://relaxng.org/ns/structure/1.0'
206
206
  data.add e
207
207
  end
208
208
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "riddl"
3
- s.version = "0.101.6"
3
+ s.version = "0.101.12"
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"
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
 
26
26
  s.add_runtime_dependency 'daemonite', '~>0.2'
27
27
  s.add_runtime_dependency 'typhoeus', '~>1.3'
28
- s.add_runtime_dependency 'xml-smart', '>=0.3.6', '~>0'
28
+ s.add_runtime_dependency 'xml-smart', '>=0.4.3', '~>0'
29
29
  s.add_runtime_dependency 'rdf-smart', '>=0.0.160', '~>0'
30
30
  s.add_runtime_dependency 'rack', '~>2.2'
31
31
  s.add_runtime_dependency 'thin', '~>1.6'
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.6
4
+ version: 0.101.12
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-05-22 00:00:00.000000000 Z
13
+ date: 2020-06-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: daemonite
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.3.6
49
+ version: 0.4.3
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '0'
@@ -56,7 +56,7 @@ dependencies:
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 0.3.6
59
+ version: 0.4.3
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'