humantime 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
-