xml2js 0.1.1

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.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec_status +5 -0
  3. data/CODE_OF_CONDUCT.md +74 -0
  4. data/Gemfile +4 -0
  5. data/Gemfile.lock +41 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +44 -0
  8. data/Rakefile +6 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/lib/xml2js.rb +5 -0
  12. data/lib/xml2js/node_modules/sax/LICENSE +41 -0
  13. data/lib/xml2js/node_modules/sax/README.md +225 -0
  14. data/lib/xml2js/node_modules/sax/lib/sax.js +1565 -0
  15. data/lib/xml2js/node_modules/sax/package.json +61 -0
  16. data/lib/xml2js/node_modules/xml2js/LICENSE +19 -0
  17. data/lib/xml2js/node_modules/xml2js/README.md +406 -0
  18. data/lib/xml2js/node_modules/xml2js/lib/bom.js +12 -0
  19. data/lib/xml2js/node_modules/xml2js/lib/builder.js +127 -0
  20. data/lib/xml2js/node_modules/xml2js/lib/defaults.js +72 -0
  21. data/lib/xml2js/node_modules/xml2js/lib/parser.js +357 -0
  22. data/lib/xml2js/node_modules/xml2js/lib/processors.js +34 -0
  23. data/lib/xml2js/node_modules/xml2js/lib/xml2js.js +37 -0
  24. data/lib/xml2js/node_modules/xml2js/package.json +280 -0
  25. data/lib/xml2js/node_modules/xmlbuilder/.npmignore +5 -0
  26. data/lib/xml2js/node_modules/xmlbuilder/CHANGELOG.md +423 -0
  27. data/lib/xml2js/node_modules/xmlbuilder/LICENSE +21 -0
  28. data/lib/xml2js/node_modules/xmlbuilder/README.md +85 -0
  29. data/lib/xml2js/node_modules/xmlbuilder/lib/Utility.js +73 -0
  30. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLAttribute.js +31 -0
  31. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLCData.js +32 -0
  32. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLComment.js +32 -0
  33. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLDTDAttList.js +50 -0
  34. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLDTDElement.js +35 -0
  35. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLDTDEntity.js +56 -0
  36. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLDTDNotation.js +37 -0
  37. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLDeclaration.js +40 -0
  38. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLDocType.js +107 -0
  39. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLDocument.js +48 -0
  40. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLDocumentCB.js +402 -0
  41. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLElement.js +111 -0
  42. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLNode.js +432 -0
  43. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +35 -0
  44. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLRaw.js +32 -0
  45. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLStreamWriter.js +279 -0
  46. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLStringWriter.js +334 -0
  47. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLStringifier.js +163 -0
  48. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLText.js +32 -0
  49. data/lib/xml2js/node_modules/xmlbuilder/lib/XMLWriterBase.js +90 -0
  50. data/lib/xml2js/node_modules/xmlbuilder/lib/index.js +53 -0
  51. data/lib/xml2js/node_modules/xmlbuilder/package.json +65 -0
  52. data/lib/xml2js/package-lock.json +25 -0
  53. data/lib/xml2js/parser.js +33 -0
  54. data/lib/xml2js/parser.rb +31 -0
  55. data/lib/xml2js/version.rb +3 -0
  56. data/xml2js.gemspec +30 -0
  57. metadata +154 -0
@@ -0,0 +1,31 @@
1
+ require 'tempfile'
2
+ require 'json'
3
+ module Xml2js
4
+ class Parser
5
+ DEFAULT_SCRIPT = './lib/xml2js/parser.js'
6
+
7
+ def self.parse(data, script=DEFAULT_SCRIPT)
8
+ parser = new script
9
+ parser.xml_to_hash data
10
+ end
11
+ def initialize(script)
12
+ @parser = script
13
+ end
14
+
15
+ def xml_to_hash(data)
16
+ tmp_dir = "#{File.expand_path(__dir__)}/tmp"
17
+ file = Tempfile.new(['xml-data', '.xml'], tmp_dir)
18
+ json_file = Tempfile.new(['json-data', '.json'], tmp_dir)
19
+ begin
20
+ file.write(data)
21
+ file.rewind
22
+ json_file.rewind
23
+ %x{ node #{@parser} #{file.path} #{json_file.path}}
24
+ JSON.parse(File.read(json_file.path), {symbolize_names: true})
25
+ ensure
26
+ file.close
27
+ file.unlink
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,3 @@
1
+ module Xml2js
2
+ VERSION = "0.1.1"
3
+ end
@@ -0,0 +1,30 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "xml2js/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "xml2js"
8
+ spec.version = Xml2js::VERSION
9
+ spec.authors = ["Michael"]
10
+ spec.email = ["micharch54@gmail.com"]
11
+
12
+ spec.summary = %q{Wrapper for the excellent xml2js xml parser from node}
13
+ spec.description = %q{This will parse xml and all attributes into an easily traversable hash}
14
+ spec.homepage = "https://gitlab.com/Neener54/xml2js-ruby"
15
+ spec.license = "MIT"
16
+
17
+ # Specify which files should be added to the gem when it is released.
18
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
20
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
+ end
22
+ spec.bindir = "exe"
23
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
+ spec.require_paths = ["lib"]
25
+
26
+ spec.add_development_dependency "bundler", "~> 2.0"
27
+ spec.add_development_dependency "pry"
28
+ spec.add_development_dependency "rake", "~> 10.0"
29
+ spec.add_development_dependency "rspec", "~> 3.0"
30
+ end
metadata ADDED
@@ -0,0 +1,154 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: xml2js
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Michael
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-01-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ description: This will parse xml and all attributes into an easily traversable hash
70
+ email:
71
+ - micharch54@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".rspec_status"
77
+ - CODE_OF_CONDUCT.md
78
+ - Gemfile
79
+ - Gemfile.lock
80
+ - LICENSE.txt
81
+ - README.md
82
+ - Rakefile
83
+ - bin/console
84
+ - bin/setup
85
+ - lib/xml2js.rb
86
+ - lib/xml2js/node_modules/sax/LICENSE
87
+ - lib/xml2js/node_modules/sax/README.md
88
+ - lib/xml2js/node_modules/sax/lib/sax.js
89
+ - lib/xml2js/node_modules/sax/package.json
90
+ - lib/xml2js/node_modules/xml2js/LICENSE
91
+ - lib/xml2js/node_modules/xml2js/README.md
92
+ - lib/xml2js/node_modules/xml2js/lib/bom.js
93
+ - lib/xml2js/node_modules/xml2js/lib/builder.js
94
+ - lib/xml2js/node_modules/xml2js/lib/defaults.js
95
+ - lib/xml2js/node_modules/xml2js/lib/parser.js
96
+ - lib/xml2js/node_modules/xml2js/lib/processors.js
97
+ - lib/xml2js/node_modules/xml2js/lib/xml2js.js
98
+ - lib/xml2js/node_modules/xml2js/package.json
99
+ - lib/xml2js/node_modules/xmlbuilder/.npmignore
100
+ - lib/xml2js/node_modules/xmlbuilder/CHANGELOG.md
101
+ - lib/xml2js/node_modules/xmlbuilder/LICENSE
102
+ - lib/xml2js/node_modules/xmlbuilder/README.md
103
+ - lib/xml2js/node_modules/xmlbuilder/lib/Utility.js
104
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLAttribute.js
105
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLCData.js
106
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLComment.js
107
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLDTDAttList.js
108
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLDTDElement.js
109
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLDTDEntity.js
110
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLDTDNotation.js
111
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLDeclaration.js
112
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLDocType.js
113
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLDocument.js
114
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLDocumentCB.js
115
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLElement.js
116
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLNode.js
117
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js
118
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLRaw.js
119
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLStreamWriter.js
120
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLStringWriter.js
121
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLStringifier.js
122
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLText.js
123
+ - lib/xml2js/node_modules/xmlbuilder/lib/XMLWriterBase.js
124
+ - lib/xml2js/node_modules/xmlbuilder/lib/index.js
125
+ - lib/xml2js/node_modules/xmlbuilder/package.json
126
+ - lib/xml2js/package-lock.json
127
+ - lib/xml2js/parser.js
128
+ - lib/xml2js/parser.rb
129
+ - lib/xml2js/version.rb
130
+ - xml2js.gemspec
131
+ homepage: https://gitlab.com/Neener54/xml2js-ruby
132
+ licenses:
133
+ - MIT
134
+ metadata: {}
135
+ post_install_message:
136
+ rdoc_options: []
137
+ require_paths:
138
+ - lib
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ required_rubygems_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ requirements: []
150
+ rubygems_version: 3.0.1
151
+ signing_key:
152
+ specification_version: 4
153
+ summary: Wrapper for the excellent xml2js xml parser from node
154
+ test_files: []