opensrs 0.3.4 → 0.4.0

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.
@@ -1,59 +1,78 @@
1
1
  begin
2
2
  require 'nokogiri'
3
3
  rescue LoadError => e
4
- $stderr.puts "Cannot find Nokogiri gem. Please install Nokogiri before using it as the xml processor\n\n"
4
+ warn 'Cannot find `nokogiri` gem. Please install it before using it as the XML processor'
5
5
  raise e
6
6
  end
7
7
 
8
8
  module OpenSRS
9
- class XmlProcessor::Nokogiri < OpenSRS::XmlProcessor
10
-
11
- def self.build(data)
12
- builder = ::Nokogiri::XML::Builder.new
13
-
14
- envelope = ::Nokogiri::XML::Node.new("OPS_envelope", builder.doc)
15
- header = ::Nokogiri::XML::Node.new("header", builder.doc)
16
- version = ::Nokogiri::XML::Node.new("version", builder.doc)
17
- body = ::Nokogiri::XML::Node.new("body", builder.doc)
18
- data_block = ::Nokogiri::XML::Node.new("data_block", builder.doc)
19
- other_data = encode_data(data, builder.doc)
20
- builder.doc << envelope << header << version << '0.9'
21
- envelope << body << data_block << other_data
22
- return builder.to_xml
23
- end
9
+ class XmlProcessor
10
+ # Nokogiri
11
+ class Nokogiri < OpenSRS::XmlProcessor
12
+ def self.build(data)
13
+ builder = ::Nokogiri::XML::Builder.new
24
14
 
25
- protected
15
+ envelope = ::Nokogiri::XML::Node.new('OPS_envelope', builder.doc)
16
+ header = ::Nokogiri::XML::Node.new('header', builder.doc)
17
+ version = ::Nokogiri::XML::Node.new('version', builder.doc)
18
+ body = ::Nokogiri::XML::Node.new('body', builder.doc)
19
+ data_block = ::Nokogiri::XML::Node.new('data_block', builder.doc)
20
+ other_data = encode_data(data, builder.doc)
21
+ version << '0.9'
22
+ header << version
23
+ envelope << header
24
+ builder.doc << envelope
25
+ data_block << other_data
26
+ body << data_block
27
+ envelope << body
26
28
 
27
- def self.data_block_element(response)
28
- doc = ::Nokogiri::XML(response)
29
- return doc.xpath('//OPS_envelope/body/data_block/*')
30
- end
29
+ OpenSRS::SanitizableString.new(builder.to_xml, sanitize(builder.to_xml))
30
+ end
31
31
 
32
- def self.decode_dt_array_data(element)
33
- dt_array = []
32
+ def self.sanitize(xml_string)
33
+ doc = ::Nokogiri::XML(xml_string)
34
+ doc.xpath("//item[@key='reg_username']").each do |node|
35
+ node.content = 'FILTERED'
36
+ end
37
+ doc.xpath("//item[@key='reg_password']").each do |node|
38
+ node.content = 'FILTERED'
39
+ end
40
+ doc.to_xml
41
+ end
42
+ private_class_method :sanitize
34
43
 
35
- element.children.each do |item|
36
- next if item.content.strip.empty?
37
- dt_array[item.attributes["key"].value.to_i] = decode_data(item.children)
44
+ def self.data_block_element(response)
45
+ doc = ::Nokogiri::XML(response)
46
+ doc.xpath('//OPS_envelope/body/data_block/*')
38
47
  end
39
48
 
40
- return dt_array
41
- end
49
+ def self.decode_dt_array_data(element)
50
+ dt_array = []
51
+
52
+ element.children.each do |item|
53
+ next if item.content.strip.empty?
42
54
 
43
- def self.decode_dt_assoc_data(element)
44
- dt_assoc = {}
55
+ dt_array[item.attributes['key'].value.to_i] = decode_data(item.children)
56
+ end
45
57
 
46
- element.children.each do |item|
47
- next if item.content.strip.empty?
48
- dt_assoc[item.attributes["key"].value] = decode_data(item.children)
58
+ dt_array
49
59
  end
50
60
 
51
- return dt_assoc
52
- end
61
+ def self.decode_dt_assoc_data(element)
62
+ dt_assoc = {}
53
63
 
54
- def self.new_element(element_name, container)
55
- return ::Nokogiri::XML::Node.new(element_name.to_s, container)
56
- end
64
+ element.children.each do |item|
65
+ next if item.content.strip.empty?
66
+
67
+ dt_assoc[item.attributes['key'].value] = decode_data(item.children)
68
+ end
69
+
70
+ dt_assoc
71
+ end
57
72
 
73
+ def self.new_element(element_name, container)
74
+ ::Nokogiri::XML::Node.new(element_name.to_s, container)
75
+ end
76
+ end
58
77
  end
59
78
  end
data/opensrs.gemspec CHANGED
@@ -1,76 +1,32 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'opensrs/version'
5
4
 
6
- Gem::Specification.new do |s|
7
- s.name = "opensrs"
8
- s.version = "0.3.4"
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'opensrs'
7
+ spec.version = OpenSRS::VERSION
8
+ spec.authors = ['Joshua Delsman']
9
+ spec.email = ['j@srv.im']
10
+ spec.summary = 'OpenSRS API for Ruby'
11
+ spec.description = 'Provides support to utilize the OpenSRS API with Ruby.'
12
+ spec.homepage = 'https://github.com/voxxit/opensrs'
13
+ spec.license = 'MIT'
14
+ spec.required_ruby_version = '~> 2.5'
9
15
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Josh Delsman"]
12
- s.date = "2013-04-04"
13
- s.description = "Provides support to utilize the OpenSRS API with Ruby/Rails."
14
- s.email = "jdelsman@voxxit.com"
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- "Gemfile",
22
- "Gemfile.lock",
23
- "LICENSE",
24
- "README.rdoc",
25
- "Rakefile",
26
- "lib/opensrs.rb",
27
- "lib/opensrs/response.rb",
28
- "lib/opensrs/server.rb",
29
- "lib/opensrs/version.rb",
30
- "lib/opensrs/xml_processor.rb",
31
- "lib/opensrs/xml_processor/libxml.rb",
32
- "lib/opensrs/xml_processor/nokogiri.rb",
33
- "opensrs.gemspec",
34
- "spec/opensrs/server_spec.rb",
35
- "spec/opensrs/version_spec.rb",
36
- "spec/opensrs/xml_processor/libxml_spec.rb",
37
- "spec/opensrs/xml_processor/nokogiri_spec.rb",
38
- "spec/spec_helper.rb"
39
- ]
40
- s.homepage = "http://github.com/voxxit/opensrs"
41
- s.licenses = ["MIT"]
42
- s.require_paths = ["lib"]
43
- s.rubygems_version = "1.8.23"
44
- s.summary = "Provides support to utilize the OpenSRS API with Ruby/Rails."
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = 'exe'
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ['lib']
45
20
 
46
- if s.respond_to? :specification_version then
47
- s.specification_version = 3
48
-
49
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
- s.add_runtime_dependency(%q<libxml-ruby>, ["~> 2.6.0"])
51
- s.add_development_dependency(%q<nokogiri>, ["~> 1.4.6"])
52
- s.add_development_dependency(%q<jeweler>, [">= 0"])
53
- s.add_development_dependency(%q<git>, [">= 0"])
54
- s.add_development_dependency(%q<rake>, [">= 0"])
55
- s.add_development_dependency(%q<shoulda>, [">= 0"])
56
- s.add_development_dependency(%q<rspec>, ["~> 2.0"])
57
- else
58
- s.add_dependency(%q<libxml-ruby>, ["~> 2.6.0"])
59
- s.add_dependency(%q<nokogiri>, ["~> 1.4.6"])
60
- s.add_dependency(%q<jeweler>, [">= 0"])
61
- s.add_dependency(%q<git>, [">= 0"])
62
- s.add_dependency(%q<rake>, [">= 0"])
63
- s.add_dependency(%q<shoulda>, [">= 0"])
64
- s.add_dependency(%q<rspec>, ["~> 2.0"])
65
- end
66
- else
67
- s.add_dependency(%q<libxml-ruby>, ["~> 2.6.0"])
68
- s.add_dependency(%q<nokogiri>, ["~> 1.4.6"])
69
- s.add_dependency(%q<jeweler>, [">= 0"])
70
- s.add_dependency(%q<git>, [">= 0"])
71
- s.add_dependency(%q<rake>, [">= 0"])
72
- s.add_dependency(%q<shoulda>, [">= 0"])
73
- s.add_dependency(%q<rspec>, ["~> 2.0"])
74
- end
21
+ spec.add_development_dependency 'activesupport', '~> 4.2.2'
22
+ spec.add_development_dependency 'bundler'
23
+ spec.add_development_dependency 'code-scanning-rubocop', '~> 0.5'
24
+ spec.add_development_dependency 'libxml-ruby', '~> 3'
25
+ spec.add_development_dependency 'nokogiri', '~> 1.11.4'
26
+ spec.add_development_dependency 'pry'
27
+ spec.add_development_dependency 'rake'
28
+ spec.add_development_dependency 'rspec'
29
+ spec.add_development_dependency 'rubocop', '~> 1'
30
+ spec.add_development_dependency 'rubocop-rspec'
31
+ spec.add_development_dependency 'shoulda'
75
32
  end
76
-
metadata CHANGED
@@ -1,162 +1,219 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opensrs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
- - Josh Delsman
8
- autorequire:
9
- bindir: bin
7
+ - Joshua Delsman
8
+ autorequire:
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2013-04-04 00:00:00.000000000 Z
11
+ date: 2021-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.2.2
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.2.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
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: code-scanning-rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.5'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.5'
13
55
  - !ruby/object:Gem::Dependency
14
56
  name: libxml-ruby
15
57
  requirement: !ruby/object:Gem::Requirement
16
58
  requirements:
17
- - - ~>
59
+ - - "~>"
18
60
  - !ruby/object:Gem::Version
19
- version: 2.6.0
20
- type: :runtime
61
+ version: '3'
62
+ type: :development
21
63
  prerelease: false
22
64
  version_requirements: !ruby/object:Gem::Requirement
23
65
  requirements:
24
- - - ~>
66
+ - - "~>"
25
67
  - !ruby/object:Gem::Version
26
- version: 2.6.0
68
+ version: '3'
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: nokogiri
29
71
  requirement: !ruby/object:Gem::Requirement
30
72
  requirements:
31
- - - ~>
73
+ - - "~>"
32
74
  - !ruby/object:Gem::Version
33
- version: 1.4.6
75
+ version: 1.11.4
34
76
  type: :development
35
77
  prerelease: false
36
78
  version_requirements: !ruby/object:Gem::Requirement
37
79
  requirements:
38
- - - ~>
80
+ - - "~>"
39
81
  - !ruby/object:Gem::Version
40
- version: 1.4.6
82
+ version: 1.11.4
41
83
  - !ruby/object:Gem::Dependency
42
- name: jeweler
84
+ name: pry
43
85
  requirement: !ruby/object:Gem::Requirement
44
86
  requirements:
45
- - - '>='
87
+ - - ">="
46
88
  - !ruby/object:Gem::Version
47
89
  version: '0'
48
90
  type: :development
49
91
  prerelease: false
50
92
  version_requirements: !ruby/object:Gem::Requirement
51
93
  requirements:
52
- - - '>='
94
+ - - ">="
53
95
  - !ruby/object:Gem::Version
54
96
  version: '0'
55
97
  - !ruby/object:Gem::Dependency
56
- name: git
98
+ name: rake
57
99
  requirement: !ruby/object:Gem::Requirement
58
100
  requirements:
59
- - - '>='
101
+ - - ">="
60
102
  - !ruby/object:Gem::Version
61
103
  version: '0'
62
104
  type: :development
63
105
  prerelease: false
64
106
  version_requirements: !ruby/object:Gem::Requirement
65
107
  requirements:
66
- - - '>='
108
+ - - ">="
67
109
  - !ruby/object:Gem::Version
68
110
  version: '0'
69
111
  - !ruby/object:Gem::Dependency
70
- name: rake
112
+ name: rspec
71
113
  requirement: !ruby/object:Gem::Requirement
72
114
  requirements:
73
- - - '>='
115
+ - - ">="
74
116
  - !ruby/object:Gem::Version
75
117
  version: '0'
76
118
  type: :development
77
119
  prerelease: false
78
120
  version_requirements: !ruby/object:Gem::Requirement
79
121
  requirements:
80
- - - '>='
122
+ - - ">="
81
123
  - !ruby/object:Gem::Version
82
124
  version: '0'
83
125
  - !ruby/object:Gem::Dependency
84
- name: shoulda
126
+ name: rubocop
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-rspec
85
141
  requirement: !ruby/object:Gem::Requirement
86
142
  requirements:
87
- - - '>='
143
+ - - ">="
88
144
  - !ruby/object:Gem::Version
89
145
  version: '0'
90
146
  type: :development
91
147
  prerelease: false
92
148
  version_requirements: !ruby/object:Gem::Requirement
93
149
  requirements:
94
- - - '>='
150
+ - - ">="
95
151
  - !ruby/object:Gem::Version
96
152
  version: '0'
97
153
  - !ruby/object:Gem::Dependency
98
- name: rspec
154
+ name: shoulda
99
155
  requirement: !ruby/object:Gem::Requirement
100
156
  requirements:
101
- - - ~>
157
+ - - ">="
102
158
  - !ruby/object:Gem::Version
103
- version: '2.0'
159
+ version: '0'
104
160
  type: :development
105
161
  prerelease: false
106
162
  version_requirements: !ruby/object:Gem::Requirement
107
163
  requirements:
108
- - - ~>
164
+ - - ">="
109
165
  - !ruby/object:Gem::Version
110
- version: '2.0'
111
- description: Provides support to utilize the OpenSRS API with Ruby/Rails.
112
- email: jdelsman@voxxit.com
166
+ version: '0'
167
+ description: Provides support to utilize the OpenSRS API with Ruby.
168
+ email:
169
+ - j@srv.im
113
170
  executables: []
114
171
  extensions: []
115
- extra_rdoc_files:
116
- - LICENSE
117
- - README.rdoc
172
+ extra_rdoc_files: []
118
173
  files:
119
- - .document
174
+ - ".document"
175
+ - ".github/workflows/rubocop-analysis.yml"
176
+ - ".gitignore"
177
+ - ".rspec"
178
+ - ".rubocop.yml"
120
179
  - Gemfile
121
180
  - Gemfile.lock
122
- - LICENSE
123
- - README.rdoc
181
+ - LICENSE.txt
182
+ - README.md
124
183
  - Rakefile
184
+ - SECURITY.md
185
+ - bin/console
186
+ - bin/setup
125
187
  - lib/opensrs.rb
126
188
  - lib/opensrs/response.rb
189
+ - lib/opensrs/sanitizable_string.rb
127
190
  - lib/opensrs/server.rb
128
191
  - lib/opensrs/version.rb
129
192
  - lib/opensrs/xml_processor.rb
130
193
  - lib/opensrs/xml_processor/libxml.rb
131
194
  - lib/opensrs/xml_processor/nokogiri.rb
132
195
  - opensrs.gemspec
133
- - spec/opensrs/server_spec.rb
134
- - spec/opensrs/version_spec.rb
135
- - spec/opensrs/xml_processor/libxml_spec.rb
136
- - spec/opensrs/xml_processor/nokogiri_spec.rb
137
- - spec/spec_helper.rb
138
- homepage: http://github.com/voxxit/opensrs
196
+ homepage: https://github.com/voxxit/opensrs
139
197
  licenses:
140
198
  - MIT
141
199
  metadata: {}
142
- post_install_message:
200
+ post_install_message:
143
201
  rdoc_options: []
144
202
  require_paths:
145
203
  - lib
146
204
  required_ruby_version: !ruby/object:Gem::Requirement
147
205
  requirements:
148
- - - '>='
206
+ - - "~>"
149
207
  - !ruby/object:Gem::Version
150
- version: '0'
208
+ version: '2.5'
151
209
  required_rubygems_version: !ruby/object:Gem::Requirement
152
210
  requirements:
153
- - - '>='
211
+ - - ">="
154
212
  - !ruby/object:Gem::Version
155
213
  version: '0'
156
214
  requirements: []
157
- rubyforge_project:
158
- rubygems_version: 2.0.0
159
- signing_key:
160
- specification_version: 3
161
- summary: Provides support to utilize the OpenSRS API with Ruby/Rails.
215
+ rubygems_version: 3.0.3.1
216
+ signing_key:
217
+ specification_version: 4
218
+ summary: OpenSRS API for Ruby
162
219
  test_files: []