spreadsheet 1.0.9 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f644ff72e11b9264344a7fa3b882bfc2cc36c67c
4
- data.tar.gz: 9c76a7e5f862ca3a2706f3ec95f891225acfd1bb
3
+ metadata.gz: 3b59759809c79613f618aa76b1901fbe9f51395d
4
+ data.tar.gz: f9139e4f955bbed1875b326f5754b751d215a8d2
5
5
  SHA512:
6
- metadata.gz: 1cc27fc0a6b649df6eb051d086a847b56374c029223552da6027f1515fa72c5f22a97f7f3de2d4b8f6e92a812cfa1dc4e415e6f0fb108ea134714a5fc5d9d20c
7
- data.tar.gz: 128c01ac9eced267751deffdaaa9b50bf7b5a635cea7656a64d05a821c1120377463dc80366092d25940a3f82a7dd64725ad275c0c10b0ec9855b4bfa295e28d
6
+ metadata.gz: 1fc8aa533c24d8207df51bf69a072438767d6783b55315bda0146b0e0da6fe4f98ca2c708b786f577206625869cd38436b9d3c0ce9a0d7cf8398ba7238ba223c
7
+ data.tar.gz: ff2719b9da79dbba5d323d0c2626fb351e7dbf47b77e0988aaabbbf29e56780aed6b00fdc2c7348bfbe296f0a459b805266d8d44f14e4898b9282fca8a215e46
data/History.md CHANGED
@@ -1,3 +1,10 @@
1
+ ### 1.1.0 / 08.12.2015
2
+
3
+ Author: Matthew Boeh <matt@crowdcompass.com>
4
+ Date: Mon Dec 7 11:18:55 2015 -0800
5
+
6
+ * Disregard locale indicators when determining whether a cell contains a date/time.
7
+
1
8
  ### 1.0.9 / 18.11.2015
2
9
 
3
10
  Author: 545ch4 <s@rprojekt.org>
@@ -45,7 +45,7 @@ module Spreadsheet
45
45
 
46
46
  ##
47
47
  # The version of Spreadsheet you are using.
48
- VERSION = '1.0.9'
48
+ VERSION = '1.1.0'
49
49
 
50
50
  ##
51
51
  # Default client Encoding. Change this value if your application uses a
@@ -105,7 +105,8 @@ module Spreadsheet
105
105
  :date_or_time => Regexp.new(client("[hmsYMD]", 'UTF-8')),
106
106
  :datetime => Regexp.new(client("([YMD].*[HS])|([HS].*[YMD])", 'UTF-8')),
107
107
  :time => Regexp.new(client("[hms]", 'UTF-8')),
108
- :number => Regexp.new(client("([\#]|0+)", 'UTF-8'))
108
+ :number => Regexp.new(client("([\#]|0+)", 'UTF-8')),
109
+ :locale => Regexp.new(client(/\A\[\$\-\d+\]/.to_s, 'UTF-8')),
109
110
  }
110
111
 
111
112
  # Temp code to prevent merged formats in non-merged cells.
@@ -183,27 +184,35 @@ module Spreadsheet
183
184
  ##
184
185
  # Is the cell formatted as a Date?
185
186
  def date?
186
- !number? && !!@regexes[:date].match(@number_format.to_s)
187
+ !number? && matches_format?(:date)
187
188
  end
188
189
  ##
189
190
  # Is the cell formatted as a Date or Time?
190
191
  def date_or_time?
191
- !number? && !!@regexes[:date_or_time].match(@number_format.to_s)
192
+ !number? && matches_format?(:date_or_time)
192
193
  end
193
194
  ##
194
195
  # Is the cell formatted as a DateTime?
195
196
  def datetime?
196
- !number? && !!@regexes[:datetime].match(@number_format.to_s)
197
+ !number? && matches_format?(:datetime)
197
198
  end
198
199
  ##
199
200
  # Is the cell formatted as a Time?
200
201
  def time?
201
- !number? && !!@regexes[:time].match(@number_format.to_s)
202
+ !number? && matches_format?(:time)
202
203
  end
203
204
  ##
204
205
  # Is the cell formatted as a number?
205
206
  def number?
206
- !!@regexes[:number].match(@number_format.to_s)
207
+ matches_format?(:number)
208
+ end
209
+ ##
210
+ # Does the cell match a particular preset format?
211
+ def matches_format?(name)
212
+ # Excel number formats may optionally include a locale identifier like this:
213
+ # [$-409]
214
+ format = @number_format.to_s.sub(@regexes[:locale], '')
215
+ !!@regexes[name].match(format)
207
216
  end
208
217
  end
209
218
  end
@@ -19,6 +19,8 @@ module Spreadsheet
19
19
  assert_equal true, @format.date?
20
20
  @format.number_format = "YMD"
21
21
  assert_equal true, @format.date?
22
+ @format.number_format = "[$-409]YMD"
23
+ assert_equal true, @format.date?
22
24
  @format.number_format = "\\$#,##0.00_);[RED]\"($\"#,##0.00\\)"
23
25
  assert_equal false, @format.date?
24
26
  @format.number_format = "0.00;[RED]\\-0.00"
@@ -32,6 +34,8 @@ module Spreadsheet
32
34
  assert_equal true, @format.date_or_time?
33
35
  @format.number_format = "hmsYMD"
34
36
  assert_equal true, @format.date_or_time?
37
+ @format.number_format = "[$-409]hmsYMD"
38
+ assert_equal true, @format.date_or_time?
35
39
  @format.number_format = "\\$#,##0.00_);[RED]\"($\"#,##0.00\\)"
36
40
  assert_equal false, @format.date_or_time?
37
41
  @format.number_format = "0.00;[RED]\\-0.00)"
@@ -62,6 +66,8 @@ module Spreadsheet
62
66
  assert_equal true, @format.time?
63
67
  @format.number_format = "hm"
64
68
  assert_equal true, @format.time?
69
+ @format.number_format = "[$-409]hms"
70
+ assert_equal true, @format.time?
65
71
  @format.number_format = "hms"
66
72
  assert_equal true, @format.time?
67
73
  @format.number_format = "\\$#,##0.00_);[RED]\"($\"#,##0.00\\)"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreadsheet
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masaomi Hatakeyama, Zeno R.R. Davatz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-18 00:00:00.000000000 Z
11
+ date: 2015-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-ole