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 CHANGED
@@ -1,3 +1,10 @@
1
+ 0.0.4 2012-01-17:
2
+
3
+ * Revert seconds_since_start to seconds_since_midnight
4
+ ("start" was arbitrary; "midnight" is a real world reference)
5
+
6
+ * Added an Relativity::Exception class
7
+
1
8
  0.0.3 2012-01-12
2
9
 
3
10
  * Change RelativeTime into DayTime
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.seconds_since_start #=> #<BigDecimal:9d35d48,'0.7666056825 7238E5',18(45)>
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
@@ -1,7 +1,3 @@
1
- Refactoring:
2
-
3
- * make an Exception class
4
-
5
1
  Features to be implemented:
6
2
 
7
3
  week_time = WeekTime.new
@@ -2,7 +2,7 @@ class DayTime
2
2
 
3
3
  require 'bigdecimal'
4
4
 
5
- attr_reader :seconds_since_start
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
- @seconds_since_start = ((hh * 3600) + (mm * 60) + ss + BigDecimal(nn)/BigDecimal(1000000000))%(24*3600)
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(@seconds_since_start/(3600)).tap do |h|
26
- raise "Internal ERROR in DayTime; hours is #{h}" if (h < 0 || h > 23)
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(@seconds_since_start / 60) % 60
31
+ Integer(@seconds_since_midnight / 60) % 60
32
32
  end
33
33
 
34
34
  def seconds
35
- Integer(@seconds_since_start) % 60
35
+ Integer(@seconds_since_midnight) % 60
36
36
  end
37
37
 
38
38
  def nano_seconds
39
- Integer((@seconds_since_start % 1) * 1000000000)
39
+ Integer((@seconds_since_midnight % 1) * 1000000000)
40
40
  end
41
41
 
42
42
  def to_s
@@ -0,0 +1,4 @@
1
+ module Relativity
2
+ class InternalError < StandardError
3
+ end
4
+ end
@@ -1,3 +1,3 @@
1
1
  module Relativity
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/relativity.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  require 'relativity/version'
2
+ require 'relativity/exception'
2
3
  require 'relativity/day_time'
3
4
  require 'relativity/day_time_range'
@@ -6,14 +6,14 @@ describe DayTime do
6
6
  lambda { subject }.should_not raise_error
7
7
  end
8
8
 
9
- it "seconds_since_start" do
10
- lambda { subject.seconds_since_start }.should_not raise_error
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.seconds_since_start
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 # seconds_since_start from Time
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 "seconds_since_start should be BigDecimal" do
33
- subject.seconds_since_start.should be_kind_of(BigDecimal)
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.3
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 00:00:00.000000000 Z
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: &68449760 !ruby/object:Gem::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: *68449760
24
+ version_requirements: *81174410
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: guard-rspec
27
- requirement: &68449150 !ruby/object:Gem::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: *68449150
35
+ version_requirements: *81173310
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rb-inotify
38
- requirement: &68448230 !ruby/object:Gem::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: *68448230
46
+ version_requirements: *81171830
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: libnotify
49
- requirement: &68447520 !ruby/object:Gem::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: *68447520
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