timefly 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/timefly.rb +83 -0
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a12788c0f91b1428dd6a96f6a87b912d046470f5
4
- data.tar.gz: 6376d09a077d3cb880fb5d7f0fbe6d8d70224291
3
+ metadata.gz: 8fc9e01f42843c1b0b98bb6dca9f7ffbc63c3398
4
+ data.tar.gz: 3ef046d0ca42a3377bd0b04762a3f7e06f0f442e
5
5
  SHA512:
6
- metadata.gz: 928fb0377cbcc991cd69f032effbd21970f53256e6371bf9b1d95941a0e23443bb504df22a962952d20344e995d7326c8cb28f61d50981c05a7e24579172002c
7
- data.tar.gz: 92b1b9d5ddc08c9b5e1663915588100687792b9e016c7e38ab3e29931263069140851c01bc61b114b407964266f8898b9c00b66f82e5a9904a62a6d80b1a8f32
6
+ metadata.gz: 1d4180a780c3e7c2ff342350de56a3e9aa4a7c6b851fb13cceb2410cbd9f0ec3288712d4e69be783aa325f6cb3a2c1a50463633887abb4dda7be2663b86838e5
7
+ data.tar.gz: 20d59e84b78b2244170fab019ede757f1d8b20349a0cfc0b3ee3e187c32d8240b2f43387214ff20e7fcfee18503cba502a6b5c4c442dcf2c1cb0d78c4a6fbc71
data/lib/timefly.rb CHANGED
@@ -34,6 +34,27 @@ class Timefly
34
34
  end
35
35
  end
36
36
 
37
+ # returns the time elapsed in a readable format
38
+ #
39
+ # Example:
40
+ # >> Timefly.new(origin_time).time_elapsed
41
+ # => '4 hours ago'
42
+ def elapsed_time
43
+ if time_elapsed_in_seconds?
44
+ elapsed_time_in_seconds
45
+ elsif time_elapsed_in_minutes?
46
+ elapsed_time_in_minutes
47
+ elsif time_elapsed_in_hours?
48
+ elapsed_time_in_hours
49
+ elsif time_elapsed_in_days?
50
+ elapsed_time_in_days
51
+ elsif time_elapsed_in_months?
52
+ elapsed_time_in_months
53
+ else
54
+ elapsed_time_in_years
55
+ end
56
+ end
57
+
37
58
  private
38
59
 
39
60
  # This method tries to convert the origin_time to Time
@@ -91,4 +112,66 @@ class Timefly
91
112
  now_years - origin_time_years
92
113
  end
93
114
  end
115
+
116
+ # START time_elapsed helper methods --------------------------------
117
+
118
+ def time_diff_in_secs
119
+ @time_diff_in_secs ||= (Time.now - origin_time).to_i.abs
120
+ end
121
+
122
+ def time_elapsed_in_seconds?
123
+ time_diff_in_secs < 60
124
+ end
125
+
126
+ def time_elapsed_in_minutes?
127
+ (time_diff_in_secs / 60) < 60
128
+ end
129
+
130
+ def time_elapsed_in_hours?
131
+ (time_diff_in_secs / (60 * 60)) < 24
132
+ end
133
+
134
+ def time_elapsed_in_days?
135
+ (time_diff_in_secs / (60 * 60 * 24)) < 30
136
+ end
137
+
138
+ def time_elapsed_in_months?
139
+ (time_diff_in_secs / (60 * 60 * 24 * 30)) < 12
140
+ end
141
+
142
+ def elapsed_time_in_seconds
143
+ 'a few seconds ago'
144
+ end
145
+
146
+ def elapsed_time_in_minutes
147
+ time_diff = time_diff_in_secs / 60
148
+ elapsed_time_in_unit(time_diff, 'minute')
149
+ end
150
+
151
+ def elapsed_time_in_hours
152
+ time_diff = time_diff_in_secs / (60 * 60)
153
+ elapsed_time_in_unit(time_diff, 'hour')
154
+ end
155
+
156
+ def elapsed_time_in_days
157
+ time_diff = time_diff_in_secs / (60 * 60 * 24)
158
+ elapsed_time_in_unit(time_diff, 'day')
159
+ end
160
+
161
+ def elapsed_time_in_months
162
+ time_diff = time_diff_in_secs / (60 * 60 * 24 * 30)
163
+ elapsed_time_in_unit(time_diff, 'month')
164
+ end
165
+
166
+ def elapsed_time_in_years
167
+ time_diff = time_diff_in_secs / (60 * 60 * 24 * 30 * 12)
168
+ elapsed_time_in_unit(time_diff, 'year')
169
+ end
170
+
171
+ def elapsed_time_in_unit(time_diff, unit)
172
+ unit += 's' if time_diff > 1
173
+ "#{time_diff} #{unit} ago"
174
+ end
175
+
176
+ # END time_elapsed helper methods --------------------------------
94
177
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timefly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gaurav Singha Roy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-18 00:00:00.000000000 Z
11
+ date: 2015-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec