schedular 0.1.13 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.13
1
+ 0.1.14
@@ -10,15 +10,23 @@ module Schedular
10
10
  named_scope :joins_events, :joins => :events
11
11
  named_scope :include_events, :include => :events
12
12
  named_scope :order_by_value, :order => 'value asc'
13
-
13
+
14
+ named_scope :by_event, lambda { |event|
15
+ { :conditions => {:'schedular_events.id' => event}}
16
+ }
17
+
14
18
  named_scope :by_time_or_period, lambda{ |time|
15
19
  time = Range === time || DateTime === time ? time : (time..time+1)
16
20
  { :conditions => {:value => time} }
17
21
  }
18
22
 
19
23
  named_scope :order_by_closest_to, lambda { |date|
20
- {:limit => count, :order => "ABS(strftime('%s', value) - strftime('%s', #{date.to_formatted_s :db})) desc"}
24
+ {:order => %{ABS(strftime('%s', "#{date.to_formatted_s(:db)}") - strftime('%s', value)) asc} }
21
25
  }
26
+
27
+ # named_scope :order_by_following_closest_to, lambda { |date|
28
+ # {:order => %{(strftime('%s', "#{date.to_formatted_s(:db)}") - strftime('%s', value)) asc} }
29
+ # }
22
30
 
23
31
  named_scope :all_day, lambda{ |bool| {:conditions => {'all_day' => (bool.nil? ? true : bool)} }}
24
32
 
@@ -100,10 +100,6 @@ class Schedular::EventTest < Test::Unit::TestCase
100
100
  should 'find by params with no year' do
101
101
  assert_equal Schedular::Event.find(:all), Schedular::Event.by_params(:year => nil)
102
102
  end
103
-
104
- should 'find closest prior date' do
105
- assert_equal Schedular::Time.by_time_or_period(Date.civil(2010, 1, -1)), Schedular::Event.closest_dates(Date.civil(2010, 3), 1)
106
- end
107
103
  end
108
104
 
109
105
  should 'allways order times by value' do
@@ -71,10 +71,32 @@ class Schedular::TimeTest < Test::Unit::TestCase
71
71
  day = Date.civil(2010, 3, 2)
72
72
  assert_equal Schedular::Time.by_time_or_period(day..day + 1), Schedular::Time.by_params(:year => '2010', :month => '3', :day => '2')
73
73
  end
74
+ end
75
+
76
+ context 'scopes' do
77
+ setup do
78
+ Schedular::Event.destroy_all
79
+ @jan1_10am = Schedular::Time.create! :value => DateTime.civil(2010, 1, 1, 10), :duration => 60, :all_day => false
80
+ @jan1 = Schedular::Time.create! :value => DateTime.civil(2010, 1, 1), :all_day => true
81
+ @jan3 = Schedular::Time.create! :value => DateTime.civil(2010, 1, 3), :all_day => true
82
+ @jan3_10am = Schedular::Time.create! :value => DateTime.civil(2010, 1, 3, 10), :duration => 60, :all_day => false
83
+ end
74
84
 
75
- should 'find closest' do
76
- assert_equal Schedular::Time.by_time_or_period(Date.civil(2010, 2, -1)), Schedular::Time.closest_to(Date.civil(2010, 3), 1)
85
+ should 'order by closest to' do
86
+ assert_equal [@jan1_10am, @jan1, @jan3, @jan3_10am], Schedular::Time.order_by_closest_to(DateTime.civil(2010, 1, 2))
77
87
  end
88
+
89
+ should 'find by event' do
90
+ event = Schedular::Event.create! :name => 'evento', :dates => '1 de diciembre del 2009'
91
+ event.times = [@jan1]
92
+ assert_equal [@jan1], event.times
93
+ assert_equal [@jan1], Schedular::Time.joins_events.by_event(event)
94
+ assert_equal [@jan1], Schedular::Time.joins_events.by_event(event.id)
95
+ end
96
+
97
+ # should 'order by following closest to' do
98
+ # assert_equal [@jan3, @jan3_10am, @jan1_10am, @jan1], Schedular::Time.order_by_following_closest_to(DateTime.civil(2010, 1, 2))
99
+ # end
78
100
  end
79
101
 
80
102
  should 'allways order by value' do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schedular
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 13
10
- version: 0.1.13
9
+ - 14
10
+ version: 0.1.14
11
11
  platform: ruby
12
12
  authors:
13
13
  - Macario Ortega
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-26 00:00:00 -05:00
18
+ date: 2010-11-05 00:00:00 -06:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency