spreadsheet 1.0.9 → 1.1.0

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.
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