time_difference 0.2.0 → 0.3.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.
data/.travis.yml CHANGED
@@ -1,6 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "1.9.2"
4
3
  - "1.9.3"
5
4
  - jruby-19mode # JRuby in 1.9 mode
6
5
  - rbx-19mode
data/README.md CHANGED
@@ -23,13 +23,27 @@ And then execute:
23
23
  TimeDifference.between(start_time, end_time).in_years
24
24
  => 1.0
25
25
 
26
- ### Get the time difference in year
26
+ ### Get the time difference in months
27
27
 
28
28
  start_time = Time.new(2013,1)
29
29
  end_time = Time.new(2014,1)
30
30
  TimeDifference.between(start_time, end_time).in_months
31
31
  => 12.0
32
32
 
33
+ ### Get the time difference for each component
34
+
35
+ start_time = Time.new(2013,1)
36
+ end_time = Time.new(2014,1)
37
+ TimeDifference.between(start_time, end_time).in_each_component
38
+ => {:years=>1.0, :months=>12.0, :weeks=>52.14, :days=>365.0, :hours=>8760.0, :minutes=>525600.0, :seconds=>31536000.0}
39
+
40
+ ### If you would like a breakdown in each component, use in_general (not that accurate)
41
+
42
+ start_time = Time.new(2013,1)
43
+ end_time = Time.new(2014,1)
44
+ TimeDifference.between(start_time, end_time).in_general
45
+ => {:years=>0, :months=>12, :weeks=>0, :days=>5, :hours=>0, :minutes=>0, :seconds=>0}
46
+
33
47
  ### Supported time difference includes
34
48
 
35
49
  in_years
data/Rakefile CHANGED
@@ -2,4 +2,6 @@
2
2
  require "bundler/gem_tasks"
3
3
 
4
4
  require 'rspec/core/rake_task'
5
+
6
+ task :default => :spec
5
7
  RSpec::Core::RakeTask.new('spec')
@@ -24,9 +24,21 @@ class TimeDifference
24
24
 
25
25
  end
26
26
 
27
+ def self.in_each_component
28
+ time_in_each_component = {}
29
+ [:years, :months, :weeks, :days, :hours, :minutes, :seconds].each do |time_component|
30
+ if time_component == :months
31
+ time_in_each_component[time_component] = ((@time_diff/(1.days * 30.42)).round(2)).abs
32
+ else
33
+ time_in_each_component[time_component] = ((@time_diff/1.send(time_component)).round(2)).abs
34
+ end
35
+ end
36
+ time_in_each_component
37
+ end
38
+
27
39
  def self.in_general
28
40
  result = {}
29
- [:years, :months, :weeks, :days, :hours, :minutes, :seconds].each do |time_component|
41
+ [:years, :months, :weeks, :days, :hours, :minutes, :seconds].each do |time_component|
30
42
  result[time_component] = (@time_diff/1.send(time_component)).floor
31
43
  @time_diff = (@time_diff - result[time_component].send(time_component))
32
44
  end
@@ -2,6 +2,12 @@ require 'spec_helper'
2
2
 
3
3
  describe TimeDifference do
4
4
 
5
+ it "returns time difference in each component" do
6
+ start_time = Time.new(2011,1)
7
+ end_time = Time.new(2011,12)
8
+ expect(TimeDifference.between(start_time, end_time).in_each_component).to eql({:years=>0.91, :months=>10.98, :weeks=>47.71, :days=>334.0, :hours=>8016.0, :minutes=>480960.0, :seconds=>28857600.0})
9
+ end
10
+
5
11
  it "returns time difference in general that matches the total seconds" do
6
12
  start_time = Time.new(2009,9)
7
13
  end_time = Time.new(2010,11)
@@ -11,9 +11,10 @@ Gem::Specification.new do |gem|
11
11
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
12
12
  gem.name = "time_difference"
13
13
  gem.require_paths = ["lib"]
14
- gem.version = "0.2.0"
14
+ gem.version = "0.3.0"
15
15
 
16
16
  gem.add_runtime_dependency('activesupport')
17
17
  gem.add_development_dependency('rspec', '~> 2.13.0')
18
+ gem.add_development_dependency('rake')
18
19
 
19
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: time_difference
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-18 00:00:00.000000000 Z
12
+ date: 2013-09-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
45
  version: 2.13.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
46
62
  description: TimeDifference is the missing Ruby method to calculate difference between
47
63
  two given time. You can do a Ruby time difference in year, month, week, day, hour,
48
64
  minute, and seconds.
@@ -83,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
99
  version: '0'
84
100
  requirements: []
85
101
  rubyforge_project:
86
- rubygems_version: 1.8.24
102
+ rubygems_version: 1.8.23
87
103
  signing_key:
88
104
  specification_version: 3
89
105
  summary: TimeDifference is the missing Ruby method to calculate difference between
@@ -92,3 +108,4 @@ summary: TimeDifference is the missing Ruby method to calculate difference betwe
92
108
  test_files:
93
109
  - spec/spec_helper.rb
94
110
  - spec/time_difference_spec.rb
111
+ has_rdoc: