rubysl-date 2.0.8 → 2.0.9
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/.travis.yml +3 -1
- data/MRI_LICENSE +56 -0
- data/lib/date/format.rb +4 -4
- data/lib/rubysl/date/date.rb +4 -2
- data/lib/rubysl/date/version.rb +1 -1
- data/spec/date/marshal_dump_spec.rb +18 -0
- data/spec/date/marshal_load_spec.rb +20 -0
- data/spec/date/strftime_spec.rb +21 -185
- data/spec/date/strptime_spec.rb +4 -0
- data/spec/datetime/strftime_spec.rb +43 -17
- data/spec/shared/strftime_for_date.rb +282 -0
- data/spec/shared/strftime_for_time.rb +174 -0
- metadata +24 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 832efc53ef6dea723300d939c8ffb0dca2f55f64
|
4
|
+
data.tar.gz: 9e85d7f14d6f97fe9fc2383c0a31105cfebe87d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a72b16d0995b4495d9211eff24d0f9321cf8d1ef59c543cde27f4aa585230dff45b196c08cf3f28bf6043e2ed66736449033c53165e07106f888fd0985f3a57e
|
7
|
+
data.tar.gz: a97d5dd4080d17cc8ad93b62b01f1a681c634cbaae2f89d196fc691718cda6e11c2dcf71e8f77870a9a6630e026b42ff177d0561f31ed0ecc9b1165f6edaabf6
|
data/.travis.yml
CHANGED
data/MRI_LICENSE
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
|
2
|
+
You can redistribute it and/or modify it under either the terms of the
|
3
|
+
2-clause BSDL (see the file BSDL), or the conditions below:
|
4
|
+
|
5
|
+
1. You may make and give away verbatim copies of the source form of the
|
6
|
+
software without restriction, provided that you duplicate all of the
|
7
|
+
original copyright notices and associated disclaimers.
|
8
|
+
|
9
|
+
2. You may modify your copy of the software in any way, provided that
|
10
|
+
you do at least ONE of the following:
|
11
|
+
|
12
|
+
a) place your modifications in the Public Domain or otherwise
|
13
|
+
make them Freely Available, such as by posting said
|
14
|
+
modifications to Usenet or an equivalent medium, or by allowing
|
15
|
+
the author to include your modifications in the software.
|
16
|
+
|
17
|
+
b) use the modified software only within your corporation or
|
18
|
+
organization.
|
19
|
+
|
20
|
+
c) give non-standard binaries non-standard names, with
|
21
|
+
instructions on where to get the original software distribution.
|
22
|
+
|
23
|
+
d) make other distribution arrangements with the author.
|
24
|
+
|
25
|
+
3. You may distribute the software in object code or binary form,
|
26
|
+
provided that you do at least ONE of the following:
|
27
|
+
|
28
|
+
a) distribute the binaries and library files of the software,
|
29
|
+
together with instructions (in the manual page or equivalent)
|
30
|
+
on where to get the original distribution.
|
31
|
+
|
32
|
+
b) accompany the distribution with the machine-readable source of
|
33
|
+
the software.
|
34
|
+
|
35
|
+
c) give non-standard binaries non-standard names, with
|
36
|
+
instructions on where to get the original software distribution.
|
37
|
+
|
38
|
+
d) make other distribution arrangements with the author.
|
39
|
+
|
40
|
+
4. You may modify and include the part of the software into any other
|
41
|
+
software (possibly commercial). But some files in the distribution
|
42
|
+
are not written by the author, so that they are not under these terms.
|
43
|
+
|
44
|
+
For the list of those files and their copying conditions, see the
|
45
|
+
file LEGAL.
|
46
|
+
|
47
|
+
5. The scripts and library files supplied as input to or produced as
|
48
|
+
output from the software do not automatically fall under the
|
49
|
+
copyright of the software, but belong to whomever generated them,
|
50
|
+
and may be sold commercially, and may be aggregated with this
|
51
|
+
software.
|
52
|
+
|
53
|
+
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
54
|
+
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
55
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
56
|
+
PURPOSE.
|
data/lib/date/format.rb
CHANGED
@@ -232,8 +232,8 @@ class Date
|
|
232
232
|
s.scan(/./) do |k|
|
233
233
|
case k
|
234
234
|
when '-'; f[:p] = '-'
|
235
|
-
when '_'; f[:p] = "\s"
|
236
|
-
when '0'; f[:p] = '0'
|
235
|
+
when '_'; f[:p] = "\s" unless f[:p] == '-'
|
236
|
+
when '0'; f[:p] = '0' unless f[:p] == '-'
|
237
237
|
when '^'; f[:u] = true
|
238
238
|
when '#'; f[:x] = true
|
239
239
|
end
|
@@ -559,8 +559,8 @@ class Date
|
|
559
559
|
e._cent ||= if val >= 69 then 19 else 20 end
|
560
560
|
when 'Z', /\A:{0,3}z/
|
561
561
|
return unless str.sub!(/\A((?:gmt|utc?)?[-+]\d+(?:[,.:]\d+(?::\d+)?)?
|
562
|
-
|(?-i:[[:alpha:]
|
563
|
-
|(?-i:[[:alpha:]]+)(
|
562
|
+
|(?-i:[[:alpha:].\s]+)(?:standard|daylight)\stime\b
|
563
|
+
|(?-i:[[:alpha:]]+)(?:\sdst)?\b
|
564
564
|
)/ix, '')
|
565
565
|
val = $1
|
566
566
|
e.zone = val
|
data/lib/rubysl/date/date.rb
CHANGED
@@ -1496,11 +1496,13 @@ class Date
|
|
1496
1496
|
def to_s() format('%.4d-%02d-%02d', year, mon, mday) end # 4p
|
1497
1497
|
|
1498
1498
|
# Dump to Marshal format.
|
1499
|
-
def marshal_dump()
|
1499
|
+
def marshal_dump()
|
1500
|
+
[0, @ajd, 0, 0, @of, @sg]
|
1501
|
+
end
|
1500
1502
|
|
1501
1503
|
# Load from Marshal format.
|
1502
1504
|
def marshal_load(a)
|
1503
|
-
@ajd, @of, @sg, = a
|
1505
|
+
_, @ajd, _, _, @of, @sg, = a
|
1504
1506
|
@__ca__ = {}
|
1505
1507
|
end
|
1506
1508
|
|
data/lib/rubysl/date/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
3
|
+
describe "Date#marshal_dump" do
|
4
|
+
with_timezone("PST", +1) do
|
5
|
+
before do
|
6
|
+
@date = Date.new(2011, 7, 9)
|
7
|
+
@dumped = @date.marshal_dump
|
8
|
+
end
|
9
|
+
|
10
|
+
it "dumps self" do
|
11
|
+
@dumped.should == [0, (4911503/2r), 0, 0, 0, 2299161]
|
12
|
+
end
|
13
|
+
|
14
|
+
it "dumps @ajd within some bounds" do
|
15
|
+
@dumped[1].should be_close(@date.ajd, 1)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
3
|
+
describe "Date#marshal_load" do
|
4
|
+
with_timezone("PST", +1) do
|
5
|
+
before do
|
6
|
+
@date = Date.new(2011, 7, 9)
|
7
|
+
@dumped = [0, (4911503/2r), 0, 0, 0, 2299161]
|
8
|
+
@loaded = Date.new
|
9
|
+
@loaded.marshal_load(@dumped)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "returns the loaded date" do
|
13
|
+
@date.should == @loaded
|
14
|
+
end
|
15
|
+
|
16
|
+
it "loads @ajd within some bounds" do
|
17
|
+
@loaded.ajd.should be_close(@dumped[1], 1)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/spec/date/strftime_spec.rb
CHANGED
@@ -1,204 +1,40 @@
|
|
1
1
|
require 'date'
|
2
|
+
require File.expand_path('../../shared/strftime_for_date', __FILE__)
|
2
3
|
|
3
4
|
describe "Date#strftime" do
|
5
|
+
before :all do
|
6
|
+
@new_date = lambda { |y,m,d| Date.civil(y,m,d) }
|
4
7
|
|
5
|
-
|
6
|
-
Date.civil(2000, 4, 6).strftime.should == "2000-04-06"
|
7
|
-
Date.civil(2000, 4, 6).strftime.should == Date.civil(2000, 4, 6).to_s
|
8
|
+
@date = Date.civil(2000, 4, 9)
|
8
9
|
end
|
9
10
|
|
10
|
-
|
11
|
-
Date.civil(2000, 4, 6).strftime("%A").should == "Thursday"
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should be able to print the short day name" do
|
15
|
-
Date.civil(2000, 4, 6).strftime("%a").should == "Thu"
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should be able to print the full month name" do
|
19
|
-
Date.civil(2000, 4, 6).strftime("%B").should == "April"
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should be able to print the short month name" do
|
23
|
-
Date.civil(2000, 4, 6).strftime("%b").should == "Apr"
|
24
|
-
Date.civil(2000, 4, 6).strftime("%h").should == "Apr"
|
25
|
-
Date.civil(2000, 4, 6).strftime("%b").should == Date.civil(2000, 4, 6).strftime("%h")
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should be able to print the century" do
|
29
|
-
Date.civil(2000, 4, 6).strftime("%C").should == "20"
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should be able to print the month day with leading zeroes" do
|
33
|
-
Date.civil(2000, 4, 6).strftime("%d").should == "06"
|
34
|
-
end
|
35
|
-
|
36
|
-
it "should be able to print the month day with leading spaces" do
|
37
|
-
Date.civil(2000, 4, 6).strftime("%e").should == " 6"
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should be able to print the commercial year with leading zeroes" do
|
41
|
-
Date.civil(2000, 4, 6).strftime("%G").should == "2000"
|
42
|
-
Date.civil( 200, 4, 6).strftime("%G").should == "0200"
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should be able to print the commercial year with only two digits" do
|
46
|
-
Date.civil(2000, 4, 6).strftime("%g").should == "00"
|
47
|
-
Date.civil( 200, 4, 6).strftime("%g").should == "00"
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should be able to print the hour with leading zeroes (hour is always 00)" do
|
51
|
-
Date.civil(2000, 4, 6).strftime("%H").should == "00"
|
52
|
-
end
|
53
|
-
|
54
|
-
it "should be able to print the hour in 12 hour notation with leading zeroes" do
|
55
|
-
Date.civil(2000, 4, 6).strftime("%I").should == "12"
|
56
|
-
end
|
57
|
-
|
58
|
-
it "should be able to print the year day with leading zeroes" do
|
59
|
-
Date.civil(2000, 4, 6).strftime("%j").should == "097"
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should be able to print the hour in 24 hour notation with leading spaces" do
|
63
|
-
Date.civil(2000, 4, 6).strftime("%k").should == " 0"
|
64
|
-
end
|
65
|
-
|
66
|
-
it "should be able to print the hour in 12 hour notation with leading spaces" do
|
67
|
-
Date.civil(2000, 4, 6).strftime("%l").should == "12"
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should be able to print the minutes with leading zeroes" do
|
71
|
-
Date.civil(2000, 4, 6).strftime("%M").should == "00"
|
72
|
-
end
|
73
|
-
|
74
|
-
it "should be able to print the month with leading zeroes" do
|
75
|
-
Date.civil(2000, 4, 6).strftime("%m").should == "04"
|
76
|
-
end
|
77
|
-
|
78
|
-
it "should be able to add a newline" do
|
79
|
-
Date.civil(2000, 4, 6).strftime("%n").should == "\n"
|
80
|
-
end
|
81
|
-
|
82
|
-
it "should be able to show AM/PM" do
|
83
|
-
Date.civil(2000, 4, 6).strftime("%P").should == "am"
|
84
|
-
end
|
85
|
-
|
86
|
-
it "should be able to show am/pm" do
|
87
|
-
Date.civil(2000, 4, 6).strftime("%p").should == "AM"
|
88
|
-
end
|
89
|
-
|
90
|
-
it "should be able to show the number of seconds with leading zeroes" do
|
91
|
-
Date.civil(2000, 4, 6).strftime("%S").should == "00"
|
92
|
-
end
|
93
|
-
|
94
|
-
it "should be able to show the number of seconds with leading zeroes" do
|
95
|
-
Date.civil(2000, 4, 6).strftime("%S").should == "00"
|
96
|
-
end
|
97
|
-
|
98
|
-
it "should be able to show the number of seconds since the unix epoch" do
|
99
|
-
Date.civil(2000, 4, 6).strftime("%s").should == "954979200"
|
100
|
-
end
|
101
|
-
|
102
|
-
it "should be able to add a tab" do
|
103
|
-
Date.civil(2000, 4, 6).strftime("%t").should == "\t"
|
104
|
-
end
|
105
|
-
|
106
|
-
it "should be able to show the week number with the week starting on sunday and monday" do
|
107
|
-
Date.civil(2000, 4, 6).strftime("%U").should == "14"
|
108
|
-
Date.civil(2000, 4, 6).strftime("%W").should == "14"
|
109
|
-
Date.civil(2000, 4, 6).strftime("%U").should == Date.civil(2000, 4, 6).strftime("%W")
|
110
|
-
Date.civil(2000, 4, 9).strftime("%U").should == "15"
|
111
|
-
Date.civil(2000, 4, 9).strftime("%W").should == "14"
|
112
|
-
Date.civil(2000, 4, 9).strftime("%U").should_not == Date.civil(2000, 4, 9).strftime("%W")
|
113
|
-
end
|
114
|
-
|
115
|
-
it "should be able to show the commercial week day" do
|
116
|
-
Date.civil(2000, 4, 9).strftime("%u").should == "7"
|
117
|
-
Date.civil(2000, 4, 10).strftime("%u").should == "1"
|
118
|
-
end
|
119
|
-
|
120
|
-
it "should be able to show the commercial week" do
|
121
|
-
Date.civil(2000, 4, 9).strftime("%V").should == "14"
|
122
|
-
Date.civil(2000, 4, 10).strftime("%V").should == "15"
|
123
|
-
end
|
124
|
-
|
125
|
-
it "should be able to show the week day" do
|
126
|
-
Date.civil(2000, 4, 9).strftime("%w").should == "0"
|
127
|
-
Date.civil(2000, 4, 10).strftime("%w").should == "1"
|
128
|
-
end
|
129
|
-
|
130
|
-
it "should be able to show the year in YYYY format" do
|
131
|
-
Date.civil(2000, 4, 9).strftime("%Y").should == "2000"
|
132
|
-
end
|
133
|
-
|
134
|
-
it "should be able to show the year in YY format" do
|
135
|
-
Date.civil(2000, 4, 9).strftime("%y").should == "00"
|
136
|
-
end
|
137
|
-
|
138
|
-
it "should be able to show the timezone of the date with a : separator" do
|
139
|
-
Date.civil(2000, 4, 9).strftime("%Z").should == "+00:00"
|
140
|
-
end
|
141
|
-
|
142
|
-
it "should be able to show the timezone of the date with a : separator" do
|
143
|
-
Date.civil(2000, 4, 9).strftime("%z").should == "+0000"
|
144
|
-
end
|
145
|
-
|
146
|
-
it "should be able to escape the % character" do
|
147
|
-
Date.civil(2000, 4, 9).strftime("%%").should == "%"
|
148
|
-
end
|
149
|
-
|
150
|
-
############################
|
151
|
-
# Specs that combine stuff #
|
152
|
-
############################
|
153
|
-
|
154
|
-
it "should be able to print the date in full" do
|
155
|
-
Date.civil(2000, 4, 6).strftime("%c").should == "Thu Apr 6 00:00:00 2000"
|
156
|
-
Date.civil(2000, 4, 6).strftime("%c").should == Date.civil(2000, 4, 6).strftime('%a %b %e %H:%M:%S %Y')
|
157
|
-
end
|
11
|
+
it_behaves_like :strftime_date, :strftime
|
158
12
|
|
159
|
-
|
160
|
-
|
161
|
-
|
13
|
+
# Differences with Time
|
14
|
+
it "should be able to print the date with no argument" do
|
15
|
+
@date.strftime.should == "2000-04-09"
|
16
|
+
@date.strftime.should == @date.to_s
|
162
17
|
end
|
163
18
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
end
|
168
|
-
|
169
|
-
it "should be able to show HH:MM" do
|
170
|
-
Date.civil(2000, 4, 6).strftime("%R").should == "00:00"
|
171
|
-
Date.civil(2000, 4, 6).strftime("%R").should == Date.civil(2000, 4, 6).strftime('%H:%M')
|
172
|
-
end
|
173
|
-
|
174
|
-
it "should be able to show HH:MM:SS AM/PM" do
|
175
|
-
Date.civil(2000, 4, 6).strftime("%r").should == "12:00:00 AM"
|
176
|
-
Date.civil(2000, 4, 6).strftime("%r").should == Date.civil(2000, 4, 6).strftime('%I:%M:%S %p')
|
177
|
-
end
|
178
|
-
|
179
|
-
it "should be able to show HH:MM:SS" do
|
180
|
-
Date.civil(2000, 4, 6).strftime("%T").should == "00:00:00"
|
181
|
-
Date.civil(2000, 4, 6).strftime("%T").should == Date.civil(2000, 4, 6).strftime('%H:%M:%S')
|
19
|
+
# %Z is %:z for Date/DateTime
|
20
|
+
it "should be able to show the timezone with a : separator" do
|
21
|
+
@date.strftime("%Z").should == "+00:00"
|
182
22
|
end
|
183
23
|
|
24
|
+
# %v is %e-%b-%Y for Date/DateTime
|
184
25
|
it "should be able to show the commercial week" do
|
185
|
-
|
186
|
-
|
187
|
-
end
|
188
|
-
|
189
|
-
it "should be able to show HH:MM:SS" do
|
190
|
-
Date.civil(2000, 4, 6).strftime("%X").should == "00:00:00"
|
191
|
-
Date.civil(2000, 4, 6).strftime("%X").should == Date.civil(2000, 4, 6).strftime('%H:%M:%S')
|
26
|
+
@date.strftime("%v").should == " 9-Apr-2000"
|
27
|
+
@date.strftime("%v").should == @date.strftime('%e-%b-%Y')
|
192
28
|
end
|
193
29
|
|
194
|
-
|
195
|
-
|
196
|
-
|
30
|
+
# additional conversion specifiers only in Date/DateTime
|
31
|
+
it 'shows the number of milliseconds since epoch' do
|
32
|
+
DateTime.new(1970, 1, 1).strftime('%Q').should == "0"
|
33
|
+
@date.strftime("%Q").should == "955238400000"
|
197
34
|
end
|
198
35
|
|
199
36
|
it "should be able to show a full notation" do
|
200
|
-
|
201
|
-
|
37
|
+
@date.strftime("%+").should == "Sun Apr 9 00:00:00 +00:00 2000"
|
38
|
+
@date.strftime("%+").should == @date.strftime('%a %b %e %H:%M:%S %Z %Y')
|
202
39
|
end
|
203
|
-
|
204
40
|
end
|
data/spec/date/strptime_spec.rb
CHANGED
@@ -144,6 +144,10 @@ describe "Date#strptime" do
|
|
144
144
|
Date.strptime("Sun Apr 9 00:00:00 +00:00 2000", "%a %b %e %H:%M:%S %Z %Y").should == Date.civil(2000, 4, 9)
|
145
145
|
end
|
146
146
|
|
147
|
+
it "parses a date with a Time Zone" do
|
148
|
+
d = Date.strptime('31 Dec 2014 11:12:13 UTC', '%d %b %Y %T %Z')
|
149
|
+
d.should be_an_instance_of(Date)
|
150
|
+
end
|
147
151
|
end
|
148
152
|
|
149
153
|
describe "Date.strptime" do
|
@@ -1,25 +1,51 @@
|
|
1
1
|
require 'date'
|
2
|
+
require File.expand_path('../../shared/strftime_for_date', __FILE__)
|
3
|
+
require File.expand_path('../../shared/strftime_for_time', __FILE__)
|
2
4
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
describe "DateTime#strftime" do
|
6
|
+
before :all do
|
7
|
+
@new_date = lambda { |y,m,d| DateTime.civil(y,m,d) }
|
8
|
+
@new_time = lambda { |*args| DateTime.civil(*args) }
|
9
|
+
@new_time_in_zone = lambda { |zone,offset,*args|
|
10
|
+
y, m, d, h, min, s = args
|
11
|
+
DateTime.new(y, m||1, d||1, h||0, min||0, s||0, Rational(offset, 24))
|
12
|
+
}
|
13
|
+
@new_time_with_offset = lambda { |y,m,d,h,min,s,offset|
|
14
|
+
DateTime.new(y,m,d,h,min,s, Rational(offset, 86_400))
|
15
|
+
}
|
8
16
|
|
9
|
-
|
10
|
-
|
11
|
-
|
17
|
+
@time = DateTime.civil(2001, 2, 3, 4, 5, 6)
|
18
|
+
end
|
19
|
+
|
20
|
+
it_behaves_like :strftime_date, :strftime
|
21
|
+
it_behaves_like :strftime_time, :strftime
|
22
|
+
|
23
|
+
# Differences with Time
|
24
|
+
it "should be able to print the datetime with no argument" do
|
25
|
+
@time.strftime.should == "2001-02-03T04:05:06+00:00"
|
26
|
+
@time.strftime.should == @time.to_s
|
27
|
+
end
|
12
28
|
|
13
|
-
|
14
|
-
|
15
|
-
|
29
|
+
# %Z is %:z for Date/DateTime
|
30
|
+
it "should be able to show the timezone with a : separator" do
|
31
|
+
@time.strftime("%Z").should == "+00:00"
|
32
|
+
end
|
33
|
+
|
34
|
+
# %v is %e-%b-%Y for Date/DateTime
|
35
|
+
it "should be able to show the commercial week" do
|
36
|
+
@time.strftime("%v").should == " 3-Feb-2001"
|
37
|
+
@time.strftime("%v").should == @time.strftime('%e-%b-%Y')
|
38
|
+
end
|
16
39
|
|
17
|
-
|
18
|
-
|
19
|
-
|
40
|
+
# additional conversion specifiers only in Date/DateTime
|
41
|
+
it 'shows the number of milliseconds since epoch' do
|
42
|
+
DateTime.new(1970, 1, 1, 0, 0, 0).strftime("%Q").should == "0"
|
43
|
+
@time.strftime("%Q").should == "981173106000"
|
44
|
+
DateTime.civil(2001, 2, 3, 4, 5, Rational(6123, 1000)).strftime("%Q").should == "981173106123"
|
45
|
+
end
|
20
46
|
|
21
|
-
|
22
|
-
|
23
|
-
|
47
|
+
it "should be able to show a full notation" do
|
48
|
+
@time.strftime("%+").should == "Sat Feb 3 04:05:06 +00:00 2001"
|
49
|
+
@time.strftime("%+").should == @time.strftime('%a %b %e %H:%M:%S %Z %Y')
|
24
50
|
end
|
25
51
|
end
|
@@ -0,0 +1,282 @@
|
|
1
|
+
# Shared for Time, Date and DateTime, testing only date components (smallest unit is day)
|
2
|
+
# The reference version of this file lives in rubyspec's shared/time directory.
|
3
|
+
|
4
|
+
describe :strftime_date, :shared => true do
|
5
|
+
before :all do
|
6
|
+
@d200_4_6 = @new_date[200, 4, 6]
|
7
|
+
@d2000_4_6 = @new_date[2000, 4, 6]
|
8
|
+
@d2000_4_9 = @new_date[2000, 4, 9]
|
9
|
+
@d2000_4_10 = @new_date[2000, 4, 10]
|
10
|
+
@d2009_9_18 = @new_date[2009, 9, 18]
|
11
|
+
end
|
12
|
+
|
13
|
+
# Per conversion specifier, not combining
|
14
|
+
it "should be able to print the full day name" do
|
15
|
+
@d2000_4_6.strftime("%A").should == "Thursday"
|
16
|
+
@d2009_9_18.strftime('%A').should == 'Friday'
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should be able to print the short day name" do
|
20
|
+
@d2000_4_6.strftime("%a").should == "Thu"
|
21
|
+
@d2009_9_18.strftime('%a').should == 'Fri'
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should be able to print the full month name" do
|
25
|
+
@d2000_4_6.strftime("%B").should == "April"
|
26
|
+
@d2009_9_18.strftime('%B').should == 'September'
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should be able to print the short month name" do
|
30
|
+
@d2000_4_6.strftime("%b").should == "Apr"
|
31
|
+
@d2000_4_6.strftime("%h").should == "Apr"
|
32
|
+
@d2000_4_6.strftime("%b").should == @d2000_4_6.strftime("%h")
|
33
|
+
@d2009_9_18.strftime('%b').should == 'Sep'
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should be able to print the century" do
|
37
|
+
@d2000_4_6.strftime("%C").should == "20"
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should be able to print the month day with leading zeroes" do
|
41
|
+
@d2000_4_6.strftime("%d").should == "06"
|
42
|
+
@d2009_9_18.strftime('%d').should == '18'
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should be able to print the month day with leading spaces" do
|
46
|
+
@d2000_4_6.strftime("%e").should == " 6"
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should be able to print the commercial year with leading zeroes" do
|
50
|
+
@d2000_4_6.strftime("%G").should == "2000"
|
51
|
+
@d200_4_6.strftime("%G").should == "0200"
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should be able to print the commercial year with only two digits" do
|
55
|
+
@d2000_4_6.strftime("%g").should == "00"
|
56
|
+
@d200_4_6.strftime("%g").should == "00"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should be able to print the hour with leading zeroes (hour is always 00)" do
|
60
|
+
@d2000_4_6.strftime("%H").should == "00"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should be able to print the hour in 12 hour notation with leading zeroes" do
|
64
|
+
@d2000_4_6.strftime("%I").should == "12"
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should be able to print the julian day with leading zeroes" do
|
68
|
+
@d2000_4_6.strftime("%j").should == "097"
|
69
|
+
@d2009_9_18.strftime('%j').should == '261'
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should be able to print the hour in 24 hour notation with leading spaces" do
|
73
|
+
@d2000_4_6.strftime("%k").should == " 0"
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should be able to print the hour in 12 hour notation with leading spaces" do
|
77
|
+
@d2000_4_6.strftime("%l").should == "12"
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should be able to print the minutes with leading zeroes" do
|
81
|
+
@d2000_4_6.strftime("%M").should == "00"
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should be able to print the month with leading zeroes" do
|
85
|
+
@d2000_4_6.strftime("%m").should == "04"
|
86
|
+
@d2009_9_18.strftime('%m').should == '09'
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should be able to add a newline" do
|
90
|
+
@d2000_4_6.strftime("%n").should == "\n"
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should be able to show AM/PM" do
|
94
|
+
@d2000_4_6.strftime("%P").should == "am"
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should be able to show am/pm" do
|
98
|
+
@d2000_4_6.strftime("%p").should == "AM"
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should be able to show the number of seconds with leading zeroes" do
|
102
|
+
@d2000_4_6.strftime("%S").should == "00"
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should be able to show the number of seconds with leading zeroes" do
|
106
|
+
@d2000_4_6.strftime("%S").should == "00"
|
107
|
+
end
|
108
|
+
|
109
|
+
ruby_version_is "1.9" do
|
110
|
+
it "should be able to show the number of seconds since the unix epoch" do
|
111
|
+
@d2000_4_6.strftime("%s").should == "954979200"
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should be able to add a tab" do
|
116
|
+
@d2000_4_6.strftime("%t").should == "\t"
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should be able to show the week number with the week starting on Sunday (%U) and Monday (%W)" do
|
120
|
+
@d2000_4_6.strftime("%U").should == "14" # Thursday
|
121
|
+
@d2000_4_6.strftime("%W").should == "14"
|
122
|
+
|
123
|
+
@d2000_4_9.strftime("%U").should == "15" # Sunday
|
124
|
+
@d2000_4_9.strftime("%W").should == "14"
|
125
|
+
|
126
|
+
@d2000_4_10.strftime("%U").should == "15" # Monday
|
127
|
+
@d2000_4_10.strftime("%W").should == "15"
|
128
|
+
|
129
|
+
# start of the year
|
130
|
+
saturday_first = @new_date[2000,1,1]
|
131
|
+
saturday_first.strftime("%U").should == "00"
|
132
|
+
saturday_first.strftime("%W").should == "00"
|
133
|
+
|
134
|
+
sunday_second = @new_date[2000,1,2]
|
135
|
+
sunday_second.strftime("%U").should == "01"
|
136
|
+
sunday_second.strftime("%W").should == "00"
|
137
|
+
|
138
|
+
monday_third = @new_date[2000,1,3]
|
139
|
+
monday_third.strftime("%U").should == "01"
|
140
|
+
monday_third.strftime("%W").should == "01"
|
141
|
+
|
142
|
+
sunday_9th = @new_date[2000,1,9]
|
143
|
+
sunday_9th.strftime("%U").should == "02"
|
144
|
+
sunday_9th.strftime("%W").should == "01"
|
145
|
+
|
146
|
+
monday_10th = @new_date[2000,1,10]
|
147
|
+
monday_10th.strftime("%U").should == "02"
|
148
|
+
monday_10th.strftime("%W").should == "02"
|
149
|
+
|
150
|
+
# middle of the year
|
151
|
+
some_sunday = @new_date[2000,8,6]
|
152
|
+
some_sunday.strftime("%U").should == "32"
|
153
|
+
some_sunday.strftime("%W").should == "31"
|
154
|
+
some_monday = @new_date[2000,8,7]
|
155
|
+
some_monday.strftime("%U").should == "32"
|
156
|
+
some_monday.strftime("%W").should == "32"
|
157
|
+
|
158
|
+
# end of year, and start of next one
|
159
|
+
saturday_30th = @new_date[2000,12,30]
|
160
|
+
saturday_30th.strftime("%U").should == "52"
|
161
|
+
saturday_30th.strftime("%W").should == "52"
|
162
|
+
|
163
|
+
sunday_last = @new_date[2000,12,31]
|
164
|
+
sunday_last.strftime("%U").should == "53"
|
165
|
+
sunday_last.strftime("%W").should == "52"
|
166
|
+
|
167
|
+
monday_first = @new_date[2001,1,1]
|
168
|
+
monday_first.strftime("%U").should == "00"
|
169
|
+
monday_first.strftime("%W").should == "01"
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should be able to show the commercial week day" do
|
173
|
+
@d2000_4_9.strftime("%u").should == "7"
|
174
|
+
@d2000_4_10.strftime("%u").should == "1"
|
175
|
+
end
|
176
|
+
|
177
|
+
it "should be able to show the commercial week" do
|
178
|
+
@d2000_4_9.strftime("%V").should == "14"
|
179
|
+
@d2000_4_10.strftime("%V").should == "15"
|
180
|
+
end
|
181
|
+
|
182
|
+
# %W: see %U
|
183
|
+
|
184
|
+
it "should be able to show the week day" do
|
185
|
+
@d2000_4_9.strftime("%w").should == "0"
|
186
|
+
@d2000_4_10.strftime("%w").should == "1"
|
187
|
+
@d2009_9_18.strftime('%w').should == '5'
|
188
|
+
end
|
189
|
+
|
190
|
+
it "should be able to show the year in YYYY format" do
|
191
|
+
@d2000_4_9.strftime("%Y").should == "2000"
|
192
|
+
@d2009_9_18.strftime('%Y').should == '2009'
|
193
|
+
end
|
194
|
+
|
195
|
+
it "should be able to show the year in YY format" do
|
196
|
+
@d2000_4_9.strftime("%y").should == "00"
|
197
|
+
@d2009_9_18.strftime('%y').should == '09'
|
198
|
+
end
|
199
|
+
|
200
|
+
it "should be able to show the timezone of the date with a : separator" do
|
201
|
+
@d2000_4_9.strftime("%z").should == "+0000"
|
202
|
+
end
|
203
|
+
|
204
|
+
it "should be able to escape the % character" do
|
205
|
+
@d2000_4_9.strftime("%%").should == "%"
|
206
|
+
end
|
207
|
+
|
208
|
+
# Combining conversion specifiers
|
209
|
+
it "should be able to print the date in full" do
|
210
|
+
@d2000_4_6.strftime("%c").should == "Thu Apr 6 00:00:00 2000"
|
211
|
+
@d2000_4_6.strftime("%c").should == @d2000_4_6.strftime('%a %b %e %H:%M:%S %Y')
|
212
|
+
end
|
213
|
+
|
214
|
+
it "should be able to print the date with slashes" do
|
215
|
+
@d2000_4_6.strftime("%D").should == "04/06/00"
|
216
|
+
@d2000_4_6.strftime("%D").should == @d2000_4_6.strftime('%m/%d/%y')
|
217
|
+
end
|
218
|
+
|
219
|
+
it "should be able to print the date as YYYY-MM-DD" do
|
220
|
+
@d2000_4_6.strftime("%F").should == "2000-04-06"
|
221
|
+
@d2000_4_6.strftime("%F").should == @d2000_4_6.strftime('%Y-%m-%d')
|
222
|
+
end
|
223
|
+
|
224
|
+
it "should be able to show HH:MM" do
|
225
|
+
@d2000_4_6.strftime("%R").should == "00:00"
|
226
|
+
@d2000_4_6.strftime("%R").should == @d2000_4_6.strftime('%H:%M')
|
227
|
+
end
|
228
|
+
|
229
|
+
it "should be able to show HH:MM:SS AM/PM" do
|
230
|
+
@d2000_4_6.strftime("%r").should == "12:00:00 AM"
|
231
|
+
@d2000_4_6.strftime("%r").should == @d2000_4_6.strftime('%I:%M:%S %p')
|
232
|
+
end
|
233
|
+
|
234
|
+
it "should be able to show HH:MM:SS" do
|
235
|
+
@d2000_4_6.strftime("%T").should == "00:00:00"
|
236
|
+
@d2000_4_6.strftime("%T").should == @d2000_4_6.strftime('%H:%M:%S')
|
237
|
+
end
|
238
|
+
|
239
|
+
it "should be able to show HH:MM:SS" do
|
240
|
+
@d2000_4_6.strftime("%X").should == "00:00:00"
|
241
|
+
@d2000_4_6.strftime("%X").should == @d2000_4_6.strftime('%H:%M:%S')
|
242
|
+
end
|
243
|
+
|
244
|
+
it "should be able to show MM/DD/YY" do
|
245
|
+
@d2000_4_6.strftime("%x").should == "04/06/00"
|
246
|
+
@d2000_4_6.strftime("%x").should == @d2000_4_6.strftime('%m/%d/%y')
|
247
|
+
end
|
248
|
+
|
249
|
+
# GNU modificators
|
250
|
+
it "supports GNU modificators" do
|
251
|
+
time = @new_date[2001, 2, 3]
|
252
|
+
|
253
|
+
time.strftime('%^h').should == 'FEB'
|
254
|
+
time.strftime('%^_5h').should == ' FEB'
|
255
|
+
time.strftime('%0^5h').should == '00FEB'
|
256
|
+
time.strftime('%04m').should == '0002'
|
257
|
+
time.strftime('%0-^5h').should == 'FEB'
|
258
|
+
time.strftime('%_-^5h').should == 'FEB'
|
259
|
+
time.strftime('%^ha').should == 'FEBa'
|
260
|
+
|
261
|
+
time.strftime("%10h").should == ' Feb'
|
262
|
+
time.strftime("%^10h").should == ' FEB'
|
263
|
+
time.strftime("%_10h").should == ' Feb'
|
264
|
+
time.strftime("%_010h").should == '0000000Feb'
|
265
|
+
time.strftime("%0_10h").should == ' Feb'
|
266
|
+
time.strftime("%0_-10h").should == 'Feb'
|
267
|
+
time.strftime("%0-_10h").should == 'Feb'
|
268
|
+
end
|
269
|
+
|
270
|
+
it "supports the '-' modifier to drop leading zeros" do
|
271
|
+
@new_date[2001,3,22].strftime("%-m/%-d/%-y").should == "3/22/1"
|
272
|
+
end
|
273
|
+
|
274
|
+
with_feature :encoding do
|
275
|
+
it "passes the format string's encoding to the result string" do
|
276
|
+
result = @new_date[2010,3,8].strftime("%d. März %Y")
|
277
|
+
|
278
|
+
result.encoding.should == Encoding::UTF_8
|
279
|
+
result.should == "08. März 2010"
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
@@ -0,0 +1,174 @@
|
|
1
|
+
# Shared for Time and DateTime, testing only time components (hours, minutes, seconds and smaller)
|
2
|
+
# The reference version of this file lives in rubyspec's shared/time directory.
|
3
|
+
|
4
|
+
describe :strftime_time, :shared => true do
|
5
|
+
before :all do
|
6
|
+
@time = @new_time[2001, 2, 3, 4, 5, 6]
|
7
|
+
end
|
8
|
+
|
9
|
+
it "formats time according to the directives in the given format string" do
|
10
|
+
@new_time[1970, 1, 1].strftime("There is %M minutes in epoch").should == "There is 00 minutes in epoch"
|
11
|
+
end
|
12
|
+
|
13
|
+
# Per conversion specifier, not combining
|
14
|
+
it "returns the 24-based hour with %H" do
|
15
|
+
time = @new_time[2009, 9, 18, 18, 0, 0]
|
16
|
+
time.strftime('%H').should == '18'
|
17
|
+
end
|
18
|
+
|
19
|
+
it "returns the 12-based hour with %I" do
|
20
|
+
time = @new_time[2009, 9, 18, 18, 0, 0]
|
21
|
+
time.strftime('%I').should == '06'
|
22
|
+
end
|
23
|
+
|
24
|
+
it "supports 24-hr formatting with %l" do
|
25
|
+
time = @new_time[2004, 8, 26, 22, 38, 3]
|
26
|
+
time.strftime("%k").should == "22"
|
27
|
+
morning_time = @new_time[2004, 8, 26, 6, 38, 3]
|
28
|
+
morning_time.strftime("%k").should == " 6"
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "with %L" do
|
32
|
+
it "formats the milliseconds of of the second" do
|
33
|
+
@new_time[2009, 1, 1, 0, 0, Rational(100, 1000)].strftime("%L").should == "100"
|
34
|
+
@new_time[2009, 1, 1, 0, 0, Rational(10, 1000)].strftime("%L").should == "010"
|
35
|
+
@new_time[2009, 1, 1, 0, 0, Rational(1, 1000)].strftime("%L").should == "001"
|
36
|
+
@new_time[2009, 1, 1, 0, 0, Rational(1, 10000)].strftime("%L").should == "000"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
it "supports 12-hr formatting with %l" do
|
41
|
+
time = @new_time[2004, 8, 26, 22, 38, 3]
|
42
|
+
time.strftime('%l').should == '10'
|
43
|
+
morning_time = @new_time[2004, 8, 26, 6, 38, 3]
|
44
|
+
morning_time.strftime('%l').should == ' 6'
|
45
|
+
end
|
46
|
+
|
47
|
+
it "returns the minute with %M" do
|
48
|
+
time = @new_time[2009, 9, 18, 12, 6, 0]
|
49
|
+
time.strftime('%M').should == '06'
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "with %N" do
|
53
|
+
it "formats the nanoseconds of the second with %N" do
|
54
|
+
@new_time[2000, 4, 6, 0, 0, Rational(1234560, 1_000_000_000)].strftime("%N").should == "001234560"
|
55
|
+
end
|
56
|
+
|
57
|
+
it "formats the milliseconds of the second with %3N" do
|
58
|
+
@new_time[2000, 4, 6, 0, 0, Rational(50, 1000)].strftime("%3N").should == "050"
|
59
|
+
end
|
60
|
+
|
61
|
+
it "formats the microseconds of the second with %6N" do
|
62
|
+
@new_time[2000, 4, 6, 0, 0, Rational(42, 1000)].strftime("%6N").should == "042000"
|
63
|
+
end
|
64
|
+
|
65
|
+
it "formats the nanoseconds of the second with %9N" do
|
66
|
+
@new_time[2000, 4, 6, 0, 0, Rational(1234, 1_000_000)].strftime("%9N").should == "001234000"
|
67
|
+
end
|
68
|
+
|
69
|
+
it "formats the picoseconds of the second with %12N" do
|
70
|
+
@new_time[2000, 4, 6, 0, 0, Rational(999999999999, 1000_000_000_000)].strftime("%12N").should == "999999999999"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
it "supports am/pm formatting with %P" do
|
75
|
+
time = @new_time[2004, 8, 26, 22, 38, 3]
|
76
|
+
time.strftime('%P').should == 'pm'
|
77
|
+
time = @new_time[2004, 8, 26, 11, 38, 3]
|
78
|
+
time.strftime('%P').should == 'am'
|
79
|
+
end
|
80
|
+
|
81
|
+
it "supports AM/PM formatting with %p" do
|
82
|
+
time = @new_time[2004, 8, 26, 22, 38, 3]
|
83
|
+
time.strftime('%p').should == 'PM'
|
84
|
+
time = @new_time[2004, 8, 26, 11, 38, 3]
|
85
|
+
time.strftime('%p').should == 'AM'
|
86
|
+
end
|
87
|
+
|
88
|
+
it "returns the second with %S" do
|
89
|
+
time = @new_time[2009, 9, 18, 12, 0, 6]
|
90
|
+
time.strftime('%S').should == '06'
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should be able to show the number of seconds since the unix epoch" do
|
94
|
+
@new_time_in_zone["GMT", 0, 2005].strftime("%s").should == "1104537600"
|
95
|
+
end
|
96
|
+
|
97
|
+
it "returns the timezone with %Z" do
|
98
|
+
time = @new_time[2009, 9, 18, 12, 0, 0]
|
99
|
+
zone = time.zone
|
100
|
+
time.strftime("%Z").should == zone
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "with %z" do
|
104
|
+
it "formats a UTC time offset as '+0000'" do
|
105
|
+
@new_time_in_zone["GMT", 0, 2005].strftime("%z").should == "+0000"
|
106
|
+
end
|
107
|
+
|
108
|
+
it "formats a local time with positive UTC offset as '+HHMM'" do
|
109
|
+
@new_time_in_zone["CET", 1, 2005].strftime("%z").should == "+0100"
|
110
|
+
end
|
111
|
+
|
112
|
+
it "formats a local time with negative UTC offset as '-HHMM'" do
|
113
|
+
@new_time_in_zone["PST", -8, 2005].strftime("%z").should == "-0800"
|
114
|
+
end
|
115
|
+
|
116
|
+
it "formats a time with fixed positive offset as '+HHMM'" do
|
117
|
+
@new_time_with_offset[2012, 1, 1, 0, 0, 0, 3660].strftime("%z").should == "+0101"
|
118
|
+
end
|
119
|
+
|
120
|
+
it "formats a time with fixed negative offset as '-HHMM'" do
|
121
|
+
@new_time_with_offset[2012, 1, 1, 0, 0, 0, -3660].strftime("%z").should == "-0101"
|
122
|
+
end
|
123
|
+
|
124
|
+
it "formats a time with fixed offset as '+/-HH:MM' with ':' specifier" do
|
125
|
+
@new_time_with_offset[2012, 1, 1, 0, 0, 0, 3660].strftime("%:z").should == "+01:01"
|
126
|
+
end
|
127
|
+
|
128
|
+
it "formats a time with fixed offset as '+/-HH:MM:SS' with '::' specifier" do
|
129
|
+
@new_time_with_offset[2012, 1, 1, 0, 0, 0, 3665].strftime("%::z").should == "+01:01:05"
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
# Combining conversion specifiers
|
134
|
+
it "should be able to print the time in full" do
|
135
|
+
@time.strftime("%c").should == "Sat Feb 3 04:05:06 2001"
|
136
|
+
@time.strftime("%c").should == @time.strftime('%a %b %e %H:%M:%S %Y')
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should be able to show HH:MM" do
|
140
|
+
@time.strftime("%R").should == "04:05"
|
141
|
+
@time.strftime("%R").should == @time.strftime('%H:%M')
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should be able to show HH:MM:SS AM/PM" do
|
145
|
+
@time.strftime("%r").should == "04:05:06 AM"
|
146
|
+
@time.strftime("%r").should == @time.strftime('%I:%M:%S %p')
|
147
|
+
end
|
148
|
+
|
149
|
+
it "supports HH:MM:SS formatting with %T" do
|
150
|
+
@time.strftime('%T').should == '04:05:06'
|
151
|
+
@time.strftime('%T').should == @time.strftime('%H:%M:%S')
|
152
|
+
end
|
153
|
+
|
154
|
+
it "supports HH:MM:SS formatting with %X" do
|
155
|
+
@time.strftime('%X').should == '04:05:06'
|
156
|
+
@time.strftime('%X').should == @time.strftime('%H:%M:%S')
|
157
|
+
end
|
158
|
+
|
159
|
+
# GNU modificators
|
160
|
+
it "supports the '-' modifier to drop leading zeros" do
|
161
|
+
time = @new_time[2001,1,1,14,01,42]
|
162
|
+
time.strftime("%-m/%-d/%-y %-I:%-M %p").should == "1/1/1 2:1 PM"
|
163
|
+
|
164
|
+
time = @new_time[2010,10,10,12,10,42]
|
165
|
+
time.strftime("%-m/%-d/%-y %-I:%-M %p").should == "10/10/10 12:10 PM"
|
166
|
+
end
|
167
|
+
|
168
|
+
it "supports the '-' modifier for padded format directives" do
|
169
|
+
time = @new_time[2010, 8, 8, 8, 10, 42]
|
170
|
+
time.strftime("%-e").should == "8"
|
171
|
+
time.strftime("%-k%p").should == "8AM"
|
172
|
+
time.strftime("%-l%p").should == "8AM"
|
173
|
+
end
|
174
|
+
end
|
metadata
CHANGED
@@ -1,67 +1,67 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubysl-date
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Shirai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
type: :development
|
14
15
|
name: bundler
|
15
|
-
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '1.3'
|
20
|
-
type: :development
|
21
21
|
prerelease: false
|
22
|
-
|
22
|
+
requirement: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
type: :development
|
28
29
|
name: rake
|
29
|
-
|
30
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
32
|
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
34
|
version: '10.0'
|
34
|
-
type: :development
|
35
35
|
prerelease: false
|
36
|
-
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
type: :development
|
42
43
|
name: mspec
|
43
|
-
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
46
|
- - "~>"
|
46
47
|
- !ruby/object:Gem::Version
|
47
48
|
version: '1.5'
|
48
|
-
type: :development
|
49
49
|
prerelease: false
|
50
|
-
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.5'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
type: :development
|
56
57
|
name: rubysl-prettyprint
|
57
|
-
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
59
|
requirements:
|
59
60
|
- - "~>"
|
60
61
|
- !ruby/object:Gem::Version
|
61
62
|
version: '2.0'
|
62
|
-
type: :development
|
63
63
|
prerelease: false
|
64
|
-
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
@@ -77,6 +77,7 @@ files:
|
|
77
77
|
- ".travis.yml"
|
78
78
|
- Gemfile
|
79
79
|
- LICENSE
|
80
|
+
- MRI_LICENSE
|
80
81
|
- README.md
|
81
82
|
- Rakefile
|
82
83
|
- lib/date.rb
|
@@ -154,6 +155,8 @@ files:
|
|
154
155
|
- spec/date/ld_spec.rb
|
155
156
|
- spec/date/ld_to_jd_spec.rb
|
156
157
|
- spec/date/leap_spec.rb
|
158
|
+
- spec/date/marshal_dump_spec.rb
|
159
|
+
- spec/date/marshal_load_spec.rb
|
157
160
|
- spec/date/mday_spec.rb
|
158
161
|
- spec/date/minus_month_spec.rb
|
159
162
|
- spec/date/minus_spec.rb
|
@@ -243,6 +246,8 @@ files:
|
|
243
246
|
- spec/datetime/to_time_spec.rb
|
244
247
|
- spec/datetime/xmlschema_spec.rb
|
245
248
|
- spec/datetime/zone_spec.rb
|
249
|
+
- spec/shared/strftime_for_date.rb
|
250
|
+
- spec/shared/strftime_for_time.rb
|
246
251
|
- spec/time/to_date_spec.rb
|
247
252
|
homepage: https://github.com/rubysl/rubysl-date
|
248
253
|
licenses:
|
@@ -264,7 +269,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
264
269
|
version: '0'
|
265
270
|
requirements: []
|
266
271
|
rubyforge_project:
|
267
|
-
rubygems_version: 2.
|
272
|
+
rubygems_version: 2.4.5
|
268
273
|
signing_key:
|
269
274
|
specification_version: 4
|
270
275
|
summary: Ruby standard library date.
|
@@ -335,6 +340,8 @@ test_files:
|
|
335
340
|
- spec/date/ld_spec.rb
|
336
341
|
- spec/date/ld_to_jd_spec.rb
|
337
342
|
- spec/date/leap_spec.rb
|
343
|
+
- spec/date/marshal_dump_spec.rb
|
344
|
+
- spec/date/marshal_load_spec.rb
|
338
345
|
- spec/date/mday_spec.rb
|
339
346
|
- spec/date/minus_month_spec.rb
|
340
347
|
- spec/date/minus_spec.rb
|
@@ -424,4 +431,6 @@ test_files:
|
|
424
431
|
- spec/datetime/to_time_spec.rb
|
425
432
|
- spec/datetime/xmlschema_spec.rb
|
426
433
|
- spec/datetime/zone_spec.rb
|
434
|
+
- spec/shared/strftime_for_date.rb
|
435
|
+
- spec/shared/strftime_for_time.rb
|
427
436
|
- spec/time/to_date_spec.rb
|