asir_xml 1.1.11 → 1.1.12
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 +15 -0
- data/.jrubyrc +1 -0
- data/.travis.yml +4 -0
- data/asir_xml.gemspec +8 -2
- data/example/example_helper.rb +9 -3
- data/jdom/jdom-2.0.5.jar +0 -0
- data/lib/asir/coder/xml.rb +4 -4
- data/lib/asir/coder/xml/parser.rb +92 -0
- data/lib/asir_xml/version.rb +1 -1
- data/spec/example_spec.rb +8 -1
- metadata +12 -27
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NzljMzM4OWRlYzlmYTg4ZjZlODRlYmU5OTNlOGQ4OWI5ZWVlOWJlMA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NDgyNTk0ZjZiZmUxZDM4ODI4YmI0NTFmY2UwOWMwMDc5MzRjZjgyMQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YTMyZDYyODhhNDI5MGFjOTg2NmQzZDE1NjVlOGJjMmI2YzEwNmE0ZDNlNzM2
|
10
|
+
NDE3YzZhOGNhMWQwMzFmYjZhNmMzZTEwMjA4NjgwYTllMzk5MzYyNmI0ZjI0
|
11
|
+
MjNiYTE5NjQyNjk1ZjU1MTE2ODY3NDc4MmEyMDcxNzdmNjJlMDA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ODRiOTQ3NTE3NzkxZjJmZjc2YTI1N2U1MmQ5M2I1MmExNTk3YzEwYWExZDJl
|
14
|
+
OGQxY2U0YTQ2MTNmODdmODY3MDcwMDVmOWVhYWI0MjliM2FkYTljOGUwZTUx
|
15
|
+
OTAyYTI3MTczYWRiNmRlODJlZjViNWYyZjE3YTBhYjlmZGU5NTc=
|
data/.jrubyrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
-Xcext.enabled=true
|
data/.travis.yml
CHANGED
data/asir_xml.gemspec
CHANGED
@@ -18,9 +18,15 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
20
|
gem.add_dependency "asir", ">= 1.1.10"
|
21
|
-
|
21
|
+
|
22
|
+
case (RUBY_PLATFORM rescue "UNKNOWN")
|
23
|
+
when /java/i
|
24
|
+
gem.add_development_dependency 'spoon', '>= 0.0'
|
25
|
+
else
|
26
|
+
gem.add_dependency "libxml-ruby", "~> 2.7.0"
|
27
|
+
end
|
22
28
|
|
23
29
|
gem.add_development_dependency 'rake', '>= 0.9.0'
|
24
|
-
gem.add_development_dependency 'rspec', '~> 2.
|
30
|
+
gem.add_development_dependency 'rspec', '~> 2.14.0'
|
25
31
|
gem.add_development_dependency 'simplecov', '>= 0.1'
|
26
32
|
end
|
data/example/example_helper.rb
CHANGED
@@ -39,11 +39,12 @@ def server_process &blk
|
|
39
39
|
else
|
40
40
|
$stderr.puts " spawning at #{__FILE__}:#{__LINE__}"
|
41
41
|
ENV['ASIR_JRUBY_SPAWNED'] = "1"
|
42
|
-
cmd = "
|
43
|
-
$stderr.puts " cmd = #{cmd}"
|
44
|
-
$server_pid = Spoon.spawnp(cmd)
|
42
|
+
cmd = [ RUBY_INTERPRETER_PATH, "-I", "#{File.dirname(__FILE__)}", "-I", "#{File.expand_path('../../lib', __FILE__)}", "#{$0}", *ARGV ]
|
43
|
+
$stderr.puts " cmd = #{cmd * ' '}"
|
44
|
+
$server_pid = Spoon.spawnp(*cmd)
|
45
45
|
ENV.delete('ASIR_JRUBY_SPAWNED')
|
46
46
|
$stderr.puts " spawned #{$server_pid} at #{__FILE__}:#{__LINE__}"
|
47
|
+
sleep 10
|
47
48
|
end
|
48
49
|
else
|
49
50
|
# $stderr.puts " at #{__FILE__}:#{__LINE__}"
|
@@ -66,7 +67,12 @@ ensure
|
|
66
67
|
$server_pid = nil
|
67
68
|
end
|
68
69
|
|
70
|
+
require 'rbconfig'
|
71
|
+
RUBY_INTERPRETER_PATH = File.join(RbConfig::CONFIG["bindir"],
|
72
|
+
RbConfig::CONFIG["RUBY_INSTALL_NAME"] +
|
73
|
+
RbConfig::CONFIG["EXEEXT"])
|
69
74
|
end
|
70
75
|
|
76
|
+
|
71
77
|
puts "*** #{$$}: client process"; $stdout.flush
|
72
78
|
|
data/jdom/jdom-2.0.5.jar
ADDED
Binary file
|
data/lib/asir/coder/xml.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
require 'asir'
|
2
2
|
require 'asir/object_resolving'
|
3
|
-
gem 'libxml-ruby'
|
4
|
-
require 'xml'
|
5
3
|
|
6
4
|
module ASIR
|
7
5
|
class Coder
|
@@ -28,8 +26,8 @@ module ASIR
|
|
28
26
|
@dom_id_map = { }
|
29
27
|
@dom_id = 0
|
30
28
|
@cls_tag_map = { }
|
31
|
-
@parser =
|
32
|
-
@dom = @parser.parse
|
29
|
+
@parser = Parser.new
|
30
|
+
@dom = @parser.parse(@stream)
|
33
31
|
decode_dom @dom.root
|
34
32
|
end
|
35
33
|
|
@@ -213,3 +211,5 @@ module ASIR
|
|
213
211
|
# !SLIDE END
|
214
212
|
end
|
215
213
|
end
|
214
|
+
|
215
|
+
require 'asir/coder/xml/parser'
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'asir/coder/xml'
|
2
|
+
|
3
|
+
module ASIR
|
4
|
+
class Coder
|
5
|
+
class XML
|
6
|
+
class Parser
|
7
|
+
case (RUBY_PLATFORM rescue "UNKNOWN")
|
8
|
+
when /java/i
|
9
|
+
include Java
|
10
|
+
require File.expand_path('../../../../../jdom/jdom-2.0.5.jar', __FILE__)
|
11
|
+
|
12
|
+
def parse stream
|
13
|
+
case stream
|
14
|
+
when String
|
15
|
+
input_stream = java.io.ByteArrayInputStream.new(stream.to_java_bytes)
|
16
|
+
builder = org.jdom2.input.SAXBuilder.new
|
17
|
+
when IO
|
18
|
+
input_stream = stream.to_io
|
19
|
+
else
|
20
|
+
raise TypeError, "cannot parse #{stream.class.name}"
|
21
|
+
end
|
22
|
+
jdom = builder.build(input_stream)
|
23
|
+
Document.new(jdom)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Make JDOM compatible with libXML DOM.
|
27
|
+
class BaseElement
|
28
|
+
def initialize j; @j = j; end
|
29
|
+
end
|
30
|
+
|
31
|
+
class Document < BaseElement
|
32
|
+
def root
|
33
|
+
Element.new(@j.getRootElement)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class Element < BaseElement
|
38
|
+
def name
|
39
|
+
@j.getName
|
40
|
+
end
|
41
|
+
|
42
|
+
def content
|
43
|
+
return @content if @content
|
44
|
+
@content = @j.getContent.map{ | a | a.getText.to_s } * ''
|
45
|
+
end
|
46
|
+
|
47
|
+
def attributes
|
48
|
+
return @attributes if @attributes
|
49
|
+
h = { }
|
50
|
+
@j.getAttributes.each { | a | h[a.getName] = a.getValue }
|
51
|
+
h.extend(IndifferentAccess)
|
52
|
+
@attributes = h
|
53
|
+
end
|
54
|
+
|
55
|
+
def elements
|
56
|
+
return @elements if @elements
|
57
|
+
@elements = @j.getChildren.map { | a | Element.new(a) }
|
58
|
+
end
|
59
|
+
|
60
|
+
def first; elements.first; end
|
61
|
+
|
62
|
+
def each_element &blk
|
63
|
+
elements.each &blk
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
module IndifferentAccess
|
68
|
+
def [] x
|
69
|
+
x = x.to_s if Symbol === x
|
70
|
+
super(x)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
else
|
75
|
+
gem 'libxml-ruby'
|
76
|
+
require 'xml'
|
77
|
+
|
78
|
+
def parse stream
|
79
|
+
case stream
|
80
|
+
when String
|
81
|
+
::XML::Parser.string(stream).parse
|
82
|
+
else
|
83
|
+
raise TypeError, "cannot parse #{stream.class.name}"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
|
data/lib/asir_xml/version.rb
CHANGED
data/spec/example_spec.rb
CHANGED
@@ -48,7 +48,7 @@ describe "ASIR Example" do
|
|
48
48
|
exc = system_exit = nil; exit_code = 0
|
49
49
|
begin
|
50
50
|
if true
|
51
|
-
cmd = "ASIR_EXAMPLE_SILENT=1 ruby -I example -I lib #{file}"
|
51
|
+
cmd = "ASIR_EXAMPLE_SILENT=1 #{ruby} -I example -I lib #{file}"
|
52
52
|
$stderr.puts "\n Running #{cmd}:" if ENV['SPEC_VERBOSE']
|
53
53
|
output = `#{cmd} 2>&1 | tee #{file}.out`
|
54
54
|
else
|
@@ -74,6 +74,13 @@ describe "ASIR Example" do
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
require 'rbconfig'
|
78
|
+
RUBY_INTERPRETER_PATH = File.join(RbConfig::CONFIG["bindir"],
|
79
|
+
RbConfig::CONFIG["RUBY_INSTALL_NAME"] +
|
80
|
+
RbConfig::CONFIG["EXEEXT"])
|
81
|
+
|
82
|
+
def ruby; RUBY_INTERPRETER_PATH; end
|
83
|
+
|
77
84
|
def expect rx, mode = :'=~'
|
78
85
|
@expects << [ rx, mode ]
|
79
86
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asir_xml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.12
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Kurt Stephens
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-09-28 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: asir
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,23 +27,20 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: libxml-ruby
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: 2.
|
33
|
+
version: 2.7.0
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: 2.
|
40
|
+
version: 2.7.0
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rake
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,23 +55,20 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rspec
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version: 2.
|
61
|
+
version: 2.14.0
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version: 2.
|
68
|
+
version: 2.14.0
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: simplecov
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -99,6 +88,7 @@ extensions: []
|
|
99
88
|
extra_rdoc_files: []
|
100
89
|
files:
|
101
90
|
- .gitignore
|
91
|
+
- .jrubyrc
|
102
92
|
- .rspec
|
103
93
|
- .travis.yml
|
104
94
|
- ChangeLog
|
@@ -109,7 +99,9 @@ files:
|
|
109
99
|
- asir_xml.gemspec
|
110
100
|
- example/ex01.rb
|
111
101
|
- example/example_helper.rb
|
102
|
+
- jdom/jdom-2.0.5.jar
|
112
103
|
- lib/asir/coder/xml.rb
|
104
|
+
- lib/asir/coder/xml/parser.rb
|
113
105
|
- lib/asir_xml.rb
|
114
106
|
- lib/asir_xml/version.rb
|
115
107
|
- spec/example_spec.rb
|
@@ -117,33 +109,26 @@ files:
|
|
117
109
|
- spec/xml_spec.rb
|
118
110
|
homepage: http://github.com/kstephens/abstracting_services_in_ruby
|
119
111
|
licenses: []
|
112
|
+
metadata: {}
|
120
113
|
post_install_message:
|
121
114
|
rdoc_options: []
|
122
115
|
require_paths:
|
123
116
|
- lib
|
124
117
|
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
-
none: false
|
126
118
|
requirements:
|
127
119
|
- - ! '>='
|
128
120
|
- !ruby/object:Gem::Version
|
129
121
|
version: '0'
|
130
|
-
segments:
|
131
|
-
- 0
|
132
|
-
hash: -2373877049933297676
|
133
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
-
none: false
|
135
123
|
requirements:
|
136
124
|
- - ! '>='
|
137
125
|
- !ruby/object:Gem::Version
|
138
126
|
version: '0'
|
139
|
-
segments:
|
140
|
-
- 0
|
141
|
-
hash: -2373877049933297676
|
142
127
|
requirements: []
|
143
128
|
rubyforge_project:
|
144
|
-
rubygems_version: 1.
|
129
|
+
rubygems_version: 2.1.5
|
145
130
|
signing_key:
|
146
|
-
specification_version:
|
131
|
+
specification_version: 4
|
147
132
|
summary: XML Coder for ASIR
|
148
133
|
test_files:
|
149
134
|
- spec/example_spec.rb
|