time_rounder 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 83c7f67939513ab89221fcac1302d455f344d3b6
4
- data.tar.gz: 8747c4b4290d33daa70777fb9f1e1328e76275f1
3
+ metadata.gz: 3b08ad541c1027826b9b533cc5b2370ee5170dfc
4
+ data.tar.gz: b1b8801fa7e8e72d3e285fcc97a3ccdf42ca8ee5
5
5
  SHA512:
6
- metadata.gz: 676e82cb4529466f8b0e4ace3d9abb9a908bccf936a6fce9be8618096e70522b68aa20728dbe6532d3c82f3066ae0882b0f16df2dd7be7f1c0f8657f0a5571cb
7
- data.tar.gz: cc3d8f53304905fe27564f9adadd5061f978367343399dd8dfe512c8509270373c03a3bd34a5c13d8b99611bbeb916a5ed676efbbbe683c3e295e33c09590420
6
+ metadata.gz: 75ad18cac49aa4a1e89e357c2a6a40628a95cd406cbd8276ebc36b8020491d465318e5196b34eddaccc943473940fde8c5124eecc2a9461bffdf5b77a51cdd27
7
+ data.tar.gz: 0c8721ca830615c37748c8e96f5b03a84ba2966c4b695c4a6db3c2f34f1209230e40c14475cf53930a5cd0a9daa9f322ea9a5d2155924d9b483ee83f8fbef12e
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
  /doc/
11
+ *.gem
data/README.md CHANGED
@@ -20,12 +20,18 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- TimeRounder has simple methods to access internal classes that calculate the rounded time.
23
+ TimeRounder has simple methods to access internal classes that calculate the total hours to the nearest quarter hours in a given number of seconds.
24
24
 
25
25
  ```ruby
26
26
  TimeRounder.seconds_to_hours(seconds)
27
27
  ```
28
28
 
29
+ TimeRounder can also take a DateTime/Time object and round it to the nearest quarter hour
30
+
31
+ ```ruby
32
+ TimeRounder.rounded_time(seconds)
33
+ ```
34
+
29
35
  ## Development
30
36
 
31
37
  TimeRounder will continue to be developed adding features and functionality. Some of those features currently planned are:
@@ -0,0 +1,47 @@
1
+ ##
2
+ # Round a Time/DateTime object to Quarter Hours 0, 15, 30, 45
3
+
4
+ module TimeRounder
5
+ class RoundedTime
6
+
7
+ ##
8
+ # returns the DateTime/Time object on the correct quarter hour
9
+
10
+ def rounded_time
11
+ @@time += magic_number
12
+ @@time
13
+ end
14
+
15
+ private
16
+
17
+ ##
18
+ # initailize the object with a date/time object
19
+
20
+ def initialize(time)
21
+ @@time = time
22
+ end
23
+
24
+ ##
25
+ # The number of seconds to add to the time to get to the nearest quarter hour
26
+
27
+ def magic_number
28
+ minutes_hash[minutes] * 60
29
+ end
30
+
31
+ ##
32
+ # The minutes of the date/time object
33
+
34
+ def minutes
35
+ @@time.strftime('%M').to_i
36
+ end
37
+
38
+ ##
39
+ # hash of minutes and the number of minutes to add to get to the nearest quarter hour
40
+
41
+ def minutes_hash
42
+ {0 => 0, 1 => -1, 2 => -2, 3 => -3, 4 => -4, 5 => -5, 6 => -6, 7 => -7, 8 => 7, 9 => 6, 10 => 5, 11 => 4, 12 => 3, 13 => 2, 14 => 1, 15 => 0, 16 => -1, 17 => -2, 18 => -3, 19 => -4, 20 => -5, 21 => -6, 22 => -7, 23 => 7, 24 => 6, 25 => 5, 26 => 4, 27 => 3, 28 => 2, 29 => 1, 30 => 0, 31 => -1, 32 => -2, 33 => -3, 34 => -4, 35 => -5, 36 => -6, 37 => -7, 38 => 7, 39 => 6, 40 => 5, 41 => 4, 42 => 3, 43 => 2, 44 => 1, 45 => 0, 46 => -1, 47 => -2, 48 => -3, 49 => -4, 50 => -5, 51 => -6, 52 => -7, 53 => 7, 54 => 6, 55 => 5, 56 => 4, 57 => 3, 58 => 2, 59 => 1}
43
+ end
44
+
45
+
46
+ end
47
+ end
@@ -1,3 +1,3 @@
1
1
  module TimeRounder
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/time_rounder.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "time_rounder/version"
2
2
  require "time_rounder/rounded_time_from_seconds"
3
+ require "time_rounder/rounded_time"
3
4
 
4
5
  ##
5
6
  # TimeRounder is a library to round time.
@@ -12,5 +13,12 @@ module TimeRounder
12
13
  def self.seconds_to_hours(seconds)
13
14
  TimeRounder::RoundedTimeFromSeconds.new(seconds).rounded_time
14
15
  end
15
-
16
+
17
+ ##
18
+ # Takes a DateTime/Time object and returns the time to the nearest quarter hour
19
+
20
+ def self.rounded_time(time)
21
+ TimeRounder::RoundedTime.new(time).rounded_time
22
+ end
23
+
16
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: time_rounder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-01 00:00:00.000000000 Z
11
+ date: 2015-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -69,6 +69,7 @@ files:
69
69
  - bin/console
70
70
  - bin/setup
71
71
  - lib/time_rounder.rb
72
+ - lib/time_rounder/rounded_time.rb
72
73
  - lib/time_rounder/rounded_time_from_seconds.rb
73
74
  - lib/time_rounder/version.rb
74
75
  - time_rounder.gemspec