spreadsheet 0.6.1.2 → 0.6.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,9 +1,19 @@
1
+ === 0.6.1.3 / 2008-10-21
2
+
3
+ * 2 Bugfixes
4
+
5
+ * Renamed UTF8 to UTF-8 to support freebsd
6
+ (Thanks to Jacob Atzen for the Patch)
7
+ * Fixes a Bug where only the first Rowblock was read correctly if there were
8
+ no DBCELL records terminating the Rowblocks.
9
+ (Thanks to Bjørn Hjelle for the Bugreport)
10
+
1
11
  === 0.6.1.2 / 2008-10-20
2
12
 
3
13
  * 2 Bugfixes
4
14
 
5
15
  * Corrected the Font-Encoding values in Excel::Internals
6
- (Thanks to Bjorn Hjelle for the Bugreport)
16
+ (Thanks to Bjørn Hjelle for the Bugreport)
7
17
  * Spreadsheet now skips Richtext-Formatting runs and Asian Phonetic
8
18
  Settings when reading the SST, fixing a problem where the presence of
9
19
  Richtext could lead to an incomplete SST.
@@ -14,9 +14,9 @@ module Spreadsheet
14
14
  end
15
15
  else
16
16
  require 'iconv'
17
- @@utf8_utf16 = Iconv.new('UTF-16LE', 'UTF8')
17
+ @@utf8_utf16 = Iconv.new('UTF-16LE', 'UTF-8')
18
18
  @@utf16_ascii = Iconv.new('ASCII//TRANSLIT//IGNORE', 'UTF-16LE')
19
- @@utf16_utf8 = Iconv.new('UTF8//TRANSLIT//IGNORE', 'UTF-16LE')
19
+ @@utf16_utf8 = Iconv.new('UTF-8//TRANSLIT//IGNORE', 'UTF-16LE')
20
20
  @@iconvs = {}
21
21
  def ascii string
22
22
  @@utf16_ascii.iconv string
@@ -18,7 +18,7 @@ class Reader
18
18
  OPCODE_SIZE = 4
19
19
  ROW_BLOCK_OPS = [
20
20
  :blank, :boolerr, :dbcell, :formula, :label, :labelsst, :mulblank, :mulrk,
21
- :number, :rk, :row, :rstring,
21
+ :number, :rk, :rstring,
22
22
  ]
23
23
  def initialize opts = {}
24
24
  @pos = 0
@@ -28,7 +28,7 @@ class Reader
28
28
  @opts = opts
29
29
  @current_row_block = {}
30
30
  @formats = {}
31
- BUILTIN_FORMATS.each do |key, fmt| @formats.store key, client(fmt, 'UTF8') end
31
+ BUILTIN_FORMATS.each do |key, fmt| @formats.store key, client(fmt, 'UTF-8') end
32
32
  end
33
33
  def decode_rk work
34
34
  # Bit Mask Contents
@@ -75,8 +75,12 @@ class Reader
75
75
  name
76
76
  end
77
77
  end
78
- def in_row_block? op
79
- ROW_BLOCK_OPS.include?(op)
78
+ def in_row_block? op, previous
79
+ if op == :row
80
+ previous == op
81
+ else
82
+ ROW_BLOCK_OPS.include?(op)
83
+ end
80
84
  end
81
85
  def memoize?
82
86
  @opts[:memoization]
@@ -584,9 +588,10 @@ class Reader
584
588
  end
585
589
  def read_worksheet worksheet, offset
586
590
  @pos = offset
591
+ previous = nil
587
592
  while tuple = get_next_chunk
588
593
  pos, op, len, work = tuple
589
- if((offset = @current_row_block_offset) && !in_row_block?(op))
594
+ if((offset = @current_row_block_offset) && !in_row_block?(op, previous))
590
595
  @current_row_block_offset = nil
591
596
  offset[1] = pos - offset[0]
592
597
  end
@@ -611,6 +616,7 @@ class Reader
611
616
  # ● ROW ➜ 6.83
612
617
  set_row_address worksheet, work, pos, len
613
618
  end
619
+ previous = op
614
620
  end
615
621
  end
616
622
  def read_style work, pos, len
@@ -652,7 +658,7 @@ class Reader
652
658
  id, level = work.unpack 'x2C2'
653
659
  if name = BUILTIN_STYLES[id]
654
660
  name.sub '_lv', "_#{level.to_s}"
655
- xf.name = client name, 'UTF8'
661
+ xf.name = client name, 'UTF-8'
656
662
  end
657
663
  end
658
664
  end
@@ -69,7 +69,7 @@ class Workbook < Spreadsheet::Workbook
69
69
  super.push '@sst', '@offsets', '@changes'
70
70
  end
71
71
  def version_string
72
- client VERSION_STRINGS.fetch(@version, "Unknown"), 'UTF8'
72
+ client VERSION_STRINGS.fetch(@version, "Unknown"), 'UTF-8'
73
73
  end
74
74
  end
75
75
  end
@@ -326,10 +326,10 @@ class Workbook < Spreadsheet::Writer
326
326
  # The first user-defined format starts at 164 (0xa4).
327
327
  formats = @number_formats[workbook] = {}
328
328
  BUILTIN_FORMATS.each do |idx, str|
329
- formats.store client(str, 'UTF8'), idx
329
+ formats.store client(str, 'UTF-8'), idx
330
330
  end
331
331
  ## Ensure at least a 'GENERAL' format is written
332
- formats.delete client('GENERAL', 'UTF8')
332
+ formats.delete client('GENERAL', 'UTF-8')
333
333
  idx = 0xa4
334
334
  workbook.formats.each do |fmt|
335
335
  str = fmt.number_format
@@ -72,8 +72,8 @@ module Spreadsheet
72
72
  # Text rotation
73
73
  attr_reader :rotation
74
74
  def initialize opts={}
75
- @font = Font.new client("Arial", 'UTF8'), :family => :swiss
76
- @number_format = client 'GENERAL', 'UTF8'
75
+ @font = Font.new client("Arial", 'UTF-8'), :family => :swiss
76
+ @number_format = client 'GENERAL', 'UTF-8'
77
77
  @rotation = 0
78
78
  @pattern = 0
79
79
  @bottom_color = :builtin_black
@@ -52,7 +52,7 @@ module Spreadsheet
52
52
  # Use the option <em>:name => 'My pretty Name'</em> to override this
53
53
  # behavior.
54
54
  def create_worksheet opts = {}
55
- opts[:name] ||= client("Worksheet#{@worksheets.size.next}", 'UTF8')
55
+ opts[:name] ||= client("Worksheet#{@worksheets.size.next}", 'UTF-8')
56
56
  add_worksheet Worksheet.new(opts)
57
57
  end
58
58
  ##
@@ -214,10 +214,10 @@ module Spreadsheet
214
214
  case value
215
215
  when Date
216
216
  format = @workbook.formats.find do |fmt| fmt.date? end
217
- format ||= Format.new :number_format => client('M/D/YY', 'UTF8')
217
+ format ||= Format.new :number_format => client('M/D/YY', 'UTF-8')
218
218
  when DateTime, Time
219
219
  format = @workbook.formats.find do |fmt| fmt.datetime? end
220
- format ||= Format.new :number_format => client('M/D/YY h:mm', 'UTF8')
220
+ format ||= Format.new :number_format => client('M/D/YY h:mm', 'UTF-8')
221
221
  end
222
222
  if format
223
223
  row.formats[idx] = format
data/lib/spreadsheet.rb CHANGED
@@ -42,13 +42,13 @@ module Spreadsheet
42
42
 
43
43
  ##
44
44
  # The version of Spreadsheet you are using.
45
- VERSION = '0.6.1.2'
45
+ VERSION = '0.6.1.3'
46
46
 
47
47
  ##
48
48
  # Default client Encoding. Change this value if your application uses a
49
49
  # different Encoding:
50
50
  # Spreadsheet.client_encoding = 'ISO-LATIN-1//TRANSLIT//IGNORE'
51
- @client_encoding = 'UTF8'
51
+ @client_encoding = 'UTF-8'
52
52
 
53
53
  class << self
54
54
 
data/test/integration.rb CHANGED
@@ -9,7 +9,7 @@ require 'fileutils'
9
9
 
10
10
  module Spreadsheet
11
11
  class TestIntegration < Test::Unit::TestCase
12
- @@iconv = Iconv.new('UTF-16LE', 'UTF8')
12
+ @@iconv = Iconv.new('UTF-16LE', 'UTF-8')
13
13
  def setup
14
14
  @var = File.expand_path 'var', File.dirname(__FILE__)
15
15
  FileUtils.mkdir_p @var
@@ -17,7 +17,7 @@ module Spreadsheet
17
17
  FileUtils.mkdir_p @data
18
18
  end
19
19
  def teardown
20
- Spreadsheet.client_encoding = 'UTF8'
20
+ Spreadsheet.client_encoding = 'UTF-8'
21
21
  FileUtils.rm_r @var
22
22
  end
23
23
  def test_copy__identical__file_paths
@@ -928,7 +928,7 @@ module Spreadsheet
928
928
  sheet1.update_row 7, nil, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
929
929
  sheet2 = book.create_worksheet :name => "m\0y\0 \0n\0a\0m\0e\0"
930
930
  book.write path
931
- Spreadsheet.client_encoding = 'UTF8'
931
+ Spreadsheet.client_encoding = 'UTF-8'
932
932
  str1 = 'Shared String'
933
933
  str2 = 'Another Shared String'
934
934
  str3 = '1234567890 ' * 1000
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreadsheet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1.2
4
+ version: 0.6.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hannes Wyss