spreadsheet 0.6.5.0 → 0.6.5.1

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.
data/Manifest.txt CHANGED
@@ -4,6 +4,7 @@ LICENSE.txt
4
4
  Manifest.txt
5
5
  README.txt
6
6
  Rakefile
7
+ spreadsheet.gemspec
7
8
  bin/xlsopcodes
8
9
  lib/parseexcel.rb
9
10
  lib/parseexcel/parseexcel.rb
@@ -46,6 +47,7 @@ test/data/test_datetime.xls
46
47
  test/data/test_empty.xls
47
48
  test/data/test_formula.xls
48
49
  test/data/test_missing_row.xls
50
+ test/data/test_long_sst_record.xls
49
51
  test/data/test_version_excel5.xls
50
52
  test/data/test_version_excel95.xls
51
53
  test/data/test_version_excel97.xls
data/Rakefile CHANGED
@@ -8,11 +8,10 @@ require './lib/spreadsheet.rb'
8
8
 
9
9
  ENV['RDOCOPT'] = '-c utf8'
10
10
 
11
- Hoe.new('spreadsheet', Spreadsheet::VERSION) do |p|
12
- # p.rubyforge_name = 'spreadsheetx' # if different than lowercase project name
11
+ Hoe.spec('spreadsheet') do |p|
13
12
  p.developer('Masaomi Hatakeyama, Zeno R.R. Davatz','mhatakeyama@ywesee.com, zdavatz@ywesee.com')
14
- p.remote_rdoc_dir = ''
15
- p.extra_deps << 'ruby-ole'
13
+ p.remote_rdoc_dir = 'spreadsheet'
14
+ p.extra_deps << ['ruby-ole', '>=1.0']
16
15
  end
17
16
 
18
17
  # vim: syntax=Ruby
data/lib/spreadsheet.rb CHANGED
@@ -42,7 +42,7 @@ module Spreadsheet
42
42
 
43
43
  ##
44
44
  # The version of Spreadsheet you are using.
45
- VERSION = '0.6.5.0'
45
+ VERSION = '0.6.5.1'
46
46
 
47
47
  ##
48
48
  # Default client Encoding. Change this value if your application uses a
@@ -39,11 +39,15 @@ module Biff8
39
39
  owing = @incomplete_sst.continued_chars
40
40
  size = [work.size, owing * (1 + wide) + 1].min
41
41
  chars = (size - 1) / (1 + wide)
42
+ skip = size
42
43
  @incomplete_sst.continue oppos + OPCODE_SIZE, size, chars
43
44
  unless @incomplete_sst.continued?
45
+ @workbook.add_shared_string @incomplete_sst
46
+ skip += @incomplete_skip
44
47
  @incomplete_sst = nil
48
+ @incomplete_skip = nil
45
49
  end
46
- size
50
+ skip
47
51
  end
48
52
  ##
49
53
  # Read more data into the Shared String Table. (see also: #read_sst)
@@ -52,13 +56,16 @@ module Biff8
52
56
  pos = 0
53
57
  if @incomplete_sst
54
58
  pos = continue_string_header work, oppos
59
+ elsif !@incomplete_skip.nil?
60
+ pos = @incomplete_skip
61
+ @incomplete_skip = nil
55
62
  end
56
63
  @sst_offset[1] += len
57
64
  _read_sst work, oppos, pos
58
65
  end
59
66
  def postread_workbook # :nodoc:
60
67
  super
61
- @incomplete_string, @sst_size, @sst_offset, @incomplete_sst = nil
68
+ @incomplete_string, @sst_size, @sst_offset, @incomplete_sst = nil, @incomplete_skip = nil
62
69
  end
63
70
  ##
64
71
  # Store the offset of extsst, so we can write a new extsst when the
@@ -175,9 +182,15 @@ module Biff8
175
182
  sst.wide = wide > 0
176
183
  if sst.continued?
177
184
  @incomplete_sst = sst
185
+ @incomplete_skip = skip
186
+ pos += sst.available
187
+ else
188
+ @workbook.add_shared_string sst
189
+ pos += sst.available + skip
190
+ if pos > worksize
191
+ @incomplete_skip = pos - worksize
192
+ end
178
193
  end
179
- @workbook.add_shared_string sst
180
- pos += sst.available + skip
181
194
  end
182
195
  end
183
196
  end
@@ -0,0 +1,22 @@
1
+ require "rubygems"
2
+ require "rake"
3
+
4
+ spec = Gem::Specification.new do |s|
5
+ s.name = "spreadsheet"
6
+ s.version = "0.6.5"
7
+ s.summary = "The Spreadsheet Library is designed to read and write Spreadsheet Documents"
8
+ s.description = "As of version 0.6.0, only Microsoft Excel compatible spreadsheets are supported"
9
+ s.author = "Masaomi Hatakeyama, Zeno R.R. Davatz"
10
+ s.email = "mhatakeyama@ywesee.com, zdavatz@ywesee.com"
11
+ s.platform = Gem::Platform::RUBY
12
+ s.files = Dir.glob("{bin,lib,test}/**/*") + Dir.glob("*.txt")
13
+ s.test_file = "test/suite.rb"
14
+ s.executables << 'xlsopcodes'
15
+ s.add_dependency('ruby-ole')
16
+ s.homepage = "http://scm.ywesee.com/?p=spreadsheet/.git;a=summary"
17
+ end
18
+
19
+ if $0 == __FILE__
20
+ Gem.manage_gems
21
+ Gem::Builder.new(spec).build
22
+ end
Binary file
data/test/integration.rb CHANGED
@@ -1271,11 +1271,20 @@ module Spreadsheet
1271
1271
  target = File.join @var, 'test_changes.xls'
1272
1272
  assert_nothing_raised do book.write target end
1273
1273
  end
1274
+ def test_long_sst_record
1275
+ path = File.join @data, 'test_long_sst_record.xls'
1276
+ book = Spreadsheet.open path
1277
+ sheet = book.worksheet(0)
1278
+ expected_result = 'A1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998'
1279
+ assert_equal(expected_result, sheet[0,0])
1280
+ end
1281
+ =begin
1274
1282
  def test_read_baltic
1275
1283
  path = File.join @data, 'test_baltic.xls'
1276
1284
  assert_nothing_raised do
1277
1285
  Spreadsheet.open path
1278
1286
  end
1279
1287
  end
1288
+ =end
1280
1289
  end
1281
1290
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreadsheet
3
3
  version: !ruby/object:Gem::Version
4
- hash: 107
4
+ hash: 105
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
9
  - 5
10
- - 0
11
- version: 0.6.5.0
10
+ - 1
11
+ version: 0.6.5.1
12
12
  platform: ruby
13
13
  authors:
14
14
  - Masaomi Hatakeyama, Zeno R.R. Davatz
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-12-13 00:00:00 +01:00
19
+ date: 2011-01-17 00:00:00 +01:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -27,10 +27,11 @@ dependencies:
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- hash: 3
30
+ hash: 15
31
31
  segments:
32
+ - 1
32
33
  - 0
33
- version: "0"
34
+ version: "1.0"
34
35
  type: :runtime
35
36
  version_requirements: *id001
36
37
  - !ruby/object:Gem::Dependency
@@ -74,6 +75,7 @@ files:
74
75
  - Manifest.txt
75
76
  - README.txt
76
77
  - Rakefile
78
+ - spreadsheet.gemspec
77
79
  - bin/xlsopcodes
78
80
  - lib/parseexcel.rb
79
81
  - lib/parseexcel/parseexcel.rb
@@ -116,6 +118,7 @@ files:
116
118
  - test/data/test_empty.xls
117
119
  - test/data/test_formula.xls
118
120
  - test/data/test_missing_row.xls
121
+ - test/data/test_long_sst_record.xls
119
122
  - test/data/test_version_excel5.xls
120
123
  - test/data/test_version_excel95.xls
121
124
  - test/data/test_version_excel97.xls