opensrs 0.3.4 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []