eztime 1.0.0 → 2.0.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 +15 -0
- data/VERSION +1 -1
- data/eztime.gemspec +2 -19
- data/lib/eztime.rb +104 -84
- data/test/helper.rb +10 -9
- data/test/test_eztime.rb +5 -2
- metadata +24 -76
- data/Gemfile +0 -11
- data/Gemfile.lock +0 -21
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NDdjMWM5MDM5ODYzMDI3NTQ0Nzk0ODQ4YzEzMjk2MzBkZGQyZGViNA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZDZiMDNmYjJlOTA5YzZiODg0MGMxYmNhODY4YTc0ZmQ1OTFiZTY3NQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NzhkZDg5MDc4YmEzMzg3NTViZDE1Y2VkYWU4ODZmNjAwZTllNjI1MzMxMDA3
|
10
|
+
MGIyZmNlYjU2ZDNlZTdhMGI3OWE2MDU1MjA2OGY1MTAxNjliNjUyMzUyM2My
|
11
|
+
YmExNDI3OWFkMDk4ZGE5YTA5OGEyYzlkYWRiZGE5NzEyZGYyNmY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YzhlNjU1MmIyMDNmMWRjNzg2ZmNmMTgyYTRjNTRmMTNjNzQ3MDg5YjM5ZTRj
|
14
|
+
ODQ1ZDMxNzlmNGY2ZGJmYjdmN2ZmOGI3ZDA3N2ZkMGQ5ZGU4MjE2NDk4YzZm
|
15
|
+
NjZiNDZjNTEwMzBmMTkwNTlmODg0OWVmZWQ5MjliMmQ0ZmFiNTA=
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2.0.0
|
data/eztime.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{eztime}
|
8
|
-
s.version = "
|
8
|
+
s.version = "2.0.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Chris Scharf"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2015-02-27}
|
13
13
|
s.description = %q{Easier date/time manipulation}
|
14
14
|
s.email = %q{scharfie@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -17,8 +17,6 @@ Gem::Specification.new do |s|
|
|
17
17
|
"README.textile"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
|
-
"Gemfile",
|
21
|
-
"Gemfile.lock",
|
22
20
|
"LICENSE.txt",
|
23
21
|
"README.textile",
|
24
22
|
"Rakefile",
|
@@ -35,20 +33,5 @@ Gem::Specification.new do |s|
|
|
35
33
|
s.require_paths = ["lib"]
|
36
34
|
s.rubygems_version = %q{1.4.2}
|
37
35
|
s.summary = %q{Easier date/time manipulation}
|
38
|
-
|
39
|
-
if s.respond_to? :specification_version then
|
40
|
-
s.specification_version = 3
|
41
|
-
|
42
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
43
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
44
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
45
|
-
else
|
46
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
47
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
48
|
-
end
|
49
|
-
else
|
50
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
51
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
52
|
-
end
|
53
36
|
end
|
54
37
|
|
data/lib/eztime.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'date'
|
2
|
+
require 'forwardable'
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
cardinal =
|
4
|
+
module EZTime
|
5
|
+
def self.ordinal(number, include_cardinal=false)
|
6
|
+
# The following code was based on work found at:
|
7
|
+
# http://www.bigbold.com/snippets/user/jswizard#post2368
|
8
|
+
# Returns the cardinal (number) and ordinal (st, nd, rd, th, etc.)
|
9
|
+
# Pass include_cardinal as false to only return the ordinal
|
10
|
+
cardinal = number.to_i.abs
|
10
11
|
if (10...20).include?(cardinal) then
|
11
12
|
include_cardinal ? cardinal.to_s << 'th' : 'th'
|
12
13
|
else
|
@@ -14,84 +15,103 @@ class Numeric
|
|
14
15
|
include_cardinal ? cardinal.to_s << ord : ord
|
15
16
|
end
|
16
17
|
end
|
17
|
-
end
|
18
18
|
|
19
|
-
|
19
|
+
class FormattedTime
|
20
|
+
extend Forwardable
|
21
|
+
attr_accessor :time
|
22
|
+
|
23
|
+
def_delegators :@time,
|
24
|
+
:hour,
|
25
|
+
:min,
|
26
|
+
:sec,
|
27
|
+
:day, :wday, :mday,
|
28
|
+
:month,
|
29
|
+
:year
|
30
|
+
|
31
|
+
def initialize(time)
|
32
|
+
@time = time
|
33
|
+
end
|
34
|
+
|
35
|
+
def format(format_str)
|
36
|
+
eval("'" + format_str.gsub(/:([a-z_]{1,}[0-9]{0,2})/, '\' + \1.to_s + \'') + "'")
|
37
|
+
end
|
38
|
+
|
20
39
|
public
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
40
|
+
# Returns only the lower two digits of the year
|
41
|
+
# (i.e. 2006 => 06)
|
42
|
+
def syear; year.to_s[-2..-1]; end
|
43
|
+
|
44
|
+
# Returns the name of the month
|
45
|
+
# (January, February, etc.)
|
46
|
+
def month_name; Date::MONTHNAMES[month]; end
|
47
|
+
|
48
|
+
# Returns the abbreviated name of the month
|
49
|
+
# (Jan, Feb, etc.)
|
50
|
+
def month_abbr; Date::ABBR_MONTHNAMES[month]; end
|
51
|
+
|
52
|
+
# Returns the name of the weekday
|
53
|
+
# (Sunday, Monday, etc.)
|
54
|
+
def day_name; Date::DAYNAMES[wday]; end
|
55
|
+
|
56
|
+
# Returns the abbreviated name of the weekday
|
57
|
+
# (Sun, Mon, etc.)
|
58
|
+
def day_abbr; Date::ABBR_DAYNAMES[wday]; end
|
59
|
+
|
60
|
+
alias :nmonth :month_name
|
61
|
+
alias :amonth :month_abbr
|
62
|
+
|
63
|
+
alias :nday :day_name
|
64
|
+
alias :aday :day_abbr
|
46
65
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
66
|
+
# Returns the month as a zero-padded string
|
67
|
+
# (i.e. June => 06)
|
68
|
+
def zmonth; '%02d' % month; end
|
69
|
+
|
70
|
+
# Returns the day as a zero-padded string
|
71
|
+
# (5 => 05)
|
72
|
+
def zday; '%02d' % mday; end
|
73
|
+
|
74
|
+
# Returns the hour as a zero-padded string
|
75
|
+
# (3 => 03)
|
76
|
+
def zhour; '%02d' % hour; end
|
77
|
+
|
78
|
+
# Returns the hour in 12-hour format
|
79
|
+
# (5:00pm => 5)
|
80
|
+
def hour12; hour % 12 == 0 ? 12 : hour % 12; end
|
81
|
+
|
82
|
+
# Returns the hour in 12-hour format as a zero-padded string
|
83
|
+
# (5:00pm => 05)
|
84
|
+
def zhour12; '%02d' % hour12; end
|
85
|
+
|
86
|
+
# Returns the minute as a zero-padded string
|
87
|
+
# Note: If you need just the minute, use min
|
88
|
+
def minute; '%02d' % min; end
|
89
|
+
|
90
|
+
# Returns the second as a zero-padded string
|
91
|
+
# Note: If you need just the second, use sec
|
92
|
+
def second; '%02d' % sec; end
|
93
|
+
|
94
|
+
# Returns the meridian
|
95
|
+
# (AM/PM)
|
96
|
+
def meridian; hour >= 12 ? 'PM' : 'AM'; end
|
97
|
+
|
98
|
+
# Returns the meridian in short form (first letter)
|
99
|
+
# (A/P)
|
100
|
+
def smeridian; meridian[0].chr; end
|
101
|
+
|
102
|
+
# Returns the meridian in lowercase
|
103
|
+
# (am/pm)
|
104
|
+
def lmeridian; meridian.downcase; end
|
105
|
+
|
106
|
+
# Returns the meridian in lowercase, short form (first letter)
|
107
|
+
# (a/p)
|
108
|
+
def lsmeridian; smeridian.downcase; end
|
109
|
+
|
110
|
+
# Returns the ordinal of the day
|
111
|
+
# (1 => st, 2 => nd, 3 => rd, 4.. => th)
|
112
|
+
def ordinal; EZTime.ordinal(mday, false); end
|
113
|
+
alias :ord :ordinal
|
114
|
+
end
|
95
115
|
|
96
116
|
# Formats the date/time according to the formatting string format_str
|
97
117
|
# The formatting string consists of any of the methods defined in EZTime
|
@@ -107,7 +127,7 @@ module EZTime
|
|
107
127
|
#
|
108
128
|
# Output: 20 December 2003 at 5:30:00 pm
|
109
129
|
def eztime(format_str)
|
110
|
-
|
130
|
+
EZTime::FormattedTime.new(self).format(format_str)
|
111
131
|
end
|
112
132
|
end
|
113
133
|
|
@@ -121,4 +141,4 @@ class Date; include EZTime; end
|
|
121
141
|
# include EZTime
|
122
142
|
# def ordinal; mday.ordinal(false); end
|
123
143
|
# def self.ordinal; mday.ordinal(false); end
|
124
|
-
# end
|
144
|
+
# end
|
data/test/helper.rb
CHANGED
@@ -1,16 +1,17 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
1
|
+
# require 'rubygems'
|
2
|
+
# require 'bundler'
|
3
|
+
# begin
|
4
|
+
# Bundler.setup(:default, :development)
|
5
|
+
# rescue Bundler::BundlerError => e
|
6
|
+
# $stderr.puts e.message
|
7
|
+
# $stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
# exit e.status_code
|
9
|
+
# end
|
10
10
|
require 'test/unit'
|
11
11
|
|
12
12
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
13
13
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
14
|
+
# require File.dirname(__FILE__) . '/../lib/eztime.rb'
|
14
15
|
require 'eztime'
|
15
16
|
|
16
17
|
class Test::Unit::TestCase
|
data/test/test_eztime.rb
CHANGED
@@ -59,7 +59,10 @@ class EZTimeTest < Test::Unit::TestCase
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def test_everything
|
62
|
+
assert_equal '00', ('%02d' % 0)
|
63
|
+
|
62
64
|
d = DateTime.civil(2000, 1, 1, 0, 0, 0)
|
65
|
+
|
63
66
|
0.upto(1440/5) do |min|
|
64
67
|
d += 300 if min > 0
|
65
68
|
assert_equal d.strftime('%I:%M'), d.eztime(':hour12::minute')
|
@@ -93,7 +96,7 @@ class EZTimeTest < Test::Unit::TestCase
|
|
93
96
|
end
|
94
97
|
|
95
98
|
def test_ordinals
|
96
|
-
assert_equal 'st',
|
99
|
+
assert_equal 'st', EZTime.ordinal(1)
|
97
100
|
assert_equal 'January 1st', @ny.eztime(':month_name :day:ord')
|
98
101
|
|
99
102
|
ordinals = %w{
|
@@ -108,4 +111,4 @@ class EZTimeTest < Test::Unit::TestCase
|
|
108
111
|
assert_equal ordinals[mday], d.eztime(':ord'), "Failed on " + d.to_s
|
109
112
|
end
|
110
113
|
end
|
111
|
-
end
|
114
|
+
end
|
metadata
CHANGED
@@ -1,65 +1,23 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: eztime
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 0
|
10
|
-
version: 1.0.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Chris Scharf
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
default_executable:
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
22
|
-
prerelease: false
|
23
|
-
name: jeweler
|
24
|
-
type: :development
|
25
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ~>
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 63
|
31
|
-
segments:
|
32
|
-
- 1
|
33
|
-
- 8
|
34
|
-
- 4
|
35
|
-
version: 1.8.4
|
36
|
-
requirement: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
prerelease: false
|
39
|
-
name: rcov
|
40
|
-
type: :development
|
41
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
hash: 3
|
47
|
-
segments:
|
48
|
-
- 0
|
49
|
-
version: "0"
|
50
|
-
requirement: *id002
|
11
|
+
date: 2015-02-27 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
51
13
|
description: Easier date/time manipulation
|
52
14
|
email: scharfie@gmail.com
|
53
15
|
executables: []
|
54
|
-
|
55
16
|
extensions: []
|
56
|
-
|
57
|
-
extra_rdoc_files:
|
17
|
+
extra_rdoc_files:
|
58
18
|
- LICENSE.txt
|
59
19
|
- README.textile
|
60
|
-
files:
|
61
|
-
- Gemfile
|
62
|
-
- Gemfile.lock
|
20
|
+
files:
|
63
21
|
- LICENSE.txt
|
64
22
|
- README.textile
|
65
23
|
- Rakefile
|
@@ -70,39 +28,29 @@ files:
|
|
70
28
|
- lib/eztime.rb
|
71
29
|
- test/helper.rb
|
72
30
|
- test/test_eztime.rb
|
73
|
-
has_rdoc: true
|
74
31
|
homepage: http://github.com/scharfie/eztime
|
75
|
-
licenses:
|
32
|
+
licenses:
|
76
33
|
- MIT
|
34
|
+
metadata: {}
|
77
35
|
post_install_message:
|
78
36
|
rdoc_options: []
|
79
|
-
|
80
|
-
require_paths:
|
37
|
+
require_paths:
|
81
38
|
- lib
|
82
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
none: false
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
hash: 3
|
97
|
-
segments:
|
98
|
-
- 0
|
99
|
-
version: "0"
|
39
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
100
49
|
requirements: []
|
101
|
-
|
102
50
|
rubyforge_project:
|
103
|
-
rubygems_version:
|
51
|
+
rubygems_version: 2.2.2
|
104
52
|
signing_key:
|
105
|
-
specification_version:
|
53
|
+
specification_version: 4
|
106
54
|
summary: Easier date/time manipulation
|
107
55
|
test_files: []
|
108
|
-
|
56
|
+
has_rdoc:
|
data/Gemfile
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
source "http://rubygems.org"
|
2
|
-
# Add dependencies required to use your gem here.
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
5
|
-
|
6
|
-
# Add dependencies to develop your gem here.
|
7
|
-
# Include everything needed to run rake, tests, features, etc.
|
8
|
-
group :development do
|
9
|
-
gem "jeweler", "~> 1.8.4"
|
10
|
-
gem "rcov"
|
11
|
-
end
|
data/Gemfile.lock
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
git (1.2.5)
|
5
|
-
jeweler (1.8.4)
|
6
|
-
bundler (~> 1.0)
|
7
|
-
git (>= 1.2.5)
|
8
|
-
rake
|
9
|
-
rdoc
|
10
|
-
json (1.7.3)
|
11
|
-
rake (0.9.2.2)
|
12
|
-
rcov (1.0.0)
|
13
|
-
rdoc (3.12)
|
14
|
-
json (~> 1.4)
|
15
|
-
|
16
|
-
PLATFORMS
|
17
|
-
ruby
|
18
|
-
|
19
|
-
DEPENDENCIES
|
20
|
-
jeweler (~> 1.8.4)
|
21
|
-
rcov
|