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 +4 -4
- data/History.md +7 -0
- data/lib/spreadsheet.rb +1 -1
- data/lib/spreadsheet/format.rb +15 -6
- data/test/format.rb +6 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b59759809c79613f618aa76b1901fbe9f51395d
|
4
|
+
data.tar.gz: f9139e4f955bbed1875b326f5754b751d215a8d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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>
|
data/lib/spreadsheet.rb
CHANGED
data/lib/spreadsheet/format.rb
CHANGED
@@ -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? &&
|
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? &&
|
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? &&
|
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? &&
|
202
|
+
!number? && matches_format?(:time)
|
202
203
|
end
|
203
204
|
##
|
204
205
|
# Is the cell formatted as a number?
|
205
206
|
def number?
|
206
|
-
|
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
|
data/test/format.rb
CHANGED
@@ -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
|
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
|
+
date: 2015-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-ole
|