sixarm_ruby_date_age 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.
data/.gemtest ADDED
File without changes
data/INSTALL.txt ADDED
@@ -0,0 +1,32 @@
1
+
2
+ = SixArm.com Ruby Gem Install
3
+
4
+
5
+ First-time users: add our gem certificate and source.
6
+ When you do this once, it works for all our gems.
7
+
8
+ sudo wget http://sixarm.com/sixarm.pem
9
+ sudo gem cert --add sixarm.pem
10
+ sudo gem sources --add http://sixarm.com
11
+
12
+ Install the gem with advanced options.
13
+
14
+ sudo gem install sixarm_ruby_date_age --test --trust-policy HighSecurity
15
+
16
+
17
+ == Notes
18
+
19
+ Do you have any questions, comments, suggestions, or feedback?
20
+ Let us know, we're happy to help. Our email is sixarm@sixarm.com
21
+
22
+ Do you want to create your own high security gems?
23
+ Learn how at http://www.rubygems.org/read/chapter/21
24
+
25
+ To see your current gem certificate list:
26
+
27
+ sudo gem cert --list
28
+
29
+ Our cert looks like this:
30
+
31
+ /C=US/ST=California/L=San Francisco/O=SixArm/CN=sixarm.com
32
+
data/LICENSE.txt ADDED
@@ -0,0 +1,12 @@
1
+ LICENSE
2
+
3
+ You may choose any of these licenses:
4
+
5
+ - CreativeCommons License, Non-commercial Share Alike
6
+ - LGPL, GNU Lesser General Public License
7
+ - MIT License
8
+ - Ruby License
9
+
10
+ THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
11
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
12
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
data/README.rdoc ADDED
@@ -0,0 +1,24 @@
1
+
2
+
3
+ = SixArm.com » Ruby » Date #age_in_years and #age_in_days methods
4
+
5
+ Author:: Joel Parker Henderson, joelparkerhenderson@gmail.com
6
+ Copyright:: Copyright (c) 2006-2011 Joel Parker Henderson
7
+ License:: See LICENSE.txt file
8
+
9
+ Date extensions to calculate an age in days and years.
10
+
11
+ @example
12
+
13
+ date=Date.new(1980,10,31)
14
+ date.age_in_days => 11124
15
+ date.age_in_years => 31
16
+
17
+ @example of custom dates
18
+
19
+ date=Date.new(1980,10,31)
20
+ new_years_eve=(2011,12,31)
21
+ date.age_in_days_on(new_years_eve) => 11383
22
+ date.age_in_years_on(new_years_eve) => 31
23
+
24
+
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+
5
+ Rake::TestTask.new(:test) do |t|
6
+ t.libs << 'lib' << 'test'
7
+ t.pattern = 'test/*.rb'
8
+ end
@@ -0,0 +1,93 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ =begin rdoc
4
+
5
+ = SixArm.com » Ruby » Date #age_in_years and #age_in_days methods
6
+
7
+ Author:: Joel Parker Henderson, joelparkerhenderson@gmail.com
8
+ Copyright:: Copyright (c) 2006-2011 Joel Parker Henderson
9
+ License:: See LICENSE.txt file
10
+
11
+ Date extensions to calculate an age in days and years.
12
+
13
+ @example
14
+
15
+ date=Date.new(1980,10,31)
16
+ date.age_in_days => 11124
17
+ date.age_in_years => 31
18
+
19
+ @example of custom dates
20
+
21
+ date=Date.new(1980,10,31)
22
+ new_years_eve=(2011,12,31)
23
+ date.age_in_days_on(new_years_eve) => 11383
24
+ date.age_in_years_on(new_years_eve) => 31
25
+
26
+
27
+ =end
28
+
29
+
30
+ class Date
31
+
32
+
33
+ # @return [Integer] the age in days for a given date.
34
+ #
35
+ # @example
36
+ #
37
+ # date=Date.new(1980,10,31)
38
+ # date.age_in_days => 11124
39
+ #
40
+ # @example of custom dates
41
+ #
42
+ # date=Date.new(1980,10,31)
43
+ #
44
+ # valentines = Date.new(2011,02,14)
45
+ # date.age_in_days(valentines) => 11063
46
+ #
47
+ # halloween = Date.new(2011,10,31)
48
+ # date.age_in_days(halloween) => 11322
49
+ #
50
+ # new_years_eve = Date.new(2011,12,31)
51
+ # date.age_in_days(new_years_eve) => 11383
52
+
53
+ def age_in_days(compare_date=Date.today)
54
+ (compare_date.is_a? Date) or raise ArgumentError, "compare_date must be a date"
55
+ (compare_date-self).to_i
56
+ end
57
+
58
+ alias :age_in_days_on :age_in_days
59
+
60
+
61
+ # @return [Integer] the age in years for a given date.
62
+ #
63
+ # @example
64
+ #
65
+ # date=Date.new(1980,10,31)
66
+ # date.age_in_years => 30
67
+ #
68
+ # @example of custom dates
69
+ #
70
+ # date=Date.new(1980,10,31)
71
+ #
72
+ # valentines = Date.new(2011,02,14)
73
+ # date.age_in_years_on(valentines) => 30 # before the birthday
74
+ #
75
+ # halloween = Date.new(2011,10,31)
76
+ # date.age_in_years_on(halloween) => 31 # on the birthday is one year older
77
+ #
78
+ # new_years_eve = Date.new(2011,12,31)
79
+ # date.age_years(new_years_eve) => 31 # after the birthday is one year older
80
+
81
+ def age_in_years(compare_date=Date.today)
82
+ (compare_date.is_a? Date) or raise ArgumentError, "compare_date must be a date"
83
+ age=compare_date.year-year
84
+ compare_month = compare_date.month
85
+ age-=1 if compare_month < month or (compare_month==month and compare_date.day < day)
86
+ age
87
+ end
88
+
89
+ alias :age_in_years_on :age_in_years
90
+
91
+ end
92
+
93
+
@@ -0,0 +1,43 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'simplecov'
3
+ SimpleCov.start
4
+ require 'test/unit'
5
+ require 'sixarm_ruby_date_age'
6
+
7
+ class DateAgeTest < Test::Unit::TestCase
8
+
9
+ # for test_age_years and test_age_days
10
+ BIRTHDATE = Date.new(1980,10,31)
11
+ VALENTINES = Date.new(2011,02,14)
12
+ HALLOWEEN = Date.new(2011,10,31)
13
+ NEW_YEARS_EVE = Date.new(2011,12,31)
14
+
15
+ def test_age_in_days
16
+ assert_equal(11063,BIRTHDATE.age_in_days(VALENTINES), '< birthday')
17
+ assert_equal(11322,BIRTHDATE.age_in_days(HALLOWEEN), '= birthday')
18
+ assert_equal(11383,BIRTHDATE.age_in_days(NEW_YEARS_EVE), '> birthday')
19
+ end
20
+
21
+ def test_age_in_days_with_non_date
22
+ assert_raise(ArgumentError){ BIRTHDATE.age_in_days('') }
23
+ end
24
+
25
+ def test_age_in_days_alias
26
+ assert_equal(BIRTHDATE.age_in_days(VALENTINES), BIRTHDATE.age_in_days_on(VALENTINES))
27
+ end
28
+
29
+ def test_age_in_years
30
+ assert_equal(30,BIRTHDATE.age_in_years(VALENTINES), '< birthday')
31
+ assert_equal(31,BIRTHDATE.age_in_years(HALLOWEEN), '= birthday')
32
+ assert_equal(31,BIRTHDATE.age_in_years(NEW_YEARS_EVE), '> birthday')
33
+ end
34
+
35
+ def test_age_in_years_with_non_date
36
+ assert_raise(ArgumentError){ BIRTHDATE.age_in_years('') }
37
+ end
38
+
39
+ def test_age_in_years_alias
40
+ assert_equal(BIRTHDATE.age_in_years(VALENTINES), BIRTHDATE.age_in_years_on(VALENTINES))
41
+ end
42
+
43
+ end
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,82 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sixarm_ruby_date_age
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 1.1.0
6
+ platform: ruby
7
+ authors:
8
+ - SixArm
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain:
12
+ - |
13
+ -----BEGIN CERTIFICATE-----
14
+ MIIDBDCCAm2gAwIBAgIJAKPwEETU5bHoMA0GCSqGSIb3DQEBBQUAMGAxCzAJBgNV
15
+ BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
16
+ c2NvMQ8wDQYDVQQKEwZTaXhBcm0xEzARBgNVBAMTCnNpeGFybS5jb20wHhcNMTAx
17
+ MjEzMjMyNzEzWhcNMTMwOTA4MjMyNzEzWjBgMQswCQYDVQQGEwJVUzETMBEGA1UE
18
+ CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEPMA0GA1UEChMG
19
+ U2l4QXJtMRMwEQYDVQQDEwpzaXhhcm0uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
20
+ ADCBiQKBgQC94mD9JDwBsunsOI0VR3CXXbOWg9cWaWciwFyJNFiM7A9I8KPLfXUw
21
+ QC4czUe5ZuG4WHvinrWhkrCK+1dWBqoEClxdF/FoKO5a+tonGCjjmfy81JmFjjyx
22
+ eTsjsHyvw+Qik9kpf9aj6+pnkNrVswgNHVea2o9yabbEiS6VSeJWoQIDAQABo4HF
23
+ MIHCMB0GA1UdDgQWBBQzPJtqmSgc53eDN7aSzDQwr9TALDCBkgYDVR0jBIGKMIGH
24
+ gBQzPJtqmSgc53eDN7aSzDQwr9TALKFkpGIwYDELMAkGA1UEBhMCVVMxEzARBgNV
25
+ BAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xDzANBgNVBAoT
26
+ BlNpeEFybTETMBEGA1UEAxMKc2l4YXJtLmNvbYIJAKPwEETU5bHoMAwGA1UdEwQF
27
+ MAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAooEexP/oPam1TP71SyuhxMb+uTrZbSQe
28
+ jVB+ExRwWadGwaNPUA56d39qwavwP+iu+3JpeonNMVvbWXF5naCX/dNFIeREHzER
29
+ ZDRQYMqru9TEMna6HD9zpcstF7vwThGovlOQ+3Y6plQ4nMzipXcZ9THqs65PIL0q
30
+ eabwpCbAopo=
31
+ -----END CERTIFICATE-----
32
+
33
+ date: 2011-04-16 00:00:00 -07:00
34
+ default_executable:
35
+ dependencies: []
36
+
37
+ description:
38
+ email: sixarm@sixarm.com
39
+ executables: []
40
+
41
+ extensions: []
42
+
43
+ extra_rdoc_files: []
44
+
45
+ files:
46
+ - .gemtest
47
+ - Rakefile
48
+ - README.rdoc
49
+ - INSTALL.txt
50
+ - LICENSE.txt
51
+ - lib/sixarm_ruby_date_age.rb
52
+ - test/sixarm_ruby_date_age_test.rb
53
+ has_rdoc: true
54
+ homepage: http://sixarm.com/
55
+ licenses: []
56
+
57
+ post_install_message:
58
+ rdoc_options: []
59
+
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: "0"
74
+ requirements: []
75
+
76
+ rubyforge_project:
77
+ rubygems_version: 1.6.2
78
+ signing_key:
79
+ specification_version: 3
80
+ summary: "SixArm.com \xC2\xBB Ruby \xC2\xBB Date #age_in_days and #age_in_years methods"
81
+ test_files:
82
+ - test/sixarm_ruby_date_age_test.rb
metadata.gz.sig ADDED
Binary file