time_rounder 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -0
- data/.rubocop.yml +7 -0
- data/.travis.yml +1 -2
- data/CODE_OF_CONDUCT.md +0 -0
- data/Gemfile +0 -0
- data/LICENSE.txt +0 -0
- data/README.md +2 -0
- data/Rakefile +5 -5
- data/bench/difference_between_two_rounded_times/difference_between_two_rounded_times_benchmark.rb +13 -0
- data/bench/difference_between_two_rounded_times/difference_between_two_rounded_times_stackprof.rb +12 -0
- data/bench/difference_between_two_times/difference_between_two_times_benchmark.rb +13 -0
- data/bench/difference_between_two_times/difference_between_two_times_stackprof.rb +12 -0
- data/bench/rounded_time/rounded_time_benchmark.rb +10 -0
- data/bench/rounded_time/rounded_time_stackprof.rb +11 -0
- data/bench/seconds_to_hours/seconds_to_hours_benchmark.rb +8 -0
- data/bench/seconds_to_hours/seconds_to_hours_stackprof.rb +9 -0
- data/bin/console +0 -0
- data/bin/setup +0 -0
- data/lib/time_rounder.rb +13 -15
- data/lib/time_rounder/end_before_start.rb +6 -7
- data/lib/time_rounder/load_schedule.rb +18 -19
- data/lib/time_rounder/rounded_time.rb +16 -17
- data/lib/time_rounder/rounded_time_from_seconds.rb +16 -17
- data/lib/time_rounder/schedule/fifteen_minute.rb +36 -26
- data/lib/time_rounder/schedule_not_found.rb +6 -7
- data/lib/time_rounder/version.rb +1 -1
- data/time_rounder.gemspec +14 -11
- metadata +50 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07b557c19d7fa6bcaf702b95e6c2534cf4ec6009
|
4
|
+
data.tar.gz: 15c043f20f8a1c392f3cdae1542a66c2dcd27eeb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc7b41d39ea0bb696e677a988e82d73ddc1b8a412253367cee463e3008949a4759358de88d9aa4f1d62c0c39abc0e48e0152e4145e6720ca297295ade1fca3e7
|
7
|
+
data.tar.gz: 73bd78dd70414f551f642cf83f9f2ac33893b299887aef7c6af7b590954bb0026b1c20c4e47c5ecb4d8f777c1a2f2d96139191aeebe2f6e1e4c786fdb0d354b6
|
data/.gitignore
CHANGED
File without changes
|
data/.rubocop.yml
ADDED
data/.travis.yml
CHANGED
data/CODE_OF_CONDUCT.md
CHANGED
File without changes
|
data/Gemfile
CHANGED
File without changes
|
data/LICENSE.txt
CHANGED
File without changes
|
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
TimeRounder is a gem born to solve a problem, which is to round time, without all the complex math. TimeRounder defeats all the complex math used to round time, by using logic.
|
4
4
|
|
5
|
+
__Note: Support for Ruby 1.9.3 & 2.0.x has been dropped.__
|
6
|
+
|
5
7
|
## Installation
|
6
8
|
|
7
9
|
Add this line to your application's Gemfile:
|
data/Rakefile
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rake/testtask'
|
3
3
|
|
4
4
|
Rake::TestTask.new(:test) do |t|
|
5
|
-
t.libs <<
|
6
|
-
t.libs <<
|
5
|
+
t.libs << 'test'
|
6
|
+
t.libs << 'lib'
|
7
7
|
t.test_files = FileList['test/**/*_test.rb']
|
8
8
|
end
|
9
9
|
|
10
|
-
task :
|
10
|
+
task default: :test
|
data/bench/difference_between_two_rounded_times/difference_between_two_rounded_times_benchmark.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
|
2
|
+
require 'time_rounder'
|
3
|
+
require 'benchmark/ips'
|
4
|
+
|
5
|
+
start_time = Time.now
|
6
|
+
end_time = Time.now + 892.minutes
|
7
|
+
|
8
|
+
Benchmark.ips do |x|
|
9
|
+
x.iterations = 10
|
10
|
+
x.report('difference_between_rounded_times') do
|
11
|
+
TimeRounder.difference_between_rounded_times(start_time, end_time)
|
12
|
+
end
|
13
|
+
end
|
data/bench/difference_between_two_rounded_times/difference_between_two_rounded_times_stackprof.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
|
2
|
+
require 'time_rounder'
|
3
|
+
require 'stackprof'
|
4
|
+
|
5
|
+
start_time = Time.now
|
6
|
+
end_time = Time.now + (892 * 60)
|
7
|
+
|
8
|
+
StackProf.run(mode: :wall, out: File.expand_path('../../../tmp/difference_between_rounded_times.dump', __FILE__)) do
|
9
|
+
1000.times do
|
10
|
+
TimeRounder.difference_between_rounded_times(start_time, end_time)
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
|
2
|
+
require 'time_rounder'
|
3
|
+
require 'benchmark/ips'
|
4
|
+
|
5
|
+
start_time = Time.now
|
6
|
+
end_time = Time.now + (892 * 60)
|
7
|
+
|
8
|
+
Benchmark.ips do |x|
|
9
|
+
x.iterations = 10
|
10
|
+
x.report('difference_between_two_times') do
|
11
|
+
TimeRounder.difference_between_times(start_time, end_time)
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
|
2
|
+
require 'time_rounder'
|
3
|
+
require 'stackprof'
|
4
|
+
|
5
|
+
start_time = Time.now
|
6
|
+
end_time = Time.now + (892 * 60)
|
7
|
+
|
8
|
+
StackProf.run(mode: :wall, out: File.expand_path('../../../tmp/difference_between_two_times.dump', __FILE__)) do
|
9
|
+
1000.times do
|
10
|
+
TimeRounder.difference_between_times(start_time, end_time)
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
|
2
|
+
require 'time_rounder'
|
3
|
+
require 'stackprof'
|
4
|
+
|
5
|
+
time = Time.now
|
6
|
+
|
7
|
+
StackProf.run(mode: :wall, out: File.expand_path('../../../tmp/rounded_time.dump', __FILE__)) do
|
8
|
+
1000.times do
|
9
|
+
TimeRounder.rounded_time(time)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__)
|
2
|
+
require 'time_rounder'
|
3
|
+
require 'stackprof'
|
4
|
+
|
5
|
+
StackProf.run(mode: :wall, out: File.expand_path('../../../tmp/seconds_to_hours.dump', __FILE__)) do
|
6
|
+
1000.times do
|
7
|
+
TimeRounder.seconds_to_hours(3600)
|
8
|
+
end
|
9
|
+
end
|
data/bin/console
CHANGED
File without changes
|
data/bin/setup
CHANGED
File without changes
|
data/lib/time_rounder.rb
CHANGED
@@ -1,31 +1,29 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
1
|
+
require 'time_rounder/version'
|
2
|
+
require 'time_rounder/rounded_time_from_seconds'
|
3
|
+
require 'time_rounder/rounded_time'
|
4
|
+
require 'time_rounder/schedule_not_found'
|
5
|
+
require 'time_rounder/end_before_start'
|
6
6
|
|
7
7
|
##
|
8
8
|
# TimeRounder is a library to round time.
|
9
|
-
|
10
9
|
module TimeRounder
|
11
|
-
|
12
10
|
##
|
13
11
|
# Takes number of seconds and returns hours and partial hours in decimal form.
|
14
|
-
|
15
|
-
|
16
|
-
TimeRounder::RoundedTimeFromSeconds.new(seconds).rounded_time
|
12
|
+
def self.seconds_to_hours(seconds, schedule = 15)
|
13
|
+
TimeRounder::RoundedTimeFromSeconds.new(seconds, schedule).rounded_time
|
17
14
|
end
|
18
15
|
|
19
16
|
##
|
20
|
-
# Takes a DateTime/Time object and returns the time to the nearest quarter
|
17
|
+
# Takes a DateTime/Time object and returns the time to the nearest quarter
|
18
|
+
# hour
|
21
19
|
|
22
|
-
def self.rounded_time(time, schedule=15)
|
23
|
-
TimeRounder::RoundedTime.new(time).rounded_time
|
20
|
+
def self.rounded_time(time, schedule = 15)
|
21
|
+
TimeRounder::RoundedTime.new(time, schedule).rounded_time
|
24
22
|
end
|
25
23
|
|
26
24
|
##
|
27
25
|
# Calculates the difference between 2 rounded times
|
28
|
-
def self.difference_between_rounded_times(start_time, end_time, schedule=15)
|
26
|
+
def self.difference_between_rounded_times(start_time, end_time, schedule = 15)
|
29
27
|
s = TimeRounder::RoundedTime.new(start_time, schedule).rounded_time
|
30
28
|
e = TimeRounder::RoundedTime.new(end_time, schedule).rounded_time
|
31
29
|
seconds = (e - s).to_i
|
@@ -34,7 +32,7 @@ module TimeRounder
|
|
34
32
|
|
35
33
|
##
|
36
34
|
# Calculates the difference between 2 standard times
|
37
|
-
def self.difference_between_times(start_time, end_time, schedule=15)
|
35
|
+
def self.difference_between_times(start_time, end_time, schedule = 15)
|
38
36
|
seconds = (end_time - start_time).to_i
|
39
37
|
TimeRounder::RoundedTimeFromSeconds.new(seconds, schedule).rounded_time
|
40
38
|
end
|
@@ -1,7 +1,6 @@
|
|
1
|
-
module TimeRounder
|
2
|
-
##
|
3
|
-
# Error class when end is less than start
|
4
|
-
class EndBeforeStart
|
5
|
-
|
6
|
-
|
7
|
-
end
|
1
|
+
module TimeRounder
|
2
|
+
##
|
3
|
+
# Error class when end is less than start
|
4
|
+
class EndBeforeStart
|
5
|
+
end
|
6
|
+
end
|
@@ -1,19 +1,18 @@
|
|
1
|
-
require 'time_rounder/schedule/fifteen_minute'
|
2
|
-
|
3
|
-
module TimeRounder
|
4
|
-
##
|
5
|
-
# Handles loading of the proper schedule
|
6
|
-
module LoadSchedule
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
1
|
+
require 'time_rounder/schedule/fifteen_minute'
|
2
|
+
|
3
|
+
module TimeRounder
|
4
|
+
##
|
5
|
+
# Handles loading of the proper schedule
|
6
|
+
module LoadSchedule
|
7
|
+
##
|
8
|
+
# loads the proper schedule based what minute is passed
|
9
|
+
def get_schedule(minutes)
|
10
|
+
case minutes
|
11
|
+
when 15
|
12
|
+
self.class.send(:include, TimeRounder::Schedule::FifteenMinute)
|
13
|
+
else
|
14
|
+
raise TimeRounder::ScheduleNotFound
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,44 +1,43 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
##
|
4
|
-
# Round a Time/DateTime object to Quarter Hours 0, 15, 30, 45
|
1
|
+
require 'time_rounder/load_schedule'
|
5
2
|
|
6
3
|
module TimeRounder
|
4
|
+
##
|
5
|
+
# Round a Time/DateTime object to Quarter Hours 0, 15, 30, 45
|
7
6
|
class RoundedTime
|
7
|
+
attr_accessor :time
|
8
|
+
|
8
9
|
include TimeRounder::LoadSchedule
|
9
10
|
|
10
11
|
##
|
11
12
|
# returns the DateTime/Time object on the correct quarter hour
|
12
|
-
|
13
13
|
def rounded_time
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
number_to_add = magic_number
|
15
|
+
seconds_to_remove = (time.sec + (minutes * 60))
|
16
|
+
self.time -= seconds_to_remove
|
17
|
+
self.time += number_to_add
|
18
|
+
time
|
17
19
|
end
|
18
20
|
|
19
21
|
private
|
20
22
|
|
21
23
|
##
|
22
24
|
# initailize the object with a date/time object
|
23
|
-
|
24
|
-
|
25
|
-
@@time = time
|
25
|
+
def initialize(time, schedule = 15)
|
26
|
+
self.time = time
|
26
27
|
get_schedule(schedule)
|
27
28
|
end
|
28
29
|
|
29
30
|
##
|
30
|
-
# The number of seconds to add to the time to get to the nearest quarter
|
31
|
-
|
31
|
+
# The number of seconds to add to the time to get to the nearest quarter
|
32
|
+
# hour
|
32
33
|
def magic_number
|
33
|
-
minutes_to_closest_partial
|
34
|
+
minutes_to_closest_partial(minutes) * 60
|
34
35
|
end
|
35
36
|
|
36
37
|
##
|
37
38
|
# The minutes of the date/time object
|
38
|
-
|
39
39
|
def minutes
|
40
|
-
|
40
|
+
time.strftime('%M').to_i
|
41
41
|
end
|
42
|
-
|
43
42
|
end
|
44
43
|
end
|
@@ -1,12 +1,13 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
##
|
4
|
-
# Takes seconds and returns a decimal of hours and partial hours.
|
1
|
+
require 'time_rounder/load_schedule'
|
5
2
|
|
6
3
|
module TimeRounder
|
4
|
+
##
|
5
|
+
# Takes seconds and returns a decimal of hours and partial hours.
|
7
6
|
class RoundedTimeFromSeconds
|
8
7
|
include TimeRounder::LoadSchedule
|
9
8
|
|
9
|
+
attr_accessor :seconds
|
10
|
+
|
10
11
|
##
|
11
12
|
# Returns the total rounded hours in the number of seconds
|
12
13
|
def rounded_time
|
@@ -17,38 +18,36 @@ module TimeRounder
|
|
17
18
|
|
18
19
|
private
|
19
20
|
|
20
|
-
def initialize(seconds, schedule=15)
|
21
|
-
|
21
|
+
def initialize(seconds, schedule = 15)
|
22
|
+
self.seconds = seconds
|
22
23
|
get_schedule(schedule)
|
23
24
|
end
|
24
25
|
|
25
26
|
##
|
26
|
-
# Determines if an hour needs to be added to total if the partial is
|
27
|
-
|
27
|
+
# Determines if an hour needs to be added to total if the partial is
|
28
|
+
# rounding up at the end of an hour
|
28
29
|
def add_hour?
|
29
30
|
add_hours_array.include?(minutes)
|
30
31
|
end
|
31
32
|
|
32
33
|
##
|
33
34
|
# Takes the number of seconds and returns the number of hours as an integer.
|
34
|
-
|
35
35
|
def hours
|
36
|
-
|
36
|
+
seconds / 3600
|
37
37
|
end
|
38
38
|
|
39
39
|
##
|
40
|
-
# Takes the remainder of seconds after the hours removed and retrieve the
|
41
|
-
|
40
|
+
# Takes the remainder of seconds after the hours removed and retrieve the
|
41
|
+
# left over minutes.
|
42
42
|
def minutes
|
43
|
-
(
|
43
|
+
(seconds % 3600) / 60
|
44
44
|
end
|
45
45
|
|
46
46
|
##
|
47
|
-
# Takes the number of minutes in the total of seconds after hours are
|
48
|
-
|
47
|
+
# Takes the number of minutes in the total of seconds after hours are
|
48
|
+
# removed, to retrieve the decimal portion of the total.
|
49
49
|
def quarter_hours
|
50
|
-
partial_hours_from_minutes
|
50
|
+
partial_hours_from_minutes(minutes)
|
51
51
|
end
|
52
|
-
|
53
52
|
end
|
54
53
|
end
|
@@ -1,26 +1,36 @@
|
|
1
|
-
module TimeRounder
|
2
|
-
module Schedule
|
3
|
-
##
|
4
|
-
# Schedule to round on 00, 15, 30, 45
|
5
|
-
module FifteenMinute
|
6
|
-
|
7
|
-
|
8
|
-
#
|
9
|
-
def add_hours_array
|
10
|
-
[53, 54, 55, 56, 57, 58, 59]
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
|
26
|
-
|
1
|
+
module TimeRounder
|
2
|
+
module Schedule
|
3
|
+
##
|
4
|
+
# Schedule to round on 00, 15, 30, 45
|
5
|
+
module FifteenMinute
|
6
|
+
##
|
7
|
+
# Array of minutes that will require an hour be added to the total,
|
8
|
+
# because the number return from the partial hours has is .00
|
9
|
+
def add_hours_array
|
10
|
+
[53, 54, 55, 56, 57, 58, 59]
|
11
|
+
end
|
12
|
+
|
13
|
+
def minute_intervals
|
14
|
+
[0, 15, 30, 45, 60]
|
15
|
+
end
|
16
|
+
|
17
|
+
##
|
18
|
+
# returns the partial hour total based on what the minute is
|
19
|
+
def partial_hours_from_minutes(minute)
|
20
|
+
partials = { 0 => 0.0, 15 => 0.25, 30 => 0.5, 45 => 0.75, 60 => 0.0 }
|
21
|
+
interval = closest_to_number(minute_intervals, minute)
|
22
|
+
partials[interval]
|
23
|
+
end
|
24
|
+
|
25
|
+
##
|
26
|
+
# returns the number of minutes to get to the closest partial hour
|
27
|
+
def minutes_to_closest_partial(minute)
|
28
|
+
closest_to_number(minute_intervals, minute)
|
29
|
+
end
|
30
|
+
|
31
|
+
def closest_to_number(list, number)
|
32
|
+
list.min_by { |x| (x - number).abs }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
|
-
module TimeRounder
|
2
|
-
##
|
3
|
-
# Error class that get raised when a schedule is not found
|
4
|
-
class ScheduleNotFound
|
5
|
-
|
6
|
-
|
7
|
-
end
|
1
|
+
module TimeRounder
|
2
|
+
##
|
3
|
+
# Error class that get raised when a schedule is not found
|
4
|
+
class ScheduleNotFound
|
5
|
+
end
|
6
|
+
end
|
data/lib/time_rounder/version.rb
CHANGED
data/time_rounder.gemspec
CHANGED
@@ -4,22 +4,25 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'time_rounder/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'time_rounder'
|
8
8
|
spec.version = TimeRounder::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Ryan Condron']
|
10
|
+
spec.email = ['rebelwebdevelopment@gmail.com']
|
11
11
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
12
|
+
spec.summary = 'Round time with ease'
|
13
|
+
spec.description = 'Round time using logic and not complex math.'
|
14
|
+
spec.homepage = 'https://github.com/rebelweb/time_rounder'
|
15
|
+
spec.license = 'MIT'
|
16
|
+
spec.required_ruby_version = '>= 2.1'
|
16
17
|
|
17
18
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.bindir =
|
19
|
+
spec.bindir = 'exe'
|
19
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
21
|
spec.require_paths = ["lib"]
|
21
22
|
|
22
|
-
spec.add_development_dependency
|
23
|
-
spec.add_development_dependency
|
24
|
-
spec.add_development_dependency
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.10'
|
24
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
25
|
+
spec.add_development_dependency 'minitest', '~> 5.9.1', '>= 5.9.1'
|
26
|
+
spec.add_development_dependency 'benchmark-ips', '~> 2.7'
|
27
|
+
spec.add_development_dependency 'stackprof', '~> 0.2.10'
|
25
28
|
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.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Condron
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -42,17 +42,51 @@ dependencies:
|
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 5.9.1
|
45
48
|
- - ">="
|
46
49
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
50
|
+
version: 5.9.1
|
48
51
|
type: :development
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: 5.9.1
|
52
58
|
- - ">="
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
|
60
|
+
version: 5.9.1
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: benchmark-ips
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '2.7'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '2.7'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: stackprof
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 0.2.10
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 0.2.10
|
89
|
+
description: Round time using logic and not complex math.
|
56
90
|
email:
|
57
91
|
- rebelwebdevelopment@gmail.com
|
58
92
|
executables: []
|
@@ -60,12 +94,21 @@ extensions: []
|
|
60
94
|
extra_rdoc_files: []
|
61
95
|
files:
|
62
96
|
- ".gitignore"
|
97
|
+
- ".rubocop.yml"
|
63
98
|
- ".travis.yml"
|
64
99
|
- CODE_OF_CONDUCT.md
|
65
100
|
- Gemfile
|
66
101
|
- LICENSE.txt
|
67
102
|
- README.md
|
68
103
|
- Rakefile
|
104
|
+
- bench/difference_between_two_rounded_times/difference_between_two_rounded_times_benchmark.rb
|
105
|
+
- bench/difference_between_two_rounded_times/difference_between_two_rounded_times_stackprof.rb
|
106
|
+
- bench/difference_between_two_times/difference_between_two_times_benchmark.rb
|
107
|
+
- bench/difference_between_two_times/difference_between_two_times_stackprof.rb
|
108
|
+
- bench/rounded_time/rounded_time_benchmark.rb
|
109
|
+
- bench/rounded_time/rounded_time_stackprof.rb
|
110
|
+
- bench/seconds_to_hours/seconds_to_hours_benchmark.rb
|
111
|
+
- bench/seconds_to_hours/seconds_to_hours_stackprof.rb
|
69
112
|
- bin/console
|
70
113
|
- bin/setup
|
71
114
|
- lib/time_rounder.rb
|
@@ -89,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
89
132
|
requirements:
|
90
133
|
- - ">="
|
91
134
|
- !ruby/object:Gem::Version
|
92
|
-
version: '
|
135
|
+
version: '2.1'
|
93
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
137
|
requirements:
|
95
138
|
- - ">="
|
@@ -97,9 +140,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
140
|
version: '0'
|
98
141
|
requirements: []
|
99
142
|
rubyforge_project:
|
100
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.5.1
|
101
144
|
signing_key:
|
102
145
|
specification_version: 4
|
103
146
|
summary: Round time with ease
|
104
147
|
test_files: []
|
105
|
-
has_rdoc:
|