timefly 0.0.1 → 0.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.
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