rixml 0.4.8 → 0.4.9
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 +4 -4
- data/lib/rixml.rb +20 -1
- data/rixml.gemspec +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25f629105503be64d6300105901129fcb5255c85
|
4
|
+
data.tar.gz: 53141679e00fee5e8f7aa363e1d67958e4dddb8e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7e3ba7ae9511506b9fe3085faed86d7aadf6fc906c6bfc134595b38d88e63db5fdd1edf6680e19df48836aaeacd7bba764e1c68bc8e4b82a400fd9c9e43397c
|
7
|
+
data.tar.gz: 68da09018210d6f6b27613c8b15c3d9191603e6ae64700face8366f0868e0a61f9a08315086a05f70b444262d1de73a6f9f0cdcb455d2a2501eafd8962d81bff
|
data/lib/rixml.rb
CHANGED
@@ -106,9 +106,11 @@ class RIXML
|
|
106
106
|
return length.to_i if length.respond_to?(:to_i)
|
107
107
|
end
|
108
108
|
|
109
|
+
# rubocop:disable Metrics/MethodLength
|
109
110
|
def parse_info_from_author(author)
|
110
111
|
person = author&.dig('Person')
|
111
112
|
{
|
113
|
+
primary: primary?(author.dig('primaryIndicator')),
|
112
114
|
name: person['DisplayName'],
|
113
115
|
first_name: person['GivenName'],
|
114
116
|
middle_name: person['MiddleName'],
|
@@ -118,6 +120,11 @@ class RIXML
|
|
118
120
|
contacts: parse_author_contacts(person['ContactInfo'])
|
119
121
|
}
|
120
122
|
end
|
123
|
+
# rubocop:enable Metrics/MethodLength
|
124
|
+
|
125
|
+
def primary?(primary_indicator)
|
126
|
+
primary_indicator == 'Yes'
|
127
|
+
end
|
121
128
|
|
122
129
|
def parse_author_contacts(contacts)
|
123
130
|
contacts = [contacts] unless contacts.is_a? Array
|
@@ -174,7 +181,8 @@ class RIXML
|
|
174
181
|
securities = [securities].compact unless securities.is_a? Array
|
175
182
|
securities.map do |security|
|
176
183
|
info = { name: (company.dig('IssuerName') || {})['NameValue'], primary: company['primaryIndicator'] == 'Yes' }
|
177
|
-
info.merge(parse_security_info(security))
|
184
|
+
info = info.merge(parse_security_info(security))
|
185
|
+
info.merge(securities: parse_securities(security)) # Keep retrocompatibility adding a new key 'securities'
|
178
186
|
end
|
179
187
|
end
|
180
188
|
|
@@ -185,4 +193,15 @@ class RIXML
|
|
185
193
|
{ security_id['idType'].underscore.to_sym => security_id['idValue'] }
|
186
194
|
end&.reduce({}, :merge) || []
|
187
195
|
end
|
196
|
+
|
197
|
+
def parse_securities(security)
|
198
|
+
security_ids = security.dig('SecurityID')
|
199
|
+
security_ids = [security_ids].compact unless security_ids.is_a? Array
|
200
|
+
security_ids&.map do |security_id|
|
201
|
+
{
|
202
|
+
primary: primary?(security.dig('primaryIndicator')),
|
203
|
+
security_id['idType'].underscore.to_sym => security_id['idValue']
|
204
|
+
}
|
205
|
+
end
|
206
|
+
end
|
188
207
|
end
|
data/rixml.gemspec
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = 'rixml'
|
4
|
-
s.version = '0.4.
|
5
|
-
s.date = '2017-09-
|
4
|
+
s.version = '0.4.9'
|
5
|
+
s.date = '2017-09-29'
|
6
6
|
s.summary = 'RIXML Parser'
|
7
7
|
s.description = 'Parse RIXML files'
|
8
8
|
s.homepage = 'https://github.com/AlphaExchange/rixml'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rixml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Correia Santos
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-09-
|
12
|
+
date: 2017-09-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|