relativity 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog.rdoc +7 -0
- data/README.rdoc +1 -1
- data/TODO +0 -4
- data/lib/relativity/day_time.rb +7 -7
- data/lib/relativity/exception.rb +4 -0
- data/lib/relativity/version.rb +1 -1
- data/lib/relativity.rb +1 -0
- data/spec/day_time/day_time_spec.rb +6 -6
- data/spec/day_time/exception_spec.rb +15 -0
- metadata +12 -10
data/Changelog.rdoc
CHANGED
data/README.rdoc
CHANGED
@@ -14,7 +14,7 @@ be built on top, so the ranges of opening hours can be represented.
|
|
14
14
|
closes_at = DayTime.new(18,30) #=> 18:30:00
|
15
15
|
|
16
16
|
dt = DayTime.new #=> 21:17:40
|
17
|
-
dt.
|
17
|
+
dt.seconds_since_midnight #=> #<BigDecimal:9d35d48,'0.7666056825 7238E5',18(45)>
|
18
18
|
dt.hours #=> 21
|
19
19
|
dt.minutes #=> 17
|
20
20
|
dt.seconds #=> 40
|
data/TODO
CHANGED
data/lib/relativity/day_time.rb
CHANGED
@@ -2,7 +2,7 @@ class DayTime
|
|
2
2
|
|
3
3
|
require 'bigdecimal'
|
4
4
|
|
5
|
-
attr_reader :
|
5
|
+
attr_reader :seconds_since_midnight
|
6
6
|
|
7
7
|
def initialize(hours = nil, minutes = nil, seconds = nil, nano_seconds = nil)
|
8
8
|
super()
|
@@ -18,25 +18,25 @@ class DayTime
|
|
18
18
|
ss = t.sec
|
19
19
|
nn = t.nsec
|
20
20
|
end
|
21
|
-
@
|
21
|
+
@seconds_since_midnight = ((hh * 3600) + (mm * 60) + ss + BigDecimal(nn)/BigDecimal(1000000000))%(24*3600)
|
22
22
|
end
|
23
23
|
|
24
24
|
def hours
|
25
|
-
hours = Integer(@
|
26
|
-
raise "
|
25
|
+
hours = Integer(@seconds_since_midnight/3600).tap do |h|
|
26
|
+
raise Relativity::InternalError, "hours is out of bound : #{h}" if (h < 0 || h > 23)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
def minutes
|
31
|
-
Integer(@
|
31
|
+
Integer(@seconds_since_midnight / 60) % 60
|
32
32
|
end
|
33
33
|
|
34
34
|
def seconds
|
35
|
-
Integer(@
|
35
|
+
Integer(@seconds_since_midnight) % 60
|
36
36
|
end
|
37
37
|
|
38
38
|
def nano_seconds
|
39
|
-
Integer((@
|
39
|
+
Integer((@seconds_since_midnight % 1) * 1000000000)
|
40
40
|
end
|
41
41
|
|
42
42
|
def to_s
|
data/lib/relativity/version.rb
CHANGED
data/lib/relativity.rb
CHANGED
@@ -6,14 +6,14 @@ describe DayTime do
|
|
6
6
|
lambda { subject }.should_not raise_error
|
7
7
|
end
|
8
8
|
|
9
|
-
it "
|
10
|
-
lambda { subject.
|
9
|
+
it "seconds_since_midnight" do
|
10
|
+
lambda { subject.seconds_since_midnight }.should_not raise_error
|
11
11
|
end
|
12
12
|
|
13
13
|
it "new creates a DayTime close to now" do
|
14
|
-
rt_s = subject.
|
14
|
+
rt_s = subject.seconds_since_midnight
|
15
15
|
t = Time.new
|
16
|
-
t_s = (t.hour*60 + t.min)*60 + t.sec + t.nsec/1E9 #
|
16
|
+
t_s = (t.hour*60 + t.min)*60 + t.sec + t.nsec/1E9 # seconds_since_midnight from Time
|
17
17
|
(((t_s-rt_s).abs+2)%(24*60*60)).should be <= 4
|
18
18
|
end
|
19
19
|
|
@@ -29,8 +29,8 @@ describe DayTime do
|
|
29
29
|
(((subject.seconds - Time.new.sec).abs+2)%60).should be <= 4
|
30
30
|
end
|
31
31
|
|
32
|
-
it "
|
33
|
-
subject.
|
32
|
+
it "seconds_since_midnight should be BigDecimal" do
|
33
|
+
subject.seconds_since_midnight.should be_kind_of(BigDecimal)
|
34
34
|
end
|
35
35
|
|
36
36
|
it "hours should be Integer" do
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Relativity::InternalError do
|
4
|
+
|
5
|
+
it "inherits from StandardError" do
|
6
|
+
subject.should be_a(StandardError)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "raised for hours out of bound" do
|
10
|
+
day_time = DayTime.new
|
11
|
+
day_time.instance_variable_set(:@seconds_since_midnight, -100_000)
|
12
|
+
lambda { day_time.hours }.should raise_error(Relativity::InternalError, 'hours is out of bound : -28')
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relativity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &81174410 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '2.7'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *81174410
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: guard-rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &81173310 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.5'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *81173310
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rb-inotify
|
38
|
-
requirement: &
|
38
|
+
requirement: &81171830 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *81171830
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: libnotify
|
49
|
-
requirement: &
|
49
|
+
requirement: &81170730 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *81170730
|
58
58
|
description: time and time_ranges relative to day, week, month, quarter etc.
|
59
59
|
email:
|
60
60
|
- peter@vandenabeele.com
|
@@ -74,9 +74,11 @@ files:
|
|
74
74
|
- lib/relativity.rb
|
75
75
|
- lib/relativity/day_time.rb
|
76
76
|
- lib/relativity/day_time_range.rb
|
77
|
+
- lib/relativity/exception.rb
|
77
78
|
- lib/relativity/version.rb
|
78
79
|
- relativity.gemspec
|
79
80
|
- spec/day_time/day_time_spec.rb
|
81
|
+
- spec/day_time/exception_spec.rb
|
80
82
|
- spec/day_time/output_spec.rb
|
81
83
|
- spec/day_time/overflow_spec.rb
|
82
84
|
- spec/day_time_range/day_time_range_spec.rb
|