taxplorer 0.0.8

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 (43) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +14 -0
  4. data/.travis.yml +8 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +31 -0
  8. data/Rakefile +11 -0
  9. data/bin/taxplorer +4 -0
  10. data/data/taxonomies/uk-gaap/presentation/uk-aurep-2009-09-01-presentation.xml +133 -0
  11. data/data/taxonomies/uk-gaap/presentation/uk-bus-2009-09-01-presentation.xml +614 -0
  12. data/data/taxonomies/uk-gaap/presentation/uk-countries-2009-09-01-presentation.xml +552 -0
  13. data/data/taxonomies/uk-gaap/presentation/uk-currencies-2009-09-01-presentation.xml +388 -0
  14. data/data/taxonomies/uk-gaap/presentation/uk-direp-2009-09-01-presentation.xml +550 -0
  15. data/data/taxonomies/uk-gaap/presentation/uk-exchanges-2009-09-01-presentation.xml +381 -0
  16. data/data/taxonomies/uk-gaap/presentation/uk-gaap-2009-09-01-presentation.xml +11652 -0
  17. data/data/taxonomies/uk-gaap/presentation/uk-languages-2009-09-01-presentation.xml +222 -0
  18. data/data/taxonomies/uk-gaap/xsds/uk-aurep-2009-09-01.xsd +79 -0
  19. data/data/taxonomies/uk-gaap/xsds/uk-bus-2009-09-01.xsd +460 -0
  20. data/data/taxonomies/uk-gaap/xsds/uk-cd-ref-2009-09-01.xsd +62 -0
  21. data/data/taxonomies/uk-gaap/xsds/uk-common-2009-09-01.xsd +15 -0
  22. data/data/taxonomies/uk-gaap/xsds/uk-countries-2009-09-01.xsd +299 -0
  23. data/data/taxonomies/uk-gaap/xsds/uk-currencies-2009-09-01.xsd +215 -0
  24. data/data/taxonomies/uk-gaap/xsds/uk-direp-2009-09-01.xsd +348 -0
  25. data/data/taxonomies/uk-gaap/xsds/uk-exchanges-2009-09-01.xsd +209 -0
  26. data/data/taxonomies/uk-gaap/xsds/uk-gaap-2009-09-01.xsd +7283 -0
  27. data/data/taxonomies/uk-gaap/xsds/uk-gaap-ref-2009-09-01.xsd +32 -0
  28. data/data/taxonomies/uk-gaap/xsds/uk-languages-2009-09-01.xsd +134 -0
  29. data/data/taxonomies/uk-gaap/xsds/uk-types-2009-09-01.xsd +70 -0
  30. data/lib/taxplorer/command.rb +80 -0
  31. data/lib/taxplorer/find.rb +40 -0
  32. data/lib/taxplorer/parse.rb +95 -0
  33. data/lib/taxplorer/version.rb +3 -0
  34. data/lib/taxplorer/view.rb +23 -0
  35. data/lib/taxplorer.rb +29 -0
  36. data/taxplorer.gemspec +28 -0
  37. data/test/command_test.rb +6 -0
  38. data/test/find_test.rb +50 -0
  39. data/test/parse_test.rb +46 -0
  40. data/test/taxplorer_test.rb +19 -0
  41. data/test/test_helper.rb +4 -0
  42. data/test/view_test.rb +32 -0
  43. metadata +191 -0
@@ -0,0 +1,46 @@
1
+ require 'test_helper'
2
+ require 'taxplorer'
3
+
4
+ class TestParse < Minitest::Test
5
+ @@taxonomy_file = Nokogiri::XML(File.open('data/taxonomies/uk-gaap/xsds/uk-aurep-2009-09-01.xsd'))
6
+ @@presentation_file = Nokogiri::XML(File.open('data/taxonomies/uk-gaap/presentation/uk-aurep-2009-09-01-presentation.xml'))
7
+
8
+ def setup
9
+ @mockapp = Class.new do
10
+ include Taxplorer::Parse
11
+ attr_reader :records
12
+ def initialize;@records = {"sections" => [], "elements" => []};end
13
+ def clear;end
14
+ end.new
15
+ end
16
+
17
+ def test_sections_are_added
18
+ aurep_section = {:name=>"06 - Auditor's Report", :role_uri=>"http://www.xbrl.org/uk/role/AuditorsReport", :elements=>{}}
19
+ @mockapp.send(:add_sections, @@taxonomy_file)
20
+ assert_includes @mockapp.records["sections"], aurep_section
21
+ end
22
+
23
+ def test_elements_are_added
24
+ @mockapp.send(:add_elements, @@taxonomy_file)
25
+ assert_equal @mockapp.records["elements"].count, 55
26
+ assert_equal @mockapp.records["elements"].first[:id], "uk-aurep_AuditFeesExpenses"
27
+ end
28
+
29
+ def test_element_details_are_added
30
+ @mockapp.send(:add_elements, @@taxonomy_file)
31
+ info = @mockapp.records["elements"].first[:details]
32
+ assert_equal info.keys, ["id", "name", "type", "substitutionGroup", "periodType", "balance", "nillable"]
33
+ assert_equal info["type"], "xbrli:monetaryItemType"
34
+ assert_equal info["balance"], "debit"
35
+ end
36
+
37
+ def test_tree_creation
38
+ @mockapp.send(:add_sections, @@taxonomy_file)
39
+ @mockapp.send(:create_tree, @@presentation_file)
40
+ nodes = @mockapp.records["sections"].first[:elements]
41
+ roots = nodes.values.reject {|n| n.parent}
42
+ assert_equal roots.length, 3, "the auditors report should have three root nodes"
43
+ assert_equal nodes.values.select {|n| n.parent == "uk-aurep_AuditorInformationHeading"}.count, 7, "the auditors information root should have three chilren"
44
+ assert_equal nodes["uk-aurep_OtherNon-auditServicesEntitySubsidiariesFees"].parent, "uk-aurep_OtherNon-auditServicesFees", "deep node not added to tree"
45
+ end
46
+ end
@@ -0,0 +1,19 @@
1
+ require 'test_helper'
2
+ require 'taxplorer'
3
+
4
+ class TestTaxplorer < Minitest::Test
5
+
6
+ module Taxplorer::Command
7
+ def load_shell
8
+ return true
9
+ end
10
+ end
11
+
12
+ def test_app_initialization
13
+ app = Application.new
14
+ assert_equal [], app.records["sections"]
15
+ assert_equal [], app.records["elements"]
16
+ assert app.run
17
+ assert_send [app, :load_shell], "didn't load the shell"
18
+ end
19
+ end
@@ -0,0 +1,4 @@
1
+ require 'minitest/autorun'
2
+ require 'coveralls'
3
+ Coveralls.wear!
4
+
data/test/view_test.rb ADDED
@@ -0,0 +1,32 @@
1
+ require 'test_helper'
2
+ require 'taxplorer'
3
+
4
+ class TestView < Minitest::Test
5
+ @@taxonomy_file = Nokogiri::XML(File.open('data/taxonomies/uk-gaap/xsds/uk-aurep-2009-09-01.xsd'))
6
+ @@presentation_file = Nokogiri::XML(File.open('data/taxonomies/uk-gaap/presentation/uk-aurep-2009-09-01-presentation.xml'))
7
+
8
+ def setup
9
+ @mockapp = Class.new do
10
+ include Taxplorer::Parse
11
+ include Taxplorer::View
12
+ include Taxplorer::Find
13
+ attr_reader :records
14
+ def initialize;@records = {"sections" => [], "elements" => []};end
15
+ def clear;end
16
+ end.new
17
+ @mockapp.send(:add_sections, @@taxonomy_file)
18
+ @mockapp.send(:add_elements, @@taxonomy_file)
19
+ @mockapp.send(:create_tree, @@presentation_file)
20
+ end
21
+
22
+ def test_tree_view
23
+ @mockapp.get_section("06 - Auditor's Report")
24
+ l_1 = /uk-aurep_AuditorInformationHeading/
25
+ l_2 = /uk-bus_DescriptionOrOtherInformationOnThirdPartyAgent/
26
+ l_3 = /uk-bus_EntityAccountantsOrAuditors/
27
+ l_4 = /uk-bus_TotalAgentsDefault/
28
+ l_5 = /uk-bus_JointAgent3/
29
+ matches = Regexp.union(l_1, l_2, l_3, l_4, l_5)
30
+ assert_output(matches){ @mockapp.tree_view("uk-aurep_AuditorInformationHeading") }
31
+ end
32
+ end
metadata ADDED
@@ -0,0 +1,191 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: taxplorer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.8
5
+ platform: ruby
6
+ authors:
7
+ - Seosamh Cahill
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-20 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: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 5.6.1
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 5.6.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: nokogiri
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.6.6
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.6.6
83
+ - !ruby/object:Gem::Dependency
84
+ name: hirb
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.7.3
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.7.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: highline
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.7.2
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.7.2
111
+ description: View Taxonomy stuff.
112
+ email:
113
+ - seo.cahill@gmail.com
114
+ executables:
115
+ - taxplorer
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".coveralls.yml"
120
+ - ".gitignore"
121
+ - ".travis.yml"
122
+ - Gemfile
123
+ - LICENSE.txt
124
+ - README.md
125
+ - Rakefile
126
+ - bin/taxplorer
127
+ - data/taxonomies/uk-gaap/presentation/uk-aurep-2009-09-01-presentation.xml
128
+ - data/taxonomies/uk-gaap/presentation/uk-bus-2009-09-01-presentation.xml
129
+ - data/taxonomies/uk-gaap/presentation/uk-countries-2009-09-01-presentation.xml
130
+ - data/taxonomies/uk-gaap/presentation/uk-currencies-2009-09-01-presentation.xml
131
+ - data/taxonomies/uk-gaap/presentation/uk-direp-2009-09-01-presentation.xml
132
+ - data/taxonomies/uk-gaap/presentation/uk-exchanges-2009-09-01-presentation.xml
133
+ - data/taxonomies/uk-gaap/presentation/uk-gaap-2009-09-01-presentation.xml
134
+ - data/taxonomies/uk-gaap/presentation/uk-languages-2009-09-01-presentation.xml
135
+ - data/taxonomies/uk-gaap/xsds/uk-aurep-2009-09-01.xsd
136
+ - data/taxonomies/uk-gaap/xsds/uk-bus-2009-09-01.xsd
137
+ - data/taxonomies/uk-gaap/xsds/uk-cd-ref-2009-09-01.xsd
138
+ - data/taxonomies/uk-gaap/xsds/uk-common-2009-09-01.xsd
139
+ - data/taxonomies/uk-gaap/xsds/uk-countries-2009-09-01.xsd
140
+ - data/taxonomies/uk-gaap/xsds/uk-currencies-2009-09-01.xsd
141
+ - data/taxonomies/uk-gaap/xsds/uk-direp-2009-09-01.xsd
142
+ - data/taxonomies/uk-gaap/xsds/uk-exchanges-2009-09-01.xsd
143
+ - data/taxonomies/uk-gaap/xsds/uk-gaap-2009-09-01.xsd
144
+ - data/taxonomies/uk-gaap/xsds/uk-gaap-ref-2009-09-01.xsd
145
+ - data/taxonomies/uk-gaap/xsds/uk-languages-2009-09-01.xsd
146
+ - data/taxonomies/uk-gaap/xsds/uk-types-2009-09-01.xsd
147
+ - lib/taxplorer.rb
148
+ - lib/taxplorer/command.rb
149
+ - lib/taxplorer/find.rb
150
+ - lib/taxplorer/parse.rb
151
+ - lib/taxplorer/version.rb
152
+ - lib/taxplorer/view.rb
153
+ - taxplorer.gemspec
154
+ - test/command_test.rb
155
+ - test/find_test.rb
156
+ - test/parse_test.rb
157
+ - test/taxplorer_test.rb
158
+ - test/test_helper.rb
159
+ - test/view_test.rb
160
+ homepage: https://github.com/seocahill/taxplorer
161
+ licenses:
162
+ - MIT
163
+ metadata: {}
164
+ post_install_message:
165
+ rdoc_options: []
166
+ require_paths:
167
+ - lib
168
+ required_ruby_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ required_rubygems_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ requirements: []
179
+ rubyforge_project:
180
+ rubygems_version: 2.4.5
181
+ signing_key:
182
+ specification_version: 4
183
+ summary: XBRL taxonomy parser
184
+ test_files:
185
+ - test/command_test.rb
186
+ - test/find_test.rb
187
+ - test/parse_test.rb
188
+ - test/taxplorer_test.rb
189
+ - test/test_helper.rb
190
+ - test/view_test.rb
191
+ has_rdoc: