humantime 0.1.0 → 0.2.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.
Files changed (3) hide show
  1. data/README.md +18 -1
  2. data/lib/humantime.rb +19 -2
  3. metadata +45 -70
data/README.md CHANGED
@@ -19,4 +19,21 @@ Output a number of seconds in human readable form:
19
19
  >> HumanTime.output 1209600
20
20
  => "14 days"
21
21
  >> HumanTime.output 5452302
22
- => "2 months"
22
+ => "2 months"
23
+
24
+ Get the difference between two integer values of seconds:
25
+
26
+ >> HumanTime.between 3600, 60
27
+ => "59 minutes"
28
+
29
+ Get the difference between two Time or DateTime values:
30
+
31
+ >> HumanTime.between Time.now, Time.now
32
+ => "0 seconds"
33
+
34
+ >> t1 = Time.now
35
+ => 2012-04-03 11:35:22 +0100
36
+ >> t2 = Time.now + 3600
37
+ => 2012-04-03 12:35:26 +0100
38
+ >> HumanTime.between t1, t2
39
+ => "1 hour"
data/lib/humantime.rb CHANGED
@@ -10,8 +10,10 @@ class HumanTime
10
10
  # Parse an integer and return the string representation of a time
11
11
  def self.output int
12
12
  str = []
13
- display = ['years', 'months', 'days', 'hours', 'minutes', 'seconds']
14
-
13
+ display = ['years', 'months', 'days', 'hours', 'minutes', 'seconds']
14
+
15
+ return "0 seconds" if int == 0
16
+
15
17
  # Years
16
18
  if int > ( YEAR - 1 ) && display.include?('years')
17
19
  years = int / YEAR
@@ -97,6 +99,21 @@ class HumanTime
97
99
 
98
100
  str.join(' ')
99
101
  end
102
+
103
+ # Output the difference betwen two integer / DateTime / Time values
104
+ def self.between start_time, end_time
105
+ et = end_time.to_i
106
+ st = start_time.to_i
107
+
108
+ if et > st
109
+ diff = et - st
110
+ elsif st > et
111
+ diff = st - et
112
+ else
113
+ diff = 0
114
+ end
115
+ self.output diff
116
+ end
100
117
 
101
118
  # From https://github.com/hpoydar/chronic_duration
102
119
  # For future parsing methods
metadata CHANGED
@@ -1,111 +1,86 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: humantime
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 0
10
- version: 0.1.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - James Inman
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-03-25 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-04-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: simplecov
16
+ requirement: &70136694404140 !ruby/object:Gem::Requirement
22
17
  none: false
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- hash: 3
27
- segments:
28
- - 0
29
- version: "0"
30
- name: rcov
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
31
22
  type: :development
32
23
  prerelease: false
33
- requirement: *id001
34
- - !ruby/object:Gem::Dependency
35
- version_requirements: &id002 !ruby/object:Gem::Requirement
36
- none: false
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- hash: 3
41
- segments:
42
- - 0
43
- version: "0"
24
+ version_requirements: *70136694404140
25
+ - !ruby/object:Gem::Dependency
44
26
  name: bundler
27
+ requirement: &70136694416140 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
45
33
  type: :development
46
34
  prerelease: false
47
- requirement: *id002
48
- - !ruby/object:Gem::Dependency
49
- version_requirements: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70136694416140
36
+ - !ruby/object:Gem::Dependency
37
+ name: jeweler
38
+ requirement: &70136694414780 !ruby/object:Gem::Requirement
50
39
  none: false
51
- requirements:
40
+ requirements:
52
41
  - - ~>
53
- - !ruby/object:Gem::Version
54
- hash: 49
55
- segments:
56
- - 1
57
- - 8
58
- - 3
42
+ - !ruby/object:Gem::Version
59
43
  version: 1.8.3
60
- name: jeweler
61
44
  type: :development
62
45
  prerelease: false
63
- requirement: *id003
46
+ version_requirements: *70136694414780
64
47
  description: Outputs human readable times
65
48
  email: james@jamesinman.co.uk
66
49
  executables: []
67
-
68
50
  extensions: []
69
-
70
- extra_rdoc_files:
51
+ extra_rdoc_files:
71
52
  - LICENSE
72
53
  - README.md
73
- files:
54
+ files:
74
55
  - LICENSE
75
56
  - README.md
76
57
  - lib/humantime.rb
77
58
  homepage: http://github.com/jfi/humantime
78
- licenses:
59
+ licenses:
79
60
  - ISC
80
61
  post_install_message:
81
62
  rdoc_options: []
82
-
83
- require_paths:
63
+ require_paths:
84
64
  - lib
85
- required_ruby_version: !ruby/object:Gem::Requirement
65
+ required_ruby_version: !ruby/object:Gem::Requirement
86
66
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- hash: 3
91
- segments:
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ segments:
92
72
  - 0
93
- version: "0"
94
- required_rubygems_version: !ruby/object:Gem::Requirement
73
+ hash: -3064774030937665227
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
75
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
101
- - 0
102
- version: "0"
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
103
80
  requirements: []
104
-
105
81
  rubyforge_project:
106
- rubygems_version: 1.8.17
82
+ rubygems_version: 1.8.15
107
83
  signing_key:
108
84
  specification_version: 3
109
85
  summary: Outputs human readable times
110
86
  test_files: []
111
-