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.
@@ -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=
@@ -0,0 +1 @@
1
+ -Xcext.enabled=true
@@ -10,3 +10,7 @@ rvm:
10
10
  - jruby-head
11
11
  - 1.8.7
12
12
  - ree
13
+
14
+ matrix:
15
+ allow_failures:
16
+ - rvm: ruby-head
@@ -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
- gem.add_dependency "libxml-ruby", "~> 2.3.3"
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.12.0'
30
+ gem.add_development_dependency 'rspec', '~> 2.14.0'
25
31
  gem.add_development_dependency 'simplecov', '>= 0.1'
26
32
  end
@@ -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 = "ruby -I #{File.dirname(__FILE__)} -I #{File.expand_path('../../lib', __FILE__)} #{$0} #{ARGV * ' '}"
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
 
Binary file
@@ -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 = ::XML::Parser.string(@stream)
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
+
@@ -1,3 +1,3 @@
1
1
  module AsirXml
2
- VERSION = "1.1.11"
2
+ VERSION = "1.1.12"
3
3
  end
@@ -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.11
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: 2012-12-29 00:00:00.000000000 Z
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.3.3
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.3.3
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.12.0
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.12.0
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.8.24
129
+ rubygems_version: 2.1.5
145
130
  signing_key:
146
- specification_version: 3
131
+ specification_version: 4
147
132
  summary: XML Coder for ASIR
148
133
  test_files:
149
134
  - spec/example_spec.rb