time_rounder 0.4.0 → 0.5.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.
- 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:
|