rixml 0.0.5 → 0.0.6
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/.rubocop.yml +11 -0
- data/.travis.yml +4 -2
- data/Gemfile +2 -1
- data/Gemfile.lock +17 -3
- data/Rakefile +5 -4
- data/lib/rixml.rb +18 -15
- data/rixml.gemspec +9 -7
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f45aee55fc7aa52f1466fb86ac7d59c86b086fe
|
4
|
+
data.tar.gz: d8124698b7c21bfeb7cc7125ad92abe1405a617c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24f4059210991529d1908aac481de94b73af48a9485943001fbf6913b77e662446910c660543d661d05f11b0d94886cee05211b8162c61399a36ae2291ffd5c5
|
7
|
+
data.tar.gz: 16558436d7c255c44acd5d0bf4880d1d5e4223a7cfa7689acd0fb83f4d3bc9ddbf0784a5c84d7ee42e55000877ec1ba496687af46ab06e2be7be3f674f79be90
|
data/.rubocop.yml
ADDED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
|
4
|
+
rixml (0.0.6)
|
5
5
|
activesupport (>= 4.0.0)
|
6
6
|
nokogiri (~> 1.5)
|
7
7
|
|
@@ -13,25 +13,39 @@ GEM
|
|
13
13
|
i18n (~> 0.7)
|
14
14
|
minitest (~> 5.1)
|
15
15
|
tzinfo (~> 1.1)
|
16
|
+
ast (2.3.0)
|
16
17
|
concurrent-ruby (1.0.2)
|
17
18
|
i18n (0.7.0)
|
18
19
|
mini_portile2 (2.1.0)
|
19
20
|
minitest (5.9.1)
|
20
21
|
nokogiri (1.6.8.1)
|
21
22
|
mini_portile2 (~> 2.1.0)
|
23
|
+
parser (2.3.1.4)
|
24
|
+
ast (~> 2.2)
|
25
|
+
powerpack (0.1.1)
|
26
|
+
rainbow (2.1.0)
|
22
27
|
rake (11.3.0)
|
28
|
+
rubocop (0.45.0)
|
29
|
+
parser (>= 2.3.1.1, < 3.0)
|
30
|
+
powerpack (~> 0.1)
|
31
|
+
rainbow (>= 1.99.1, < 3.0)
|
32
|
+
ruby-progressbar (~> 1.7)
|
33
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
34
|
+
ruby-progressbar (1.8.1)
|
23
35
|
thread_safe (0.3.5)
|
24
36
|
tzinfo (1.2.2)
|
25
37
|
thread_safe (~> 0.1)
|
38
|
+
unicode-display_width (1.1.1)
|
26
39
|
|
27
40
|
PLATFORMS
|
28
41
|
ruby
|
29
42
|
|
30
43
|
DEPENDENCIES
|
31
|
-
RIXML!
|
32
44
|
bundler (~> 1.12)
|
33
45
|
minitest (~> 5.1)
|
34
46
|
rake (~> 11.3)
|
47
|
+
rixml!
|
48
|
+
rubocop (~> 0.45.0)
|
35
49
|
|
36
50
|
BUNDLED WITH
|
37
|
-
1.13.
|
51
|
+
1.13.6
|
data/Rakefile
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
|
2
|
-
require
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'bundler/gem_tasks'
|
3
|
+
require 'rake/testtask'
|
3
4
|
|
4
5
|
Rake::TestTask.new do |t|
|
5
6
|
t.test_files = FileList['test/**/*_test.rb']
|
6
7
|
end
|
7
|
-
desc
|
8
|
+
desc 'Run tests'
|
8
9
|
|
9
|
-
task default: :test
|
10
|
+
task default: :test
|
data/lib/rixml.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'nokogiri'
|
2
3
|
require 'date'
|
3
4
|
require 'active_support/core_ext/hash/conversions'
|
4
5
|
|
5
6
|
class RIXML
|
6
|
-
|
7
7
|
def initialize(document)
|
8
8
|
@attrs = Hash.from_xml(document.to_s)
|
9
9
|
end
|
@@ -21,6 +21,8 @@ class RIXML
|
|
21
21
|
DateTime.strptime(time_str)
|
22
22
|
end
|
23
23
|
|
24
|
+
# rubocop:disable Metrics/AbcSize
|
25
|
+
# rubocop:disable Metrics/MethodLength
|
24
26
|
def authors
|
25
27
|
org = @attrs.dig('Research', 'Product', 'Source', 'Organization') || {}
|
26
28
|
if org.is_a? Array
|
@@ -41,12 +43,15 @@ class RIXML
|
|
41
43
|
}
|
42
44
|
end
|
43
45
|
end
|
46
|
+
# rubocop:enable Metrics/AbcSize
|
47
|
+
# rubocop:enable Metrics/MethodLength
|
44
48
|
|
45
49
|
def report_info
|
46
50
|
content = @attrs.dig('Research', 'Product', 'Content')
|
47
51
|
{
|
48
52
|
title: content['Title'],
|
49
53
|
abstract: content['Abstract'],
|
54
|
+
synopsis: content['Synopsis'],
|
50
55
|
file_name: content['Resource']&.dig('Name'),
|
51
56
|
pages: content['Resource']&.dig('Length').to_i
|
52
57
|
}
|
@@ -54,24 +59,19 @@ class RIXML
|
|
54
59
|
|
55
60
|
def context
|
56
61
|
context = @attrs.dig('Research', 'Product', 'Context')
|
57
|
-
|
58
|
-
companies: RIXML.extract_companies_from_context(context),
|
59
|
-
sectors: RIXML.extract_sectors_from_context(context)
|
60
|
-
}
|
62
|
+
{ companies: RIXML.extract_companies_from_context(context), sectors: RIXML.extract_sectors_from_context(context) }
|
61
63
|
end
|
62
64
|
|
63
|
-
def self.parse
|
65
|
+
def self.parse(data)
|
64
66
|
RIXML.new(Nokogiri::XML(data).root)
|
65
67
|
end
|
66
68
|
|
67
|
-
def self.parse_from_file
|
68
|
-
|
69
|
+
def self.parse_from_file(filename)
|
70
|
+
parse read_file(filename)
|
69
71
|
end
|
70
72
|
|
71
|
-
|
72
|
-
|
73
|
-
def self.read_file filename
|
74
|
-
body = ''
|
73
|
+
def self.read_file(filename)
|
74
|
+
body = ''.dup
|
75
75
|
File.open(filename, 'r') do |infile|
|
76
76
|
while (line = infile.gets)
|
77
77
|
body << line
|
@@ -80,7 +80,9 @@ class RIXML
|
|
80
80
|
body
|
81
81
|
end
|
82
82
|
|
83
|
-
|
83
|
+
# rubocop:disable Metrics/AbcSize
|
84
|
+
# rubocop:disable Metrics/MethodLength
|
85
|
+
def self.extract_companies_from_context(context)
|
84
86
|
companies = []
|
85
87
|
list = context['IssuerDetails'].try(:[], 'Issuer')
|
86
88
|
return [] if list.nil?
|
@@ -93,9 +95,10 @@ class RIXML
|
|
93
95
|
end
|
94
96
|
companies
|
95
97
|
end
|
98
|
+
# rubocop:enable Metrics/AbcSize
|
99
|
+
# rubocop:enable Metrics/MethodLength
|
96
100
|
|
97
|
-
def self.extract_sectors_from_context
|
98
|
-
sectors = []
|
101
|
+
def self.extract_sectors_from_context(context)
|
99
102
|
list = context['ProductClassifications'].try(:[], 'SectorIndustry')
|
100
103
|
return [] if list.nil?
|
101
104
|
list = [list] unless list.is_a? Array
|
data/rixml.gemspec
CHANGED
@@ -1,22 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
Gem::Specification.new do |s|
|
2
3
|
s.name = 'rixml'
|
3
|
-
s.version = '0.0.
|
4
|
+
s.version = '0.0.6'
|
4
5
|
s.date = '2016-11-01'
|
5
|
-
s.summary =
|
6
|
-
s.description =
|
6
|
+
s.summary = 'RIXML Parser'
|
7
|
+
s.description = 'Parse RIXML files'
|
7
8
|
s.homepage = 'https://github.com/AlphaExchange/rixml'
|
8
|
-
s.authors = [
|
9
|
+
s.authors = ['Alex Correia Santos', 'Leonardo Goularte Siqueira']
|
9
10
|
s.email = ['alex@alpha-exchange.com', 'leonardo@alpha-exchange.com']
|
10
11
|
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
11
12
|
s.require_paths = ['lib']
|
12
13
|
s.license = 'MIT'
|
13
|
-
|
14
|
+
|
14
15
|
s.required_ruby_version = '>= 2.2.2'
|
15
|
-
|
16
|
+
|
16
17
|
s.add_development_dependency 'bundler', '~> 1.12'
|
17
18
|
s.add_development_dependency 'minitest', '~> 5.1'
|
18
19
|
s.add_development_dependency 'rake', '~> 11.3'
|
19
|
-
|
20
|
+
s.add_development_dependency 'rubocop', '~> 0.45.0'
|
21
|
+
|
20
22
|
s.add_runtime_dependency 'nokogiri', '~> 1.5'
|
21
23
|
s.add_runtime_dependency 'activesupport', '>= 4.0.0'
|
22
24
|
end
|
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.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Correia Santos
|
@@ -53,6 +53,20 @@ dependencies:
|
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '11.3'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rubocop
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 0.45.0
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.45.0
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
71
|
name: nokogiri
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,6 +103,7 @@ executables: []
|
|
89
103
|
extensions: []
|
90
104
|
extra_rdoc_files: []
|
91
105
|
files:
|
106
|
+
- ".rubocop.yml"
|
92
107
|
- ".travis.yml"
|
93
108
|
- Gemfile
|
94
109
|
- Gemfile.lock
|