xbrlware-ce 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. data/ReleaseNotes.txt +23 -5
  2. data/doc/classes/Edgar/RSSFeedDownloader.html +2 -2
  3. data/doc/classes/NSAware.html +135 -0
  4. data/doc/classes/Xbrlware.html +1 -6
  5. data/doc/classes/Xbrlware/Context.html +85 -78
  6. data/doc/classes/Xbrlware/Context/Period.html +49 -49
  7. data/doc/classes/Xbrlware/Entity.html +49 -49
  8. data/doc/classes/Xbrlware/Identifier.html +14 -14
  9. data/doc/classes/Xbrlware/Instance.html +173 -98
  10. data/doc/classes/Xbrlware/Item.html +62 -25
  11. data/doc/classes/Xbrlware/Linkbase/CalculationLinkbase.html +41 -3
  12. data/doc/classes/Xbrlware/Linkbase/CalculationLinkbase/Calculation.html +1 -1
  13. data/doc/classes/Xbrlware/Linkbase/CalculationLinkbase/Calculation/CalculationArc.html +1 -1
  14. data/doc/classes/Xbrlware/Linkbase/DefinitionLinkbase.html +43 -3
  15. data/doc/classes/Xbrlware/Linkbase/DefinitionLinkbase/Definition.html +2 -2
  16. data/doc/classes/Xbrlware/Linkbase/DefinitionLinkbase/Definition/DefinitionArc.html +1 -1
  17. data/doc/classes/Xbrlware/Linkbase/LabelLinkbase/Label.html +1 -1
  18. data/doc/classes/Xbrlware/Linkbase/Linkbase/Link/Arc.html +22 -7
  19. data/doc/classes/Xbrlware/Linkbase/PresentationLinkbase.html +41 -3
  20. data/doc/classes/Xbrlware/Linkbase/PresentationLinkbase/Presentation.html +2 -8
  21. data/doc/classes/Xbrlware/Linkbase/PresentationLinkbase/Presentation/PresentationArc.html +1 -1
  22. data/doc/classes/Xbrlware/Taxonomy.html +84 -51
  23. data/doc/classes/Xbrlware/TaxonomyDefintion.html +14 -14
  24. data/doc/classes/Xbrlware/Unit.html +14 -7
  25. data/doc/classes/Xbrlware/Unit/Divide.html +7 -7
  26. data/doc/created.rid +1 -1
  27. data/doc/files/lib/edgar/edgar_data_downloader_rb.html +1 -1
  28. data/doc/files/lib/edgar_rb.html +1 -1
  29. data/doc/files/lib/xbrlware/context_rb.html +1 -1
  30. data/doc/files/lib/xbrlware/instance_rb.html +1 -1
  31. data/doc/files/lib/xbrlware/item_rb.html +1 -1
  32. data/doc/files/lib/xbrlware/linkbase/calculation_linkbase_rb.html +1 -1
  33. data/doc/files/lib/xbrlware/linkbase/definition_linkbase_rb.html +1 -1
  34. data/doc/files/lib/xbrlware/linkbase/label_linkbase_rb.html +1 -1
  35. data/doc/files/lib/xbrlware/linkbase/linkbase_rb.html +1 -1
  36. data/doc/files/lib/xbrlware/linkbase/presentation_linkbase_rb.html +1 -1
  37. data/doc/files/lib/xbrlware/{report_rb.html → ns_aware_rb.html} +10 -4
  38. data/doc/files/lib/xbrlware/taxonomy_rb.html +1 -1
  39. data/doc/files/lib/xbrlware/unit_rb.html +1 -1
  40. data/doc/files/lib/xbrlware/util_rb.html +1 -1
  41. data/doc/files/lib/xbrlware/version_rb.html +1 -1
  42. data/doc/files/lib/xbrlware/xml_parser_rb.html +1 -1
  43. data/doc/files/lib/xbrlware_rb.html +3 -1
  44. data/doc/fr_class_index.html +1 -1
  45. data/doc/fr_file_index.html +1 -1
  46. data/doc/fr_method_index.html +68 -68
  47. data/doc/index.html +2 -2
  48. data/example/callb/calculation_elements.rb +33 -0
  49. data/example/callb/calculation_elements_to_table.rb +62 -0
  50. data/example/case_study/cash_analyzer.rb +27 -0
  51. data/lib/edgar/edgar_data_downloader.rb +6 -6
  52. data/lib/xbrlware.rb +2 -0
  53. data/lib/xbrlware/context.rb +2 -0
  54. data/lib/xbrlware/instance.rb +65 -26
  55. data/lib/xbrlware/item.rb +34 -26
  56. data/lib/xbrlware/linkbase/calculation_linkbase.rb +51 -7
  57. data/lib/xbrlware/linkbase/definition_linkbase.rb +42 -2
  58. data/lib/xbrlware/linkbase/label_linkbase.rb +1 -0
  59. data/lib/xbrlware/linkbase/linkbase.rb +19 -9
  60. data/lib/xbrlware/linkbase/presentation_linkbase.rb +52 -9
  61. data/lib/xbrlware/ns_aware.rb +5 -0
  62. data/lib/xbrlware/taxonomy.rb +7 -0
  63. data/lib/xbrlware/unit.rb +1 -0
  64. data/lib/xbrlware/version.rb +1 -1
  65. data/lib/xbrlware/xml_parser.rb +20 -0
  66. data/test/lib/edgar/edgar_data_downloader_test.rb +1 -1
  67. data/test/lib/edgar/resources/usgaap.rss.xml +3914 -2599
  68. data/test/lib/xbrlware/46_item_test.rb +30 -0
  69. data/test/lib/xbrlware/47_context_test.rb +16 -8
  70. data/test/lib/xbrlware/48_unit_test.rb +10 -0
  71. data/test/lib/xbrlware/instance_test.rb +156 -2
  72. data/test/lib/xbrlware/linkbase/calculation_linkbase_test.rb +5 -5
  73. data/test/lib/xbrlware/linkbase/definition_linkbase_test.rb +2 -2
  74. data/test/lib/xbrlware/linkbase/presentation_linkbase_test.rb +0 -1
  75. data/test/lib/xbrlware/taxonomy_test.rb +28 -0
  76. data/test/lib/xbrlware/xml_parser_test.rb +81 -0
  77. data/test/scratchpad/tooltip.html +10 -0
  78. data/xbrlware-ce.gemspec +2 -0
  79. metadata +36 -22
  80. data/Rakefile.rb +0 -124
  81. data/doc/classes/Xbrlware/Report.html +0 -352
  82. data/lib/xbrlware/report.rb +0 -277
  83. data/test/lib/xbrlware/resources/report_test_xbrl_files/cal.xml +0 -219
  84. data/test/lib/xbrlware/resources/report_test_xbrl_files/def.xml +0 -186
  85. data/test/lib/xbrlware/resources/report_test_xbrl_files/instance.xml +0 -5822
  86. data/test/lib/xbrlware/resources/report_test_xbrl_files/lab.xml +0 -782
  87. data/test/lib/xbrlware/resources/report_test_xbrl_files/pre.xml +0 -485
  88. data/test/lib/xbrlware/resources/report_test_xbrl_files/report/report_index.html +0 -62
  89. data/test/lib/xbrlware/resources/report_test_xbrl_files/taxonomy.xsd +0 -178
  90. data/xbrlware.iml +0 -30
@@ -105,6 +105,10 @@ class TestItem < Test::Unit::TestCase
105
105
  end
106
106
 
107
107
  def test_465_decimals
108
+
109
+ value=Xbrlware::Item::ItemValue.new("2.65", nil, "INF")
110
+ assert_equal("2.65", value.decimals)
111
+
108
112
  value=Xbrlware::Item::ItemValue.new("2002000", nil, "-4")
109
113
  assert_equal("2000000.0", value.decimals)
110
114
 
@@ -250,4 +254,30 @@ class TestItem < Test::Unit::TestCase
250
254
  assert_nil(items[0].value)
251
255
  end
252
256
 
257
+ def test_item_namespace_and_namespace_prefix
258
+ xml_file=File.dirname(__FILE__)+"/resources/46/46_item_value.xml"
259
+ XbrlTest::SchemaValidator.validate(xml_file, @@xsd_file)
260
+ xbrl = Xbrlware::Instance.new(xml_file)
261
+ items = xbrl.item("SalesRevenueGoodsNet", "D2008Q4", "AUD")
262
+ assert_equal("http://xbrl.us/us-gaap/2009-01-31", items[0].ns)
263
+ assert_equal("us-gaap", items[0].nsp)
264
+ end
265
+
266
+ def test_is_value_numeric
267
+ item = Xbrlware::Item.new(nil, nil, nil, "12345")
268
+ assert item.is_value_numeric?
269
+
270
+ item = Xbrlware::Item.new(nil, nil, nil, "12345.6789")
271
+ assert item.is_value_numeric?
272
+
273
+ item = Xbrlware::Item.new(nil, nil, nil, "-12345")
274
+ assert item.is_value_numeric?
275
+
276
+ item = Xbrlware::Item.new(nil, nil, nil, "1SS")
277
+ assert_equal(false, item.is_value_numeric?)
278
+
279
+ item = Xbrlware::Item.new(nil, nil, nil, "xyz")
280
+ assert_equal(false, item.is_value_numeric?)
281
+ end
282
+
253
283
  end
@@ -54,10 +54,9 @@ class TestContext < Test::Unit::TestCase
54
54
  xbrl = Xbrlware::Instance.new(xml_file)
55
55
  ctx=xbrl.context("I2007_CommonStockMember")
56
56
  entity =ctx.entity
57
- explicitmember0 = {"dimension" => "us-gaap:StatementEquityComponentsAxis", "content"=> "us-gaap:CommonStockMember"}
58
- explicitmember1 = {"dimension" => "us-gaap:StatementEquityComponentsAxis", "content"=> "us-gaap:PreferredStockMember"}
59
- expected = {"explicitMember" => [explicitmember0, explicitmember1] }
60
- assert_equal(expected, entity.segment)
57
+ assert_equal(2, entity.segment["explicitMember"].size)
58
+ assert_equal("http://www.xbrl.org/2003/instance", entity.segment["nspace"])
59
+ assert_equal("xbrli", entity.segment["nspace_prefix"])
61
60
  end
62
61
 
63
62
  def test_4732_entity_segment_not_present
@@ -75,10 +74,9 @@ class TestContext < Test::Unit::TestCase
75
74
  XbrlTest::SchemaValidator.validate(xml_file, @@xsd_file)
76
75
  xbrl = Xbrlware::Instance.new(xml_file)
77
76
  scenario =xbrl.context("I2007_CommonStockMember").scenario
78
- explicitmember0 = {"dimension" => "us-gaap:StatementEquityComponentsAxis", "content"=> "us-gaap:CommonStockMember"}
79
- explicitmember1 = {"dimension" => "us-gaap:StatementEquityComponentsAxis", "content"=> "us-gaap:CommonStockMember another instance"}
80
- expected = {"explicitMember" => [explicitmember0, explicitmember1] }
81
- assert_equal(expected, scenario)
77
+ assert_equal(2, scenario["explicitMember"].size)
78
+ assert_equal("http://www.xbrl.org/2003/instance", scenario["nspace"])
79
+ assert_equal("xbrli", scenario["nspace_prefix"])
82
80
  end
83
81
 
84
82
  def test_474_scenario_not_present
@@ -135,4 +133,14 @@ class TestContext < Test::Unit::TestCase
135
133
  ctx=xbrl.context("not-exist")
136
134
  assert_nil(ctx)
137
135
  end
136
+
137
+ def test_context_namespace_and_prefix
138
+ xml_file=File.dirname(__FILE__)+"/resources/47/472_period_forever.xml"
139
+ XbrlTest::SchemaValidator.validate(xml_file, @@xsd_file)
140
+ xbrl = Xbrlware::Instance.new(xml_file)
141
+ c=xbrl.context("I2007_CommonStockMember")
142
+ assert_equal("http://www.xbrl.org/2003/instance", c.ns)
143
+ assert_equal("xbrli", c.nsp)
144
+ end
145
+
138
146
  end
@@ -42,4 +42,14 @@ class TestUnit < Test::Unit::TestCase
42
42
  assert_equal("xbrli:shares", unit.measure.denominator[0])
43
43
  assert_equal("xbrli:pure", unit.measure.denominator[1])
44
44
  end
45
+
46
+ def test_unit_namespace_and_prefix
47
+ xml_file=File.dirname(__FILE__)+"/resources/48/482_unit_measure.xml"
48
+ XbrlTest::SchemaValidator.validate(xml_file, @@xsd_file)
49
+ xbrl = Xbrlware::Instance.new(xml_file)
50
+ unit = xbrl.unit("USD_multipy_by_shares")
51
+ assert_equal("http://www.xbrl.org/2003/instance", unit.ns)
52
+ assert_equal("xbrli", unit.nsp)
53
+ end
54
+
45
55
  end
@@ -52,6 +52,15 @@ class TestXbrlInstance < Test::Unit::TestCase
52
52
  end
53
53
 
54
54
 
55
+ def test_ctx_groupby_period
56
+ group = @xbrl.ctx_groupby_period
57
+ assert_equal(6, group.keys.size)
58
+ period = Xbrlware::Context::Period.new(
59
+ {"start_date"=> Date.parse("2008-01-02"), "end_date" => Date.parse("2008-12-30")}
60
+ )
61
+ assert_equal(2, group[period].size)
62
+ end
63
+
55
64
  def test_context_for_item
56
65
  ctxs=@xbrl.context_for_item("ProfitLoss")
57
66
  assert_equal(6, ctxs.size)
@@ -247,7 +256,7 @@ class TestXbrlInstance < Test::Unit::TestCase
247
256
  assert_equal(1, items.size)
248
257
  end
249
258
 
250
- def test_item_all
259
+ def test_item_all_map
251
260
  items=@xbrl.item_all_map
252
261
  assert_equal(6, items["PROFITLOSS"].size)
253
262
  assert_equal(2, items["RECEIVABLESNETCURRENT"].size)
@@ -256,6 +265,12 @@ class TestXbrlInstance < Test::Unit::TestCase
256
265
  assert_nil(items["NOT-EXIST"])
257
266
  end
258
267
 
268
+
269
+ def test_item_all
270
+ items=@xbrl.item_all
271
+ assert_equal(10, items.size)
272
+ end
273
+
259
274
  def test_entity_details
260
275
  entity_details=@xbrl.entity_details
261
276
  assert_equal("UNKNOWN", entity_details["name"])
@@ -263,7 +278,146 @@ class TestXbrlInstance < Test::Unit::TestCase
263
278
  @xbrl.entity_details={"name" => "EntityName"}
264
279
  assert_equal("EntityName", entity_details["name"])
265
280
  assert_equal("UNKNOWN", entity_details["ci_keys"])
266
-
281
+
282
+ end
283
+
284
+ def test_create_instance_from_improper_xbrl_string
285
+ xbrl_content=%{
286
+ <?xml version="1.0" encoding="US-ASCII"?>
287
+ <xbrli:xbrl xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dei="http://xbrl.us/dei/2009-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
288
+ xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:us-gaap="http://xbrl.us/us-gaap/2009-01-31"
289
+ xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xlink="http://www.w3.org/1999/xlink"
290
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:local="http://xbrl_us_gaap_local">
291
+ <link:schemaRef xlink:href="us_gaap_schema_local.xsd" xlink:type="simple"/>
292
+ <xbrli:context id="I2007Q">
293
+ <xbrli:entity>
294
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">
295
+ 0000056873
296
+ </xbrli:identifier>
297
+ <xbrli:segment>
298
+ <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
299
+ </xbrli:segment>
300
+ </xbrli:entity>
301
+ <xbrli:period>
302
+ <xbrli:startDate>2007-01-02</xbrli:startDate>
303
+ <xbrli:endDate>2007-03-30</xbrli:endDate>
304
+ </xbrli:period>
305
+ </xbrli:context>
306
+
307
+ <xbrli:context id="I2008Q">
308
+ <xbrli:entity>
309
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">
310
+ 0000056873
311
+ </xbrli:identifier>
312
+ <xbrli:segment>
313
+ <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
314
+ </xbrli:segment>
315
+ </xbrli:entity>
316
+ <xbrli:period>
317
+ <xbrli:startDate>2008-01-02</xbrli:startDate>
318
+ <xbrli:endDate>2008-03-30</xbrli:endDate>
319
+ </xbrli:period>
320
+ </xbrli:context>
321
+
322
+ <xbrli:context id="I2007Y-ADJ">
323
+ <xbrli:entity>
324
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">
325
+ 0000056873
326
+ </xbrli:identifier>
327
+ <xbrli:segment>
328
+ <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
329
+ <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsBySegmentAxis">us-gaap:AdjustableRateResidentialMortgageMember</xbrldi:explicitMember>
330
+ </xbrli:segment>
331
+ </xbrli:entity>
332
+ <xbrli:period>
333
+ <xbrli:startDate>2007-01-02</xbrli:startDate>
334
+ <xbrli:endDate>2007-12-30</xbrli:endDate>
335
+ </xbrli:period>
336
+ </xbrli:context>
337
+
338
+ <xbrli:context id="I2008Y-ADJ">
339
+ <xbrli:entity>
340
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">
341
+ 0000056873
342
+ </xbrli:identifier>
343
+ <xbrli:segment>
344
+ <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
345
+ <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsBySegmentAxis">us-gaap:AdjustableRateResidentialMortgageMember</xbrldi:explicitMember>
346
+ </xbrli:segment>
347
+ </xbrli:entity>
348
+ <xbrli:period>
349
+ <xbrli:startDate>2008-01-02</xbrli:startDate>
350
+ <xbrli:endDate>2008-12-30</xbrli:endDate>
351
+ </xbrli:period>
352
+ </xbrli:context>
353
+
354
+ <xbrli:context id="I2007Y">
355
+ <xbrli:entity>
356
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">
357
+ 0000056873
358
+ </xbrli:identifier>
359
+ </xbrli:entity>
360
+ <xbrli:period>
361
+ <xbrli:startDate>2007-01-02</xbrli:startDate>
362
+ <xbrli:endDate>2007-12-30</xbrli:endDate>
363
+ </xbrli:period>
364
+ </xbrli:context>
365
+
366
+ <xbrli:context id="I2008Y">
367
+ <xbrli:entity>
368
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">
369
+ 0000056873
370
+ </xbrli:identifier>
371
+ </xbrli:entity>
372
+ <xbrli:period>
373
+ <xbrli:startDate>2008-01-02</xbrli:startDate>
374
+ <xbrli:endDate>2008-12-30</xbrli:endDate>
375
+ </xbrli:period>
376
+ </xbrli:context>
377
+
378
+ <xbrli:context id="I2008">
379
+ <xbrli:entity>
380
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">0000056873</xbrli:identifier>
381
+ </xbrli:entity>
382
+ <xbrli:period>
383
+ <xbrli:instant>2008-12-30</xbrli:instant>
384
+ </xbrli:period>
385
+ </xbrli:context>
386
+ <xbrli:context id="I2007">
387
+ <xbrli:entity>
388
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">0000056873</xbrli:identifier>
389
+ </xbrli:entity>
390
+ <xbrli:period>
391
+ <xbrli:instant>2007-12-30</xbrli:instant>
392
+ </xbrli:period>
393
+ </xbrli:context>
394
+
395
+ <xbrli:unit id="USD">
396
+ <xbrli:measure>iso4217:USD</xbrli:measure>
397
+ </xbrli:unit>
398
+
399
+ <xbrli:unit id="AUD">
400
+ <xbrli:measure>iso4217:AUD</xbrli:measure>
401
+ </xbrli:unit>
402
+
403
+ <us-gaap:ProfitLoss contextRef="I2007Q" decimals="-6" unitRef="USD">947000000</us-gaap:ProfitLoss>
404
+ <us-gaap:ProfitLoss contextRef="I2008Q" unitRef="USD" decimals="-6">702000000</us-gaap:ProfitLoss>
405
+ <us-gaap:ProfitLoss contextRef="I2007Y-ADJ" unitRef="USD" decimals="-6">802000000</us-gaap:ProfitLoss>
406
+ <us-gaap:ProfitLoss contextRef="I2008Y-ADJ" unitRef="USD" decimals="-6">902000000</us-gaap:ProfitLoss>
407
+ <us-gaap:ProfitLoss contextRef="I2007Y" unitRef="USD" decimals="-6">805000000</us-gaap:ProfitLoss>
408
+ <us-gaap:ProfitLoss contextRef="I2008Y" unitRef="USD" decimals="-6">905
409
+ 000000</us-gaap:ProfitLoss>
410
+ <us-gaap:ReceivablesNetCurrent contextRef="I2007" decimals="-6" unitRef="USD">944000000</us-gaap:ReceivablesNetCurrent>
411
+ <us-gaap:ReceivablesNetCurrent contextRef="I2008" decimals="-6" unitRef="USD">945000000</us-gaap:ReceivablesNetCurrent>
412
+ <local:IncomeBeforeIncomeTaxes contextRef="I2007Q" unitRef="USD" decimals="-6">902000000</local:IncomeBeforeIncomeTaxes>
413
+ <local:Income-Before-IncomeTaxes contextRef="I2008Q" unitRef="USD" decimals="-6">902000000</local:Income-Before-IncomeTaxes>
414
+ </xbrli:xbrl>
415
+ }
416
+ @xbrl = Xbrlware::Instance.new(xbrl_content)
417
+
418
+ items=@xbrl.item("IncomeBeforeIncomeTaxes")
419
+ assert_not_nil(items)
420
+ assert_equal(1, items.size)
267
421
  end
268
422
 
269
423
  end
@@ -21,11 +21,11 @@ class TestCalculationLinkbase < Test::Unit::TestCase
21
21
  get_all_items(collector, arc)
22
22
  end
23
23
 
24
- expected=%w{loc_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest
25
- loc_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
26
- loc_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossBeforeReclassificationAndTax
27
- loc_ProfitLoss
28
- loc_OtherComprehensiveIncomeDerivativesQualifyingAsHedgesNetOfTaxPeriodIncreaseDecrease}
24
+ expected=%w{loc_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest_19
25
+ loc_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent_19
26
+ loc_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossBeforeReclassificationAndTax_19
27
+ loc_ProfitLoss_19
28
+ loc_OtherComprehensiveIncomeDerivativesQualifyingAsHedgesNetOfTaxPeriodIncreaseDecrease_19}
29
29
  assert_equal(expected.sort, collector.to_a.sort)
30
30
  end
31
31
 
@@ -16,13 +16,13 @@ class TestDefinitionLinkbase < Test::Unit::TestCase
16
16
  dimensions=definition.primary_items.to_a[0].hypercubes.to_a[0].dimensions.to_a
17
17
  assert_equal(1, dimensions[0].domains.size)
18
18
  domain_prods=dimensions[0].domains.to_a
19
- assert_equal("company_AllRegions", domain_prods[0].item_id)
19
+ assert_equal("company_AllRegions_0", domain_prods[0].item_id)
20
20
  assert_equal(4, domain_prods[0].members.size)
21
21
 
22
22
 
23
23
  assert_equal(1, dimensions[1].domains.size)
24
24
  domain_regions=dimensions[1].domains.to_a
25
- assert_equal("company_AllProducts", domain_regions[0].item_id)
25
+ assert_equal("company_AllProducts_0", domain_regions[0].item_id)
26
26
  assert_equal(4, domain_regions[0].members.size)
27
27
  end
28
28
 
@@ -29,5 +29,4 @@ class TestPresentationLinkbase < Test::Unit::TestCase
29
29
  presentation=@pre_linkbase.presentation("not-exist")
30
30
  assert_nil(presentation)
31
31
  end
32
-
33
32
  end
@@ -121,4 +121,32 @@ class TestXbrlTaxonomyForNewDefinition < Test::Unit::TestCase
121
121
 
122
122
  end
123
123
 
124
+ def test_linkbase_files_are_ignored
125
+ taxonomy_file=File.dirname(__FILE__)+"/resources/taxonomy_test_files/1/taxonomy.xsd"
126
+ taxonomy=Xbrlware::Taxonomy.new(taxonomy_file, nil)
127
+ taxonomy.ignore_lablb=true
128
+ taxonomy.ignore_prelb=true
129
+ taxonomy.ignore_deflb=true
130
+ taxonomy.ignore_callb=true
131
+
132
+ taxonomy.init_all_lb
133
+ assert_nil(taxonomy.lablb)
134
+ assert_nil(taxonomy.prelb)
135
+ assert_nil(taxonomy.deflb)
136
+ assert_nil(taxonomy.callb)
137
+
138
+ taxonomy_file=File.dirname(__FILE__)+"/resources/taxonomy_test_files/2/taxonomy.xsd"
139
+ taxonomy=Xbrlware::Taxonomy.new(taxonomy_file, nil)
140
+ taxonomy.ignore_lablb=true
141
+ taxonomy.ignore_prelb=true
142
+ taxonomy.ignore_deflb=true
143
+ taxonomy.ignore_callb=true
144
+ taxonomy.init_all_lb
145
+
146
+ assert_nil(taxonomy.lablb)
147
+ assert_nil(taxonomy.prelb)
148
+ assert_nil(taxonomy.deflb)
149
+ assert_nil(taxonomy.callb)
150
+ end
151
+
124
152
  end
@@ -1,5 +1,86 @@
1
1
  require File.dirname(__FILE__) + '/../../test_helper.rb'
2
2
  class TestXmlParser < Test::Unit::TestCase
3
+
4
+ def test_namespace_and_nsprefix_are_partof_attributes
5
+ xml_content= %{
6
+ <?xml version="1.0" encoding="US-ASCII"?>
7
+ <xbrli:xbrl xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dei="http://xbrl.us/dei/2009-01-31"
8
+ xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:kr="http://www.kroger.com/20090815"
9
+ xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:us-gaap="http://xbrl.us/us-gaap/2009-01-31"
10
+ xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xlink="http://www.w3.org/1999/xlink"
11
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12
+ <link:schemaRef xlink:href="kr-20090815.xsd" xlink:type="simple"/>
13
+ <xbrli:context id="I2007_CommonStockMember">
14
+ <xbrli:entity>
15
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">0000056873</xbrli:identifier>
16
+ <xbrli:segment>
17
+ <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember
18
+ </xbrldi:explicitMember>
19
+ </xbrli:segment>
20
+ </xbrli:entity>
21
+ <xbrli:period>
22
+ <xbrli:instant>2008-02-02</xbrli:instant>
23
+ </xbrli:period>
24
+ </xbrli:context>
25
+ <xbrli:context id="I2007_AdditionalPaidInCapitalMember">
26
+ <xbrli:entity>
27
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">0000056873</xbrli:identifier>
28
+ <xbrli:segment>
29
+ <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">
30
+ us-gaap:AdditionalPaidInCapitalMember
31
+ </xbrldi:explicitMember>
32
+ </xbrli:segment>
33
+ </xbrli:entity>
34
+ <xbrli:period>
35
+ <xbrli:instant>2008-02-02</xbrli:instant>
36
+ </xbrli:period>
37
+ </xbrli:context>
38
+ <xbrli:context id="D2009Q2YTD">
39
+ <xbrli:entity>
40
+ <xbrli:identifier scheme="http://www.sec.gov/CIK">0000056873</xbrli:identifier>
41
+ </xbrli:entity>
42
+ <xbrli:period>
43
+ <xbrli:startDate>2009-02-01</xbrli:startDate>
44
+ <xbrli:endDate>2009-08-15</xbrli:endDate>
45
+ </xbrli:period>
46
+ </xbrli:context>
47
+ <xbrli:unit id="USD">
48
+ <xbrli:measure>iso4217:USD</xbrli:measure>
49
+ </xbrli:unit>
50
+ <xbrli:unit id="shares">
51
+ <xbrli:measure>xbrli:shares</xbrli:measure>
52
+ </xbrli:unit>
53
+ <xbrli:unit id="USDPerShare">
54
+ <xbrli:divide>
55
+ <xbrli:unitNumerator>
56
+ <xbrli:measure>iso4217:USD</xbrli:measure>
57
+ </xbrli:unitNumerator>
58
+ <xbrli:unitDenominator>
59
+ <xbrli:measure>xbrli:shares</xbrli:measure>
60
+ </xbrli:unitDenominator>
61
+ </xbrli:divide>
62
+ </xbrli:unit>
63
+ <dei:EntityRegistrantName contextRef="D2009Q2YTD">THE KROGER CO.</dei:EntityRegistrantName>
64
+ <dei:EntityCentralIndexKey contextRef="D2009Q2YTD">0000056873</dei:EntityCentralIndexKey>
65
+ <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest contextRef="I2007_CommonStockMember"
66
+ decimals="-6" unitRef="USD">
67
+ 947000000
68
+ </us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
69
+ <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
70
+ contextRef="I2007_AdditionalPaidInCapitalMember" decimals="-6" unitRef="USD">3031000000
71
+ </us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
72
+
73
+ <us-gaap:SharesIssued contextRef="I2007_CommonStockMember" decimals="-6" unitRef="shares">947000000
74
+ </us-gaap:SharesIssued>
75
+ </xbrli:xbrl>
76
+ }
77
+
78
+ _hash=Xbrlware::XmlParser.xml_in(xml_content, {'ForceContent' => true})
79
+ assert("http://xbrl.us/us-gaap/2009-01-31", _hash["SharesIssued"][0]["nspace"]);
80
+ assert("us-gaap", _hash["SharesIssued"][0]["nspace_prefix"]);
81
+
82
+ end
83
+
3
84
  def test_xmslparser_is_faster_than_xmlsimple
4
85
  xml_content= %{
5
86
  <?xml version="1.0" encoding="us-ascii"?>