relativity 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/Changelog.rdoc CHANGED
@@ -1,3 +1,7 @@
1
+ 0.0.9 2012-03-01:
2
+ * make compatible with ruby 1.9.2
3
+ * refactor seconds_since_midnight
4
+
1
5
  0.0.8 2012-02-15:
2
6
  * DayTime.normalize
3
7
  * DayTimeRange.normalize
@@ -1,3 +1,5 @@
1
+ require 'bigdecimal'
2
+
1
3
  module DayTime::Conversions
2
4
 
3
5
  def hours
@@ -22,6 +24,10 @@ module DayTime::Conversions
22
24
  [hours, minutes, seconds].map{|e| rjust_2_0(e.to_s)}.join(self.class.default_separator)
23
25
  end
24
26
 
27
+ def self.seconds_since_midnight(hh, mm, ss, nn)
28
+ ((hh * 3600) + (mm * 60) + ss + BigDecimal("#{nn}")/1000000000)%(24*3600)
29
+ end
30
+
25
31
  private
26
32
 
27
33
  def rjust_2_0(s)
@@ -21,7 +21,7 @@ module DayTime::New
21
21
  ss = t.sec
22
22
  nn = t.nsec
23
23
  end
24
- @seconds_since_midnight = ((hh * 3600) + (mm * 60) + ss + BigDecimal(nn)/BigDecimal(1000000000))%(24*3600)
24
+ @seconds_since_midnight = DayTime::Conversions.seconds_since_midnight(hh,mm,ss,nn)
25
25
  end
26
26
 
27
27
  private
@@ -1,3 +1,3 @@
1
1
  module Relativity
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -1,6 +1,5 @@
1
1
  class WeekTime
2
2
 
3
- require 'bigdecimal'
4
3
  require 'time'
5
4
 
6
5
  attr_reader :seconds_since_sunday_midnight
@@ -22,8 +21,8 @@ class WeekTime
22
21
  nn = t.nsec
23
22
  end
24
23
 
25
- seconds_since_midnight = ((hh * 3600) + (mm * 60) + ss + BigDecimal(nn)/BigDecimal(1000000000))%(24*3600)
26
- @seconds_since_sunday_midnight = week_day_d * 24 * 3600 + seconds_since_midnight
24
+ day_time = DayTime.new(hh,mm,ss,nn)
25
+ @seconds_since_sunday_midnight = (week_day_d * 24 * 3600) + day_time.seconds_since_midnight
27
26
  end
28
27
 
29
28
  end
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'bigdecimal/util'
2
3
 
3
4
  describe DayTime do
4
5
 
@@ -31,11 +32,34 @@ describe DayTime do
31
32
  end
32
33
 
33
34
  it "seconds_since_midnight" do
34
- lambda { subject.seconds_since_midnight }.should_not raise_error
35
+ subject.seconds_since_midnight # should_not raise_error
35
36
  end
36
37
 
37
38
  it "seconds_since_midnight should be BigDecimal" do
38
39
  subject.seconds_since_midnight.should be_kind_of(BigDecimal)
39
40
  end
40
41
 
42
+ context "seconds since midnight" do
43
+
44
+ it "zero is correct" do
45
+ DayTime::Conversions.seconds_since_midnight(0,0,0,0).should == "0".to_d
46
+ end
47
+
48
+ it "hours are correct" do
49
+ DayTime::Conversions.seconds_since_midnight(1,0,0,0).should == "3600".to_d
50
+ end
51
+
52
+ it "minutes are correct" do
53
+ DayTime::Conversions.seconds_since_midnight(0,1,0,0).should == "60".to_d
54
+ end
55
+
56
+ it "seconds are correct" do
57
+ DayTime::Conversions.seconds_since_midnight(0,0,1,0).should == "1".to_d
58
+ end
59
+
60
+ it "nanoseconds are correct" do
61
+ DayTime::Conversions.seconds_since_midnight(0,0,0,1000).should == "0.000001".to_d
62
+ end
63
+
64
+ end
41
65
  end
@@ -21,8 +21,7 @@ module Relativity
21
21
  end
22
22
 
23
23
  it "InvalidRangeFormatError accepts a hash with separator" do
24
- lambda {e = Relativity::InvalidRangeFormatError.new(:separator => "abcd")}.
25
- should_not raise_error
24
+ Relativity::InvalidRangeFormatError.new(:separator => "abcd") #should_not raise_error
26
25
  end
27
26
 
28
27
  it "InvalidRangeFormatError gives a tailured message" do
@@ -3,11 +3,11 @@ require 'spec_helper'
3
3
  describe WeekTime do
4
4
 
5
5
  it "new builds a WeekTime" do
6
- lambda { subject }.should_not raise_error
6
+ subject # should_not raise_error
7
7
  end
8
8
 
9
9
  it "seconds_since_sunday_midnight" do
10
- lambda { subject.seconds_since_sunday_midnight }.should_not raise_error
10
+ subject.seconds_since_sunday_midnight # should_not raise_error
11
11
  end
12
12
 
13
13
  it "new creates a WeekTime close to now" do
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.8
4
+ version: 0.0.9
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-02-15 00:00:00.000000000 Z
12
+ date: 2012-03-01 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &83122250 !ruby/object:Gem::Requirement
16
+ requirement: &79883760 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '2.7'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *83122250
24
+ version_requirements: *79883760
25
25
  description: time and time_ranges relative to day, week, month, quarter etc.
26
26
  email:
27
27
  - peter@vandenabeele.com