timespan 0.1.4 → 0.2.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.
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ describe Timespan::Units do
4
+ subject { timespan }
5
+
6
+ context 'From and To with 1 day apart' do
7
+ let(:timespan) { Timespan.new :from => from, :to => to}
8
+
9
+ let(:from) { Chronic.parse("1 day ago") }
10
+ let(:to) { Time.now }
11
+
12
+ describe '.weeks' do
13
+ it "spans 0 weeks" do
14
+ timespan.to_w.should == 0
15
+ end
16
+ its(:weeks) { should == 0 }
17
+ end
18
+
19
+ describe '.days' do
20
+ it "spans 1 day" do
21
+ timespan.to_d.should == 1
22
+ end
23
+ its(:days) { seconds.should == 1 }
24
+ end
25
+
26
+ describe '.hours' do
27
+ it "spans 24 hours" do
28
+ timespan.to_hrs.should == 24
29
+ end
30
+ its(:hours) { should == 24 }
31
+ end
32
+
33
+ describe '.minutes' do
34
+ it "spans 60*24 minutes" do
35
+ timespan.to_hrs.should == 24
36
+ end
37
+ its(:minutes) { should == 24*60 }
38
+ end
39
+
40
+ describe '.seconds' do
41
+ it "spans 86400 sec" do
42
+ timespan.seconds.should == 86400
43
+ end
44
+ its(:secs) { should == 86400 }
45
+ end
46
+
47
+ describe '.milliseconds' do
48
+ it "spans 86400 sec" do
49
+ timespan.milliseconds.should be_within(10).of(86400000)
50
+ end
51
+ its(:millis) { should be_within(10).of(86400000) }
52
+ end
53
+ end
54
+ end
@@ -1,63 +1,98 @@
1
1
  require 'spec_helper'
2
- require 'chronic'
3
2
 
4
- describe "Timespan" do
3
+ describe Timespan do
5
4
  subject { timespan }
6
5
 
7
- let(:timespan) { TimeSpan.new :from => from, :to => to}
6
+ let(:from) { Chronic.parse("1 day ago") }
7
+ let(:to) { Time.now }
8
8
 
9
- let(:from) { Chronic.parse("1 day ago") }
10
- let(:to) { Time.now }
9
+ context '2 days duration (from now - default)' do
10
+ let(:timespan) { Timespan.new :duration => "2 days"}
11
11
 
12
- it "spans 1 day" do
13
- timespan.to_d.should == 1
12
+ describe '.start_date' do
13
+ it 'should default to today' do
14
+ DateTime.parse(subject.start_date.to_s).strftime('%d %b %Y').should == Date.today.strftime('%d %b %Y')
15
+ end
16
+ end
14
17
  end
15
18
 
16
- it "spans 86400 sec" do
17
- timespan.to_secs.should == 86400
18
- end
19
+ context '3 hrs duration from now 2 days from now' do
20
+ let(:timespan) { Timespan.new("3 hrs").from(2.days.from_now) }
19
21
 
20
- it "spans 86400 sec" do
21
- timespan.to_mils.should be_within(10).of(86400000)
22
+ describe '.start_date' do
23
+ its(:start_date) { should be }
24
+ its(:end_date) { should be }
25
+ its(:duration) { should be_a Duration }
26
+ end
22
27
  end
23
28
 
24
- describe 'set with duration' do
25
- let(:duration) { Duration.new(:days => 3) }
26
- let(:timespan) { TimeSpan.new :from => from, :duration => duration }
27
-
28
- it 'should be 3 days' do
29
- timespan.to_d.should == 3
30
- end
31
- end
32
29
 
33
- describe 'set duration with String' do
34
- let(:timespan) { TimeSpan.new :from => from, :duration => "3 days" }
30
+ context 'From and To with 1 day apart' do
31
+ let(:timespan) { Timespan.new :from => from, :to => to}
35
32
 
36
- it 'should be 3 days' do
37
- timespan.to_d.should == 3
38
- end
33
+ describe '.convert_to_time' do
34
+ specify { subject.convert_to_time("1 day ago").to_s.should == 1.day.ago.to_s }
35
+ end
39
36
  end
40
37
 
41
- describe 'set duration with Spanner String including and' do
42
- let(:timespan) { TimeSpan.new :from => from, :duration => "3 days and 2 hours" }
43
-
44
- it 'should be 3 days and 2 hrs' do
45
- timespan.to_h.should == (24 * 3) + 2
46
- end
38
+ context 'From and 3 days' do
39
+ describe 'set with duration' do
40
+ let(:duration) { Duration.new(:days => 3) }
41
+ let(:timespan) { Timespan.new :from => from, :duration => duration }
42
+
43
+ it 'should be 3 days' do
44
+ timespan.to_d.should == 3
45
+ end
46
+ end
47
+
48
+ describe 'set duration with String' do
49
+ let(:timespan) { Timespan.new :from => from, :duration => "3 days" }
50
+
51
+ it 'should be 3 days' do
52
+ timespan.to_d.should == 3
53
+ end
54
+ end
55
+
56
+ describe 'set duration with Spanner String including and' do
57
+ let(:timespan) { Timespan.new :from => from, :duration => "3 days and 2 hours" }
58
+
59
+ it 'should be 3 days and 2 hrs' do
60
+ timespan.to_h.should == (24 * 3) + 2
61
+ end
62
+ end
63
+
64
+ describe 'set start_time to new' do
65
+ let(:timespan) { Timespan.new :from => from, :to => to }
66
+
67
+ before :each do
68
+ @old_timespan = timespan.clone
69
+ @new_timespan = timespan.clone
70
+ @new_timespan.start_date = Chronic.parse("2 days ago")
71
+ end
72
+
73
+ its(:duration) { should be_a Duration }
74
+ specify { subject.send(:dirty).should be_empty }
75
+
76
+ it 'should have diff timespans' do
77
+ @old_timespan.days.should_not == @new_timespan.days
78
+ end
79
+ end
80
+
81
+ describe 'set end_time to new' do
82
+ let(:timespan) { Timespan.new :from => from, :to => to }
83
+
84
+ before :each do
85
+ @old_timespan = timespan.clone
86
+ @new_timespan = timespan.clone
87
+ @new_timespan.end_date = Chronic.parse("5 days from now")
88
+ end
89
+
90
+ its(:duration) { should be_a Duration }
91
+ specify { subject.send(:dirty).should be_empty }
92
+
93
+ it 'should have diff timespans' do
94
+ @old_timespan.days.should_not == @new_timespan.days
95
+ end
96
+ end
47
97
  end
48
-
49
-
50
- describe 'set start_time to new' do
51
- let(:timespan) { TimeSpan.new :from => from, :to => to }
52
-
53
- before :each do
54
- @old_timespan = timespan.clone
55
- @new_timespan = timespan.clone
56
- @new_timespan.start_date = Chronic.parse("2 days ago")
57
- end
58
-
59
- it 'should have diff timespans' do
60
- @old_timespan.to_d.should_not == @new_timespan.to_d
61
- end
62
- end
63
98
  end
data/timespan.gemspec CHANGED
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "timespan"
8
- s.version = "0.1.4"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristian Mandrup"]
12
- s.date = "2012-04-30"
13
- s.description = "Easy to calculate time distance in different units"
12
+ s.date = "2012-05-04"
13
+ s.description = "Makes it easy to calculate time distance in different units"
14
14
  s.email = "kmandrup@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
@@ -25,8 +25,20 @@ Gem::Specification.new do |s|
25
25
  "README.md",
26
26
  "Rakefile",
27
27
  "VERSION",
28
+ "config/locales/timespan/da.yml",
28
29
  "lib/timespan.rb",
30
+ "lib/timespan/compare.rb",
31
+ "lib/timespan/mongoid.rb",
32
+ "lib/timespan/printer.rb",
33
+ "lib/timespan/rails/engine.rb",
34
+ "lib/timespan/span.rb",
35
+ "lib/timespan/units.rb",
29
36
  "spec/spec_helper.rb",
37
+ "spec/timespan/compare_spec.rb",
38
+ "spec/timespan/locales/duration_da.yml",
39
+ "spec/timespan/printer_spec.rb",
40
+ "spec/timespan/span_spec.rb",
41
+ "spec/timespan/units_spec.rb",
30
42
  "spec/timespan_spec.rb",
31
43
  "timespan.gemspec"
32
44
  ]
@@ -34,25 +46,29 @@ Gem::Specification.new do |s|
34
46
  s.licenses = ["MIT"]
35
47
  s.require_paths = ["lib"]
36
48
  s.rubygems_version = "1.8.24"
37
- s.summary = "Use TimeSpans in ruby"
49
+ s.summary = "Use timespans in ruby"
38
50
 
39
51
  if s.respond_to? :specification_version then
40
52
  s.specification_version = 3
41
53
 
42
54
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
55
  s.add_runtime_dependency(%q<chronic>, [">= 0"])
56
+ s.add_runtime_dependency(%q<chronic_duration>, [">= 0"])
44
57
  s.add_runtime_dependency(%q<spanner>, [">= 0"])
45
58
  s.add_runtime_dependency(%q<ruby-duration>, [">= 0"])
46
59
  s.add_development_dependency(%q<rspec>, [">= 2.8.0"])
60
+ s.add_development_dependency(%q<rails>, ["~> 3.2"])
47
61
  s.add_development_dependency(%q<rdoc>, [">= 3.12"])
48
62
  s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
49
63
  s.add_development_dependency(%q<jeweler>, [">= 1.8.3"])
50
64
  s.add_development_dependency(%q<simplecov>, [">= 0.5"])
51
65
  else
52
66
  s.add_dependency(%q<chronic>, [">= 0"])
67
+ s.add_dependency(%q<chronic_duration>, [">= 0"])
53
68
  s.add_dependency(%q<spanner>, [">= 0"])
54
69
  s.add_dependency(%q<ruby-duration>, [">= 0"])
55
70
  s.add_dependency(%q<rspec>, [">= 2.8.0"])
71
+ s.add_dependency(%q<rails>, ["~> 3.2"])
56
72
  s.add_dependency(%q<rdoc>, [">= 3.12"])
57
73
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
58
74
  s.add_dependency(%q<jeweler>, [">= 1.8.3"])
@@ -60,9 +76,11 @@ Gem::Specification.new do |s|
60
76
  end
61
77
  else
62
78
  s.add_dependency(%q<chronic>, [">= 0"])
79
+ s.add_dependency(%q<chronic_duration>, [">= 0"])
63
80
  s.add_dependency(%q<spanner>, [">= 0"])
64
81
  s.add_dependency(%q<ruby-duration>, [">= 0"])
65
82
  s.add_dependency(%q<rspec>, [">= 2.8.0"])
83
+ s.add_dependency(%q<rails>, ["~> 3.2"])
66
84
  s.add_dependency(%q<rdoc>, [">= 3.12"])
67
85
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
68
86
  s.add_dependency(%q<jeweler>, [">= 1.8.3"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timespan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.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: 2012-04-30 00:00:00.000000000 Z
12
+ date: 2012-05-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chronic
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: chronic_duration
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: spanner
32
48
  requirement: !ruby/object:Gem::Requirement
@@ -75,6 +91,22 @@ dependencies:
75
91
  - - ! '>='
76
92
  - !ruby/object:Gem::Version
77
93
  version: 2.8.0
94
+ - !ruby/object:Gem::Dependency
95
+ name: rails
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: '3.2'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '3.2'
78
110
  - !ruby/object:Gem::Dependency
79
111
  name: rdoc
80
112
  requirement: !ruby/object:Gem::Requirement
@@ -139,7 +171,7 @@ dependencies:
139
171
  - - ! '>='
140
172
  - !ruby/object:Gem::Version
141
173
  version: '0.5'
142
- description: Easy to calculate time distance in different units
174
+ description: Makes it easy to calculate time distance in different units
143
175
  email: kmandrup@gmail.com
144
176
  executables: []
145
177
  extensions: []
@@ -155,8 +187,20 @@ files:
155
187
  - README.md
156
188
  - Rakefile
157
189
  - VERSION
190
+ - config/locales/timespan/da.yml
158
191
  - lib/timespan.rb
192
+ - lib/timespan/compare.rb
193
+ - lib/timespan/mongoid.rb
194
+ - lib/timespan/printer.rb
195
+ - lib/timespan/rails/engine.rb
196
+ - lib/timespan/span.rb
197
+ - lib/timespan/units.rb
159
198
  - spec/spec_helper.rb
199
+ - spec/timespan/compare_spec.rb
200
+ - spec/timespan/locales/duration_da.yml
201
+ - spec/timespan/printer_spec.rb
202
+ - spec/timespan/span_spec.rb
203
+ - spec/timespan/units_spec.rb
160
204
  - spec/timespan_spec.rb
161
205
  - timespan.gemspec
162
206
  homepage: http://github.com/kristianmandrup/timespan
@@ -174,7 +218,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
174
218
  version: '0'
175
219
  segments:
176
220
  - 0
177
- hash: 4198297860052493168
221
+ hash: 2914636864152776546
178
222
  required_rubygems_version: !ruby/object:Gem::Requirement
179
223
  none: false
180
224
  requirements:
@@ -186,5 +230,5 @@ rubyforge_project:
186
230
  rubygems_version: 1.8.24
187
231
  signing_key:
188
232
  specification_version: 3
189
- summary: Use TimeSpans in ruby
233
+ summary: Use timespans in ruby
190
234
  test_files: []