stamp 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stamp (0.3.0)
4
+ stamp (0.4.0)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
data/README.md CHANGED
@@ -46,7 +46,7 @@ date.stamp("1st of Jan") #=> "9th of Jun"
46
46
  ### Times
47
47
 
48
48
  `Time#stamp` supports the same kinds of examples as `Date`, but also formats
49
- hours, minutes, and seconds when it sees colon-separated values:
49
+ hours, minutes, and seconds when it sees colon-separated values.
50
50
 
51
51
  ```ruby
52
52
  time = Time.utc(2011, 6, 9, 20, 52, 30)
@@ -55,13 +55,15 @@ time.stamp("01:00:00 AM") #=> "08:52:30 PM"
55
55
  time.stamp("23:59") #=> "20:52"
56
56
  time.stamp("23:59:59") #=> "20:52:30"
57
57
  time.stamp("Jan 1 at 01:00 AM") #=> "Jun 9 at 08:52 PM"
58
+ time.stamp("23:59 UTC") #=> "20:52 PST"
58
59
  ```
59
60
 
60
61
  ## Features
61
62
 
62
63
  * Abbreviated and full names of months and weekdays are recognized.
63
64
  * Days with or without a leading zero work instinctively.
64
- * Include any extraneous text you'd like, e.g. "DOB:".
65
+ * Standard time zone abbreviations are recognized; e.g. "UTC", "PST", "EST".
66
+ * Include any extraneous text you'd like; e.g. "DOB:".
65
67
 
66
68
  ### Disambiguation by value
67
69
 
@@ -96,7 +98,6 @@ Time.now.to_s(:military) #=> "15:35"
96
98
 
97
99
  ### Limitations
98
100
 
99
- * Time zone support hasn't been implemented. Patches welcome!
100
101
  * DateTime should inherit stamp behavior from Date, but it hasn't been thoroughly tested. Patches welcome!
101
102
 
102
103
  ### Advanced Usage
@@ -82,6 +82,7 @@ Feature: Stamping a date
82
82
  | 08:59:59 AM | 01:31:27 PM |
83
83
  | 08:59:59 PM | 01:31:27 PM |
84
84
  | 23:59:59 | 13:31:27 |
85
+ | 8:59 PST | 1:31 UTC |
85
86
 
86
87
  @date
87
88
  @time
@@ -5,6 +5,9 @@ module Stamp
5
5
  DAYNAMES_REGEXP = /^(#{Date::DAYNAMES.join('|')})$/i
6
6
  ABBR_DAYNAMES_REGEXP = /^(#{Date::ABBR_DAYNAMES.join('|')})$/i
7
7
 
8
+ # Full list of time zone abbreviations from http://en.wikipedia.org/wiki/List_of_time_zone_abbreviations
9
+ TIMEZONE_REGEXP = /^(ACDT|ACST|ACT|ADT|AEDT|AEST|AFT|AKDT|AKST|AMST|AMT|ART|AST|AST|AST|AST|AWDT|AWST|AZOST|AZT|BDT|BIOT|BIT|BOT|BRT|BST|BST|BTT|CAT|CCT|CDT|CDT|CEDT|CEST|CET|CHADT|CHAST|CHOT|ChST|CHUT|CIST|CIT|CKT|CLST|CLT|COST|COT|CST|CST|CST|CST|CST|CT|CVT|CWST|CXT|DAVT|DDUT|DFT|EASST|EAST|EAT|ECT|ECT|EDT|EEDT|EEST|EET|EGST|EGT|EIT|EST|EST|FET|FJT|FKST|FKT|FNT|GALT|GAMT|GET|GFT|GILT|GIT|GMT|GST|GST|GYT|HADT|HAEC|HAST|HKT|HMT|HOVT|HST|ICT|IDT|IOT|IRDT|IRKT|IRST|IST|IST|IST|JST|KGT|KOST|KRAT|KST|LHST|LHST|LINT|MAGT|MART|MAWT|MDT|MET|MEST|MHT|MIST|MIT|MMT|MSK|MST|MST|MST|MUT|MVT|MYT|NCT|NDT|NFT|NPT|NST|NT|NUT|NZDT|NZST|OMST|ORAT|PDT|PET|PETT|PGT|PHOT|PHT|PKT|PMDT|PMST|PONT|PST|PST|RET|ROTT|SAKT|SAMT|SAST|SBT|SCT|SGT|SLT|SRT|SST|SST|SYOT|TAHT|THA|TFT|TJT|TKT|TLT|TMT|TOT|TVT|UCT|ULAT|UTC|UYST|UYT|UZT|VET|VLAT|VOLT|VOST|VUT|WAKT|WAST|WAT|WEDT|WEST|WET|WST|YAKT|YEKT)$/
10
+
8
11
  ONE_DIGIT_REGEXP = /^\d{1}$/
9
12
  TWO_DIGIT_REGEXP = /^\d{2}$/
10
13
  FOUR_DIGIT_REGEXP = /^\d{4}$/
@@ -148,6 +151,9 @@ module Stamp
148
151
  when ABBR_DAYNAMES_REGEXP
149
152
  '%a'
150
153
 
154
+ when TIMEZONE_REGEXP
155
+ '%Z'
156
+
151
157
  when FOUR_DIGIT_REGEXP
152
158
  '%Y'
153
159
 
@@ -176,4 +182,4 @@ module Stamp
176
182
  end
177
183
 
178
184
  end
179
- end
185
+ end
@@ -1,3 +1,3 @@
1
1
  module Stamp
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stamp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-30 00:00:00.000000000 Z
12
+ date: 2012-12-06 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Format dates and times based on human-friendly examples, not arcane strftime
15
15
  directives.
@@ -49,7 +49,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
49
49
  version: '0'
50
50
  segments:
51
51
  - 0
52
- hash: -3229657831275162604
52
+ hash: 2023252387998863659
53
53
  required_rubygems_version: !ruby/object:Gem::Requirement
54
54
  none: false
55
55
  requirements:
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  version: '0'
59
59
  segments:
60
60
  - 0
61
- hash: -3229657831275162604
61
+ hash: 2023252387998863659
62
62
  requirements: []
63
63
  rubyforge_project:
64
64
  rubygems_version: 1.8.23