relativity 0.0.3 → 0.0.4
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/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
|