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 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