timespan 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,15 +1,15 @@
1
- source :rubygems
1
+ source 'http://rubygems.org'
2
2
 
3
3
  gem 'chronic'
4
4
  gem 'chronic_duration'
5
5
  gem 'activesupport', '>= 3.0.0'
6
6
  gem 'spanner'
7
- gem 'sugar-high', '~> 0.7.2' # for range intersect
8
- gem 'xduration', '~> 2.2'
7
+ gem 'sugar-high', '~> 0.7.3' # for range intersect
8
+ gem 'xduration', '~> 2.2'
9
9
 
10
10
  group :test, :development do
11
11
  gem "rspec", ">= 2.8.0"
12
- gem 'rails', '~> 3.2.7'
12
+ gem 'rails', '>= 3.2'
13
13
  # gem 'mongoid', '>= 2.4'
14
14
  # gem 'bson', '>= 1.6'
15
15
 
data/Gemfile.lock CHANGED
@@ -104,7 +104,7 @@ GEM
104
104
  hike (~> 1.2)
105
105
  rack (~> 1.0)
106
106
  tilt (~> 1.1, != 1.3.0)
107
- sugar-high (0.7.2)
107
+ sugar-high (0.7.3)
108
108
  thor (0.15.4)
109
109
  tilt (1.3.3)
110
110
  treetop (1.4.10)
@@ -126,10 +126,10 @@ DEPENDENCIES
126
126
  jeweler (>= 1.8.3)
127
127
  mongoid (~> 3.0)
128
128
  origin-selectable_ext (~> 0.1.1)
129
- rails (~> 3.2.7)
129
+ rails (>= 3.2)
130
130
  rdoc (>= 3.12)
131
131
  rspec (>= 2.8.0)
132
132
  simplecov (>= 0.5)
133
133
  spanner
134
- sugar-high (~> 0.7.2)
134
+ sugar-high (~> 0.7.3)
135
135
  xduration (~> 2.2)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.1
1
+ 0.5.2
data/lib/timespan.rb CHANGED
@@ -43,9 +43,9 @@ class Timespan
43
43
  alias_method :start_date, :start_time
44
44
  alias_method :end_date, :end_time
45
45
 
46
- START_KEYS = [:start, :from, :start_date]
47
- END_KEYS = [:to, :end, :end_date]
48
- DURATION_KEYS = [:duration, :lasting]
46
+ START_KEYS = [:start, :from, :start_date, :start_time, :start_from, :starting]
47
+ END_KEYS = [:to, :end, :end_date, :end_at, :ending]
48
+ DURATION_KEYS = [:duration, :lasting, :"for"]
49
49
 
50
50
  ALL_KEYS = START_KEYS + END_KEYS + DURATION_KEYS
51
51
 
@@ -66,6 +66,14 @@ class Timespan
66
66
  @is_new = false
67
67
  end
68
68
 
69
+ def asap!
70
+ @asap = true
71
+ end
72
+
73
+ def asap= value
74
+ @asap = !!value
75
+ end
76
+
69
77
  class << self
70
78
  def max_date
71
79
  @max_date ||= Time.now + 10.years
@@ -88,8 +96,10 @@ class Timespan
88
96
  end
89
97
 
90
98
  def from start, duration, options = {}
99
+ asap = false
91
100
  start = case start.to_sym
92
101
  when :now, :asap
102
+ asap = true
93
103
  Time.now
94
104
  when :today
95
105
  Date.today
@@ -105,7 +115,7 @@ class Timespan
105
115
  start
106
116
  end
107
117
 
108
- self.new start_date: start, duration: duration
118
+ self.new start_date: start, duration: duration, asap: asap
109
119
  end
110
120
 
111
121
  def untill ending
@@ -158,11 +168,11 @@ class Timespan
158
168
  alias_method :end_date=, :end_time=
159
169
 
160
170
  def asap?
161
- @asap
171
+ !!@asap
162
172
  end
163
173
 
164
174
  def min
165
- asap ? Time.now : start_time
175
+ asap? ? Time.now : start_time
166
176
  end
167
177
 
168
178
  def max
@@ -2,11 +2,12 @@ class Hash
2
2
  def __evolve_to_timespan__
3
3
  serializer = Mongoid::Fields::Timespan
4
4
  object = self
5
+ # puts "evolve from: #{self}"
5
6
  ::Timespan.new :from => serializer.from(object), :to => serializer.to(object), asap: serializer.asap(object)
6
7
  end
7
8
 
8
9
  def __evolve_to_duration_range__
9
- range = Range.new self['from'], self['to']
10
+ range = Range.new (self['from'] || self[:from]), (self['to'] || self[:to])
10
11
  ::DurationRange.new range, :seconds
11
12
  end
12
13
  end
@@ -1,22 +1,40 @@
1
1
  class TimespanRange < DelegateDecorator
2
2
  attr_accessor :unit, :range
3
3
 
4
- def initialize range, unit
5
- super(range)
4
+ def initialize range, unit = :minutes
5
+ range = (0..60) if range.min == nil || range.max == nil
6
+ super(range, except: %w{to_s to_str})
6
7
  @range = Timespan.new between: range
7
- @unit = unit.to_s.singularize.to_sym
8
+ @unit = unit.to_s.pluralize.to_sym
9
+ end
10
+
11
+ def to_str
12
+ to_s
13
+ end
14
+
15
+ def to_s
16
+ range.min.nil? ? 'no timespan range' : "#{range.min} to #{range.max} #{unit}"
8
17
  end
9
18
  end
10
19
 
11
20
  class DurationRange < DelegateDecorator
12
21
  attr_accessor :unit, :range
13
22
 
14
- def initialize range, unit
15
- super(range)
16
- @unit = unit.to_s.singularize.to_sym
23
+ def initialize range, unit = :minutes
24
+ range = (0..60) if range.min == nil || range.max == nil
25
+ super(range, except: %w{to_s to_str})
26
+ @unit = unit.to_s.pluralize.to_sym
17
27
  @range = range
18
28
  end
19
29
 
30
+ def to_str
31
+ to_s
32
+ end
33
+
34
+ def to_s
35
+ range.min.nil? ? 'no duration range' : "#{range.min} to #{range.max} #{unit}"
36
+ end
37
+
20
38
  def __evolve_to_duration_range__
21
39
  self
22
40
  end
@@ -70,7 +88,7 @@ class DurationRange < DelegateDecorator
70
88
  else
71
89
  raise "Unable to demongoize DurationRange from: #{object}"
72
90
  end
73
- # puts "demongoized: #{demongoized} - DurationRange"
91
+ # puts "demongoized: #{demongoized} - #{demongoized.class}"
74
92
  demongoized
75
93
  end
76
94
 
@@ -108,7 +126,6 @@ class DurationRange < DelegateDecorator
108
126
  end
109
127
  end
110
128
 
111
-
112
129
  class Range
113
130
  [:seconds, :minutes, :hours, :days, :weeks, :months, :years].each do |unit|
114
131
  define_method unit do |type = :duration|
@@ -17,7 +17,14 @@ class Timespan
17
17
  # @param [Timespan, Hash, Integer, String] value
18
18
  # @return [Hash] Timespan in seconds
19
19
  def mongoize
20
- {:from => Serializer.serialize_time(start_time), :to => Serializer.serialize_time(end_time), :duration => duration.total, :asap => asap? }
20
+ hash = {
21
+ :from => Serializer.serialize_time(start_time),
22
+ :to => Serializer.serialize_time(end_time),
23
+ :duration => duration.total,
24
+ :asap => asap?
25
+ }
26
+ # puts "serialize: #{hash}"
27
+ hash
21
28
  end
22
29
 
23
30
  class << self
@@ -2,16 +2,26 @@ module Mongoid
2
2
  module Timespanned
3
3
  extend ActiveSupport::Concern
4
4
 
5
+ def asap_for tspan_field = :period
6
+ ts = ::Timespan.asap duration: send(tspan_field).duration
7
+ self.send("#{tspan_field}=", ts)
8
+ self.save!
9
+ end
10
+
5
11
  class << self
6
12
  attr_accessor :log
7
13
 
8
14
  def log msg
9
- puts msg # if log?
15
+ puts msg if log?
10
16
  end
11
17
 
12
18
  def log?
13
19
  @log
14
20
  end
21
+
22
+ def log!
23
+ @log = true
24
+ end
15
25
  end
16
26
 
17
27
  module ClassMethods
@@ -16,13 +16,17 @@ class Timespan
16
16
  # %td => total days
17
17
  # %th => total hours
18
18
  # %tm => total minutes
19
- # %ts => total seconds
19
+ # %ts => total seconds
20
20
  def to_s mode = :full
21
21
  meth = "print_#{mode}"
22
22
  raise ArgumentError, "Print mode not supported, was: #{mode}" unless respond_to?(meth)
23
23
  send(meth)
24
24
  end
25
25
 
26
+ def to_str
27
+ to_s
28
+ end
29
+
26
30
  def print_dates
27
31
  "#{i18n_t 'from'} #{print :start_time} #{i18n_t 'to'} #{print :end_time}"
28
32
  end
@@ -44,6 +48,9 @@ class Timespan
44
48
  def print type
45
49
  return duration.format(duration_format) if type == :duration
46
50
  raise ArgumentError, "Not a valid print type, was: #{type}" unless valid_print_type? type
51
+
52
+ return "ASAP" if type == :start_time && asap?
53
+
47
54
  send(type).strftime(time_format)
48
55
  end
49
56
 
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Timespan::Span do
4
+ subject { timespan }
5
+
6
+ let(:from) { Chronic.parse("1 day ago") }
7
+ let(:to) { Time.now }
8
+
9
+ describe '.asap factory method' do
10
+ let(:timespan) { Timespan.asap :to => to }
11
+
12
+ its(:asap?) { should be_true }
13
+ end
14
+
15
+ describe '.asap=' do
16
+ before do
17
+ @timespan = Timespan.new :from => from, :to => to
18
+ @timespan.asap = true
19
+ end
20
+
21
+ specify { @timespan.asap?.should be_true }
22
+ end
23
+
24
+ describe '.asap!' do
25
+ before do
26
+ @timespan = Timespan.new :from => from, :to => to
27
+ @timespan.asap!
28
+ end
29
+
30
+ specify { @timespan.asap?.should be_true }
31
+ end
32
+ end
@@ -28,7 +28,7 @@ describe DurationRange do
28
28
  its(:range) { should be_a Range }
29
29
  its(:min) { should == 1.day }
30
30
  its(:max) { should == 5.days }
31
- its(:unit) { should == :day }
31
+ its(:unit) { should == :days }
32
32
 
33
33
  specify { subject.between?(4.days).should be_true }
34
34
  end
@@ -39,7 +39,7 @@ describe DurationRange do
39
39
  its(:range) { should be_a Range }
40
40
  its(:min) { should == 1.week }
41
41
  its(:max) { should == 5.weeks }
42
- its(:unit) { should == :week }
42
+ its(:unit) { should == :weeks }
43
43
  end
44
44
 
45
45
  context 'month range' do
@@ -47,7 +47,7 @@ describe DurationRange do
47
47
 
48
48
  its(:min) { should == 1.month }
49
49
  its(:max) { should == 5.months }
50
- its(:unit) { should == :month }
50
+ its(:unit) { should == :months }
51
51
  end
52
52
 
53
53
  context 'year range' do
@@ -55,6 +55,6 @@ describe DurationRange do
55
55
 
56
56
  its(:min) { should == 1.year }
57
57
  its(:max) { should == 5.years }
58
- its(:unit) { should == :year }
58
+ its(:unit) { should == :years }
59
59
  end
60
60
  end
@@ -25,7 +25,7 @@ describe TimespanRange do
25
25
  its(:range) { should be_a Timespan }
26
26
  its(:min) { should == 1.day }
27
27
  its(:max) { should == 5.days }
28
- its(:unit) { should == :day }
28
+ its(:unit) { should == :days }
29
29
  end
30
30
 
31
31
  context 'week range' do
@@ -34,7 +34,7 @@ describe TimespanRange do
34
34
  its(:range) { should be_a Timespan }
35
35
  its(:min) { should == 1.week }
36
36
  its(:max) { should == 5.weeks }
37
- its(:unit) { should == :week }
37
+ its(:unit) { should == :weeks }
38
38
  end
39
39
 
40
40
  context 'month range' do
@@ -43,7 +43,7 @@ describe TimespanRange do
43
43
  its(:range) { should be_a Timespan }
44
44
  its(:min) { should == 1.month }
45
45
  its(:max) { should == 5.months }
46
- its(:unit) { should == :month }
46
+ its(:unit) { should == :months }
47
47
  end
48
48
 
49
49
  context 'year range' do
@@ -52,6 +52,6 @@ describe TimespanRange do
52
52
  its(:range) { should be_a Timespan }
53
53
  its(:min) { should == 1.year }
54
54
  its(:max) { should == 5.years }
55
- its(:unit) { should == :year }
55
+ its(:unit) { should == :years }
56
56
  end
57
57
  end
@@ -68,11 +68,11 @@ describe TimeSpan do
68
68
  # end
69
69
 
70
70
  it 'should have custom max_asap' do
71
- TimePeriod.max_asap.should == 14.days.from_now.to_i
71
+ TimePeriod.max_asap.should be_within(2).of(14.days.from_now.to_i)
72
72
  end
73
73
 
74
74
  it 'should have custom min_asap' do
75
- TimePeriod.min_asap.should == 2.days.ago.to_i
75
+ TimePeriod.min_asap.should == be_within(2).of(2.days.ago.to_i)
76
76
  end
77
77
 
78
78
  it 'should find #1, #2, #3, #4, #5' do
@@ -13,9 +13,10 @@ class Account
13
13
 
14
14
  timespan_container_delegates :time_period, :dates, :all
15
15
 
16
- def self.create_it! duration
16
+ def self.create_it! duration, flex = nil
17
17
  acc = self.new period: ::Timespan.new(duration: duration), time_period: ::TimePeriod.new
18
18
  acc.time_period.dates_duration = 1.day
19
+ acc.time_period.flex = flex if flex
19
20
  acc
20
21
  end
21
22
 
@@ -0,0 +1,90 @@
1
+ require 'timespan/mongoid/spec_helper'
2
+
3
+ Mongoid::Timespanned.log = true
4
+ load_models!
5
+
6
+ describe TimeSpan do
7
+ subject { account }
8
+
9
+ def tomorrow
10
+ @tmrw ||= today + 1.day
11
+ end
12
+
13
+ def today
14
+ @today ||= Date.today
15
+ end
16
+
17
+ def format_date date
18
+ DateTime.parse(date.to_s).strftime('%d %b %Y')
19
+ end
20
+
21
+ let(:from) { Chronic.parse("1 day ago") }
22
+ let(:to) { Time.now }
23
+
24
+ # context 'Timespan.from' do
25
+ # let(:account) do
26
+ # Account.create period: Timespan.from(:asap, 5.days)
27
+ # end
28
+
29
+ # describe ':asap' do
30
+
31
+ # before :all do
32
+ # # puts subject.period.inspect
33
+ # end
34
+
35
+ # describe 'state' do
36
+ # specify { subject.period.asap?.should be_true }
37
+ # end
38
+
39
+ # describe '.start_date' do
40
+ # it 'should default to today' do
41
+ # format_date(subject.period.start_date).should == format_date(today)
42
+ # end
43
+ # end
44
+
45
+ # describe '.duration' do
46
+ # it 'should be 5 days' do
47
+ # subject.period.to_days.should == 5
48
+ # end
49
+ # end
50
+
51
+ # describe '.end_date' do
52
+ # it 'should be 5 days from today' do
53
+ # format_date(subject.period.end_date).should == format_date(today + 5.days)
54
+ # end
55
+ # end
56
+ # end
57
+
58
+ # context 'Timespan.asap' do
59
+ # let(:account) do
60
+ # Account.create period: Timespan.asap(duration: 5.days)
61
+ # end
62
+
63
+ # describe ':asap' do
64
+ # before :all do
65
+ # # puts subject.period.inspect
66
+ # end
67
+
68
+ # describe 'state' do
69
+ # specify { subject.period.asap?.should be_true }
70
+ # end
71
+ # end
72
+ # end
73
+
74
+ context 'Timespan.new' do
75
+ let(:account) do
76
+ Account.create period: Timespan.new(duration: 5.days)
77
+ end
78
+
79
+ describe ':asap' do
80
+ before :all do
81
+ subject.asap_for :period
82
+ puts subject.period.inspect
83
+ end
84
+
85
+ it 'should update asap' do
86
+ subject.period.asap?.should be_true
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,51 @@
1
+ require 'timespan/mongoid/spec_helper'
2
+
3
+ Mongoid::Timespanned.log = true
4
+ load_models!
5
+
6
+ describe TimeSpan do
7
+ subject { account }
8
+
9
+ def tomorrow
10
+ Date.today + 1.day
11
+ end
12
+
13
+ def format_date date
14
+ DateTime.parse(date.to_s).strftime('%d %b %Y')
15
+ end
16
+
17
+ let(:from) { Chronic.parse("1 day ago") }
18
+ let(:to) { Time.now }
19
+
20
+ context 'Mongoid' do
21
+ describe 'DurationRange'
22
+
23
+ let(:account) do
24
+ Account.create_it! 2.days, (0..3).minutes
25
+ end
26
+
27
+ describe 'set new start_date' do
28
+
29
+ specify do
30
+ subject.period_start = tomorrow
31
+ subject.period_end = tomorrow + 5.days
32
+
33
+ subject.time_period.dates_end = tomorrow + 3.days
34
+ subject.end_date = tomorrow + 3.days
35
+
36
+ subject.time_period.flex = (0..3).minutes
37
+
38
+
39
+ # puts "time period: #{subject.time_period}"
40
+
41
+ # puts "period: #{subject.period}"
42
+
43
+ # puts "time period"
44
+ # puts "dates: #{subject.time_period.dates}"
45
+ # puts "flex: #{subject.time_period.flex}"
46
+
47
+ format_date(subject.period.start_date).should == format_date(tomorrow)
48
+ end
49
+ end
50
+ end
51
+ end
@@ -7,7 +7,15 @@ describe TimeSpan do
7
7
  subject { account }
8
8
 
9
9
  def tomorrow
10
- Date.today + 1.day
10
+ @tmrw ||= today + 1.day
11
+ end
12
+
13
+ def today
14
+ @today ||= Date.today
15
+ end
16
+
17
+ def format_date date
18
+ DateTime.parse(date.to_s).strftime('%d %b %Y')
11
19
  end
12
20
 
13
21
  let(:from) { Chronic.parse("1 day ago") }
@@ -29,31 +37,7 @@ describe TimeSpan do
29
37
 
30
38
  describe '.start_date' do
31
39
  it 'should default to today' do
32
- DateTime.parse(subject.period.start_date.to_s).strftime('%d %b %Y').should == Date.today.strftime('%d %b %Y')
33
- end
34
- end
35
-
36
- describe '.duration' do
37
- it 'should be 5 days' do
38
- subject.period.to_days.should == 5
39
- end
40
- end
41
-
42
- describe '.end_date' do
43
- it 'should be 5 days from today' do
44
- DateTime.parse(subject.period.end_date.to_s).strftime('%d %b %Y').should == (Date.today + 5.days).strftime('%d %b %Y')
45
- end
46
- end
47
- end
48
-
49
- describe ':asap' do
50
- let(:account) do
51
- Account.create period: Timespan.from(:asap, 5.days)
52
- end
53
-
54
- describe '.start_date' do
55
- it 'should default to today' do
56
- DateTime.parse(subject.period.start_date.to_s).strftime('%d %b %Y').should == Date.today.strftime('%d %b %Y')
40
+ format_date(subject.period.start_date).should == format_date(today)
57
41
  end
58
42
  end
59
43
 
@@ -65,7 +49,7 @@ describe TimeSpan do
65
49
 
66
50
  describe '.end_date' do
67
51
  it 'should be 5 days from today' do
68
- DateTime.parse(subject.period.end_date.to_s).strftime('%d %b %Y').should == (Date.today + 5.days).strftime('%d %b %Y')
52
+ format_date(subject.period.end_date).should == format_date(today + 5.days)
69
53
  end
70
54
  end
71
55
  end
@@ -77,7 +61,7 @@ describe TimeSpan do
77
61
 
78
62
  describe '.start_date' do
79
63
  it 'should be tomorrow' do
80
- DateTime.parse(subject.period.start_date.to_s).strftime('%d %b %Y').should == Date.tomorrow.strftime('%d %b %Y')
64
+ format_date(subject.period.start_date).should == format_date(Date.tomorrow)
81
65
  end
82
66
  end
83
67
 
@@ -89,7 +73,7 @@ describe TimeSpan do
89
73
 
90
74
  describe '.end_date' do
91
75
  it 'should be 5 days from tomorrow' do
92
- DateTime.parse(subject.period.end_date.to_s).strftime('%d %b %Y').should == (Date.tomorrow + 5.days).strftime('%d %b %Y')
76
+ format_date(subject.period.end_date).should == format_date(Date.tomorrow + 5.days)
93
77
  end
94
78
  end
95
79
  end
@@ -101,7 +85,7 @@ describe TimeSpan do
101
85
 
102
86
  describe '.start_date' do
103
87
  it 'should be 1 week from today' do
104
- DateTime.parse(subject.period.start_date.to_s).strftime('%d %b %Y').should == Date.next_week.strftime('%d %b %Y')
88
+ format_date(subject.period.start_date).should == format_date(Date.next_week)
105
89
  end
106
90
  end
107
91
 
@@ -113,7 +97,7 @@ describe TimeSpan do
113
97
 
114
98
  describe '.end_date' do
115
99
  it 'should be 5 days from next week' do
116
- DateTime.parse(subject.period.end_date.to_s).strftime('%d %b %Y').should == (Date.next_week + 5.days).strftime('%d %b %Y')
100
+ format_date(subject.period.end_date).should == format_date(Date.next_week + 5.days)
117
101
  end
118
102
  end
119
103
  end
@@ -126,7 +110,7 @@ describe TimeSpan do
126
110
 
127
111
  describe '.start_date' do
128
112
  it 'should default to today' do
129
- DateTime.parse(subject.period.start_date.to_s).strftime('%d %b %Y').should == Date.today.strftime('%d %b %Y')
113
+ format_date(subject.period.start_date).should == format_date(Date.today)
130
114
  end
131
115
  end
132
116
  end
@@ -138,7 +122,7 @@ describe TimeSpan do
138
122
 
139
123
  describe '.start_date' do
140
124
  it 'should default to today' do
141
- DateTime.parse(subject.period.start_date.to_s).strftime('%d %b %Y').should == Date.today.strftime('%d %b %Y')
125
+ format_date(subject.period.start_date).should == format_date(Date.today)
142
126
  end
143
127
  end
144
128
  end
@@ -150,7 +134,7 @@ describe TimeSpan do
150
134
 
151
135
  describe '.start_date' do
152
136
  it 'should default to today' do
153
- DateTime.parse(subject.period.start_date.to_s).strftime('%d %b %Y').should == Date.today.strftime('%d %b %Y')
137
+ format_date(subject.period.start_date).should == format_date(Date.today)
154
138
  end
155
139
  end
156
140
  end
@@ -170,7 +154,7 @@ describe TimeSpan do
170
154
  end
171
155
 
172
156
  specify do
173
- Date.parse(subject.time_period.end_date.to_s).should == tomorrow + 3.days
157
+ format_date(subject.time_period.end_date).should == format_date(tomorrow + 3.days)
174
158
  end
175
159
 
176
160
  specify do
@@ -186,7 +170,7 @@ describe TimeSpan do
186
170
  end
187
171
 
188
172
  specify do
189
- Date.parse(subject.start_date.to_s).should == tomorrow
173
+ format_date(subject.start_date).should == format_date(tomorrow)
190
174
  end
191
175
  end
192
176
  end
data/timespan.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "timespan"
8
- s.version = "0.5.1"
8
+ s.version = "0.5.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristian Mandrup"]
12
- s.date = "2012-10-18"
12
+ s.date = "2012-11-19"
13
13
  s.description = "Makes it easy to calculate time distance in different units"
14
14
  s.email = "kmandrup@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -40,6 +40,7 @@ Gem::Specification.new do |s|
40
40
  "lib/timespan/span.rb",
41
41
  "lib/timespan/units.rb",
42
42
  "spec/spec_helper.rb",
43
+ "spec/timespan/asap_spec.rb",
43
44
  "spec/timespan/compare_spec.rb",
44
45
  "spec/timespan/core_ext/duration_range_spec.rb",
45
46
  "spec/timespan/core_ext/timespan_range_spec.rb",
@@ -49,6 +50,8 @@ Gem::Specification.new do |s|
49
50
  "spec/timespan/mongoid/models/account_2x.rb",
50
51
  "spec/timespan/mongoid/models/account_3x.rb",
51
52
  "spec/timespan/mongoid/models/time_period.rb",
53
+ "spec/timespan/mongoid/mongoid_asap_spec.rb",
54
+ "spec/timespan/mongoid/mongoid_duration_range_spec.rb",
52
55
  "spec/timespan/mongoid/mongoid_search_spec.rb",
53
56
  "spec/timespan/mongoid/mongoid_setup.rb",
54
57
  "spec/timespan/mongoid/mongoid_timespan_spec.rb",
@@ -76,10 +79,10 @@ Gem::Specification.new do |s|
76
79
  s.add_runtime_dependency(%q<chronic_duration>, [">= 0"])
77
80
  s.add_runtime_dependency(%q<activesupport>, [">= 3.0.0"])
78
81
  s.add_runtime_dependency(%q<spanner>, [">= 0"])
79
- s.add_runtime_dependency(%q<sugar-high>, ["~> 0.7.2"])
82
+ s.add_runtime_dependency(%q<sugar-high>, ["~> 0.7.3"])
80
83
  s.add_runtime_dependency(%q<xduration>, ["~> 2.2"])
81
84
  s.add_development_dependency(%q<rspec>, [">= 2.8.0"])
82
- s.add_development_dependency(%q<rails>, ["~> 3.2.7"])
85
+ s.add_development_dependency(%q<rails>, [">= 3.2"])
83
86
  s.add_development_dependency(%q<mongoid>, ["~> 3.0"])
84
87
  s.add_development_dependency(%q<origin-selectable_ext>, ["~> 0.1.1"])
85
88
  s.add_development_dependency(%q<rdoc>, [">= 3.12"])
@@ -91,10 +94,10 @@ Gem::Specification.new do |s|
91
94
  s.add_dependency(%q<chronic_duration>, [">= 0"])
92
95
  s.add_dependency(%q<activesupport>, [">= 3.0.0"])
93
96
  s.add_dependency(%q<spanner>, [">= 0"])
94
- s.add_dependency(%q<sugar-high>, ["~> 0.7.2"])
97
+ s.add_dependency(%q<sugar-high>, ["~> 0.7.3"])
95
98
  s.add_dependency(%q<xduration>, ["~> 2.2"])
96
99
  s.add_dependency(%q<rspec>, [">= 2.8.0"])
97
- s.add_dependency(%q<rails>, ["~> 3.2.7"])
100
+ s.add_dependency(%q<rails>, [">= 3.2"])
98
101
  s.add_dependency(%q<mongoid>, ["~> 3.0"])
99
102
  s.add_dependency(%q<origin-selectable_ext>, ["~> 0.1.1"])
100
103
  s.add_dependency(%q<rdoc>, [">= 3.12"])
@@ -107,10 +110,10 @@ Gem::Specification.new do |s|
107
110
  s.add_dependency(%q<chronic_duration>, [">= 0"])
108
111
  s.add_dependency(%q<activesupport>, [">= 3.0.0"])
109
112
  s.add_dependency(%q<spanner>, [">= 0"])
110
- s.add_dependency(%q<sugar-high>, ["~> 0.7.2"])
113
+ s.add_dependency(%q<sugar-high>, ["~> 0.7.3"])
111
114
  s.add_dependency(%q<xduration>, ["~> 2.2"])
112
115
  s.add_dependency(%q<rspec>, [">= 2.8.0"])
113
- s.add_dependency(%q<rails>, ["~> 3.2.7"])
116
+ s.add_dependency(%q<rails>, [">= 3.2"])
114
117
  s.add_dependency(%q<mongoid>, ["~> 3.0"])
115
118
  s.add_dependency(%q<origin-selectable_ext>, ["~> 0.1.1"])
116
119
  s.add_dependency(%q<rdoc>, [">= 3.12"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timespan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-18 00:00:00.000000000 Z
12
+ date: 2012-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chronic
@@ -82,7 +82,7 @@ dependencies:
82
82
  requirements:
83
83
  - - ~>
84
84
  - !ruby/object:Gem::Version
85
- version: 0.7.2
85
+ version: 0.7.3
86
86
  type: :runtime
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
@@ -90,7 +90,7 @@ dependencies:
90
90
  requirements:
91
91
  - - ~>
92
92
  - !ruby/object:Gem::Version
93
- version: 0.7.2
93
+ version: 0.7.3
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: xduration
96
96
  requirement: !ruby/object:Gem::Requirement
@@ -128,17 +128,17 @@ dependencies:
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
- - - ~>
131
+ - - ! '>='
132
132
  - !ruby/object:Gem::Version
133
- version: 3.2.7
133
+ version: '3.2'
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  none: false
138
138
  requirements:
139
- - - ~>
139
+ - - ! '>='
140
140
  - !ruby/object:Gem::Version
141
- version: 3.2.7
141
+ version: '3.2'
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: mongoid
144
144
  requirement: !ruby/object:Gem::Requirement
@@ -266,6 +266,7 @@ files:
266
266
  - lib/timespan/span.rb
267
267
  - lib/timespan/units.rb
268
268
  - spec/spec_helper.rb
269
+ - spec/timespan/asap_spec.rb
269
270
  - spec/timespan/compare_spec.rb
270
271
  - spec/timespan/core_ext/duration_range_spec.rb
271
272
  - spec/timespan/core_ext/timespan_range_spec.rb
@@ -275,6 +276,8 @@ files:
275
276
  - spec/timespan/mongoid/models/account_2x.rb
276
277
  - spec/timespan/mongoid/models/account_3x.rb
277
278
  - spec/timespan/mongoid/models/time_period.rb
279
+ - spec/timespan/mongoid/mongoid_asap_spec.rb
280
+ - spec/timespan/mongoid/mongoid_duration_range_spec.rb
278
281
  - spec/timespan/mongoid/mongoid_search_spec.rb
279
282
  - spec/timespan/mongoid/mongoid_setup.rb
280
283
  - spec/timespan/mongoid/mongoid_timespan_spec.rb
@@ -302,7 +305,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
302
305
  version: '0'
303
306
  segments:
304
307
  - 0
305
- hash: -4354095327562693822
308
+ hash: 4516363936943259477
306
309
  required_rubygems_version: !ruby/object:Gem::Requirement
307
310
  none: false
308
311
  requirements: