xbrlware-extras 1.1.2.19.2 → 1.1.2.19.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ *swp
1
2
  *.gem
2
3
  *.rbc
3
4
  .bundle
@@ -25,7 +25,10 @@ module Xbrlware
25
25
  end
26
26
 
27
27
  def is_disclosure?
28
- @title.downcase =~ /^disclosure/ ? true : false
28
+ return true if @title.downcase =~ /^disclosure/
29
+ return true if @title.downcase =~ /^summary of/
30
+ return true if @title.downcase =~ /details$/
31
+ return false
29
32
  end
30
33
 
31
34
  def top_level_arcs
@@ -39,13 +42,34 @@ module Xbrlware
39
42
  return uniq_arcs
40
43
  end
41
44
 
42
- def print_tree(indent_count=0)
45
+ def sort!(args)
46
+ @arcs = @arcs.sort do |x,y|
47
+ xscore = 0
48
+ yitems = y.leaf_items(args[:period])
49
+ x.leaf_items(args[:period]).each do |xnode|
50
+ yitems.each do |ynode|
51
+ xscore = (xnode <=> ynode) # NOTE: Assumes caller has defined <=> for all leaf nodes
52
+ end
53
+ end
54
+ puts "\"#{x.pretty_name}\" #{xscore <=> 0} \"#{y.pretty_name}\""
55
+ xscore <=> 0
56
+ end
57
+ @arcs.each{ |arc| arc.sort!(args) }
58
+ end
59
+
60
+ def sprint_tree(indent_count=0, simplified=false)
43
61
  indent = " " * indent_count
44
- puts indent + "Calc: #{@title} (#{@role})"
62
+ output = indent + "Calc: #{@title} (#{@role})" + "\n"
45
63
 
46
- @arcs.each { |arc| arc.print_tree(indent_count+1) }
64
+ #@arcs.each { |arc| output += arc.sprint_tree(indent_count+1, simplified) }
65
+ top_level_arcs.each { |arc| output += arc.sprint_tree(indent_count+1, simplified) }
47
66
 
48
- puts indent + "\n\n"
67
+ output += indent + "\n\n"
68
+ output
69
+ end
70
+
71
+ def print_tree(indent_count=0, simplified=false)
72
+ puts sprint_tree(indent_count, simplified)
49
73
  end
50
74
 
51
75
  def leaf_items(period)
@@ -83,6 +107,23 @@ module Xbrlware
83
107
  end
84
108
  end
85
109
 
110
+ def sort!(args)
111
+ if @children
112
+ @children = @children.sort do |x,y|
113
+ xscore = 0
114
+ yitems = y.leaf_items(args[:period])
115
+ x.leaf_items(args[:period]).each do |xnode|
116
+ yitems.each do |ynode|
117
+ xscore = (xnode <=> ynode) # NOTE: Assumes caller has defined <=> for all leaf nodes
118
+ end
119
+ end
120
+ puts "\"#{x.label}\" #{xscore <=> 0} \"#{y.label}\""
121
+ xscore <=> 0
122
+ end
123
+ end
124
+ (@children || []).each{ |child| child.sort!(args) }
125
+ end
126
+
86
127
  def contains_arc?(arc)
87
128
  return false if @children.empty?
88
129
 
@@ -94,19 +135,47 @@ module Xbrlware
94
135
  return false
95
136
  end
96
137
 
97
- def print_tree(indent_count=0)
138
+ def sprint_tree(indent_count=0, simplified=false)
98
139
  indent = " " * indent_count
99
- output = "#{indent} #{@label}"
100
-
101
- (@items || []).each do |item|
102
- period = item.context.period
103
- period_str = period.is_duration? ? "#{period.value["start_date"]} to #{period.value["end_date"]}" : "#{period.value}"
104
- output += " [#{item.def["xbrli:balance"]}]" if item.def
105
- output += " (#{period_str}) = #{item.value}" if item.value
140
+ str = "#{indent} CA:#{@label}"
141
+
142
+ if simplified
143
+ (@items.last(1) || []).each do |item|
144
+ str += " I:{#{item.pretty_name}} "
145
+ # FIXME: First off, sub-leaf is terrible, non-standard, confusing terminology. Call it something else.
146
+ # FIXME: Second, why aren't we calling Item::print_tree()?
147
+ if item.is_sub_leaf?
148
+ str += " [sub-leaf]"
149
+ else
150
+ str += " [non-sub-leaf]"
151
+ end
152
+ period = item.context.period
153
+ period_str = period.is_duration? ? "#{period.value["start_date"]} to #{period.value["end_date"]}" : "#{period.value}"
154
+ str += " [#{item.def["xbrli:balance"]}]" if item.def && item.def["xbrli:balance"]
155
+ str += " (#{period_str}) = #{item.value}" if item.value
156
+ end
157
+ else
158
+ (@items || []).each do |item|
159
+ str += " I:{#{item.pretty_name}} "
160
+ if item.is_sub_leaf?
161
+ str += " [sub-leaf]"
162
+ else
163
+ str += " [non-sub-leaf]"
164
+ end
165
+ period = item.context.period
166
+ period_str = period.is_duration? ? "#{period.value["start_date"]} to #{period.value["end_date"]}" : "#{period.value}"
167
+ str += " [#{item.def["xbrli:balance"]}]" if item.def && item.def["xbrli:balance"]
168
+ str += " (#{period_str}) = #{item.value}" if item.value
169
+ end
106
170
  end
107
- puts indent + output
171
+ output = indent + str + "\n"
172
+
173
+ (@children || []).each { |child| output += child.sprint_tree(indent_count+1, simplified) }
174
+ output
175
+ end
108
176
 
109
- (@children || []).each { |child| child.print_tree(indent_count+1) }
177
+ def print_tree(indent_count=0, simplified=false)
178
+ puts sprint_tree(indent_count, simplified)
110
179
  end
111
180
 
112
181
  def leaf_items(period)
@@ -126,29 +195,39 @@ module Xbrlware
126
195
 
127
196
  class PresentationLinkbase
128
197
  class Presentation
129
- def print_tree(indent_count=0)
198
+ def sprint_tree(indent_count=0, simplified=false)
130
199
  indent = " " * indent_count
131
- puts indent + "Pres: #{@title} (#{@role})"
200
+ output = indent + "Pres: #{@title} (#{@role})" + "\n"
132
201
 
133
- @arcs.each { |arc| arc.print_tree(indent_count+1) }
202
+ @arcs.each { |arc| output += arc.sprint_tree(indent_count+1, simplified) }
134
203
 
135
- puts indent + "\n\n"
204
+ output += indent + "\n\n"
205
+ output
206
+ end
207
+
208
+ def print_tree(indent_count=0, simplified=false)
209
+ puts sprint_tree(indent_count, simplified)
136
210
  end
137
211
 
138
212
  class PresentationArc
139
- def print_tree(indent_count=0)
213
+ def sprint_tree(indent_count=0, simplified=false)
140
214
  indent = " " * indent_count
141
- output = "#{indent} #{@label}"
215
+ str = "#{indent} #{@label}"
142
216
 
143
217
  @items.each do |item|
144
218
  period=item.context.period
145
219
  period_str = period.is_duration? ? "#{period.value["start_date"]} to #{period.value["end_date"]}" : "#{period.value}"
146
- output += " [#{item.def["xbrli:balance"]}]" unless item.def.nil?
147
- output += " (#{period_str}) = #{item.value}" unless item.nil?
220
+ str += " [#{item.def["xbrli:balance"]}]" unless item.def.nil?
221
+ str += " (#{period_str}) = #{item.value}" unless item.nil?
148
222
  end
149
- puts indent + output
223
+ output = indent + str + "\n"
224
+
225
+ @children.each { |child| output += child.sprint_tree(indent_count+1, simplified) }
226
+ output
227
+ end
150
228
 
151
- @children.each { |child| child.print_tree(indent_count+1) }
229
+ def print_tree(indent_count=0, simplified=false)
230
+ puts sprint_tree(indent_count, simplified)
152
231
  end
153
232
  end
154
233
  end
@@ -1,5 +1,5 @@
1
1
  module Xbrlware
2
2
  module Extras
3
- VERSION = "1.1.2.19.2"
3
+ VERSION = "1.1.2.19.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xbrlware-extras
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2.19.2
4
+ version: 1.1.2.19.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,23 +9,27 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-31 00:00:00.000000000 -04:00
13
- default_executable:
12
+ date: 2013-08-23 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: xbrlware-ruby19
17
- requirement: &79701520 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
- - - =
19
+ - - '='
21
20
  - !ruby/object:Gem::Version
22
21
  version: 1.1.2.19.2
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *79701520
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - '='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.1.2.19.2
26
30
  - !ruby/object:Gem::Dependency
27
31
  name: rspec
28
- requirement: &79701270 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
29
33
  none: false
30
34
  requirements:
31
35
  - - ~>
@@ -33,7 +37,12 @@ dependencies:
33
37
  version: 2.0.1
34
38
  type: :development
35
39
  prerelease: false
36
- version_requirements: *79701270
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.0.1
37
46
  description: A set of extentions that make it easier to build on top of xbrlware
38
47
  email:
39
48
  - jim.lindstrom@gmail.com
@@ -56,7 +65,6 @@ files:
56
65
  - spec/spec_helper.rb
57
66
  - spec/xbrlware_helpers_spec.rb
58
67
  - xbrlware-extras.gemspec
59
- has_rdoc: true
60
68
  homepage: ''
61
69
  licenses: []
62
70
  post_install_message:
@@ -77,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
85
  version: '0'
78
86
  requirements: []
79
87
  rubyforge_project:
80
- rubygems_version: 1.6.2
88
+ rubygems_version: 1.8.24
81
89
  signing_key:
82
90
  specification_version: 3
83
91
  summary: A set of extentions that make it easier to build on top of xbrlware