schedular 0.1.5 → 0.1.7
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/VERSION +1 -1
- data/generators/schedular_migrations/templates/schedular_migrations.rb +1 -0
- data/lib/schedular/event.rb +10 -3
- data/lib/schedular/time.rb +4 -0
- data/test/support/migrations.rb +1 -0
- data/test/test_event.rb +6 -1
- data/test/test_partials.rb +24 -2
- data/test/test_time.rb +31 -8
- metadata +3 -4
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.7
|
data/lib/schedular/event.rb
CHANGED
|
@@ -8,7 +8,7 @@ module Schedular
|
|
|
8
8
|
|
|
9
9
|
named_scope :all, {}
|
|
10
10
|
named_scope :include_times, :include => :times
|
|
11
|
-
named_scope :by_time_or_period, lambda{ |time|
|
|
11
|
+
named_scope :by_time_or_period, lambda { |time|
|
|
12
12
|
time = Range === time || DateTime === time ? time : (time..time+1)
|
|
13
13
|
{:conditions => {'schedular_times.value' => time}, :include => :times }
|
|
14
14
|
}
|
|
@@ -18,9 +18,16 @@ module Schedular
|
|
|
18
18
|
|
|
19
19
|
if parsed
|
|
20
20
|
self.times = parsed.map do |time|
|
|
21
|
+
all_day = time.class == Date
|
|
22
|
+
|
|
23
|
+
if Range === time
|
|
24
|
+
duration = ((time.last.to_f - time.first.to_f) / 60).to_i
|
|
25
|
+
time = time.first
|
|
26
|
+
else
|
|
27
|
+
duration = nil
|
|
28
|
+
end
|
|
21
29
|
# TODO: This method is soooo uneficient
|
|
22
|
-
all_day
|
|
23
|
-
Schedular::Time.all_day(all_day).by_time_or_period(time).first || Schedular::Time.new(:value => time, :all_day => all_day)
|
|
30
|
+
Schedular::Time.by_time_or_period(time).all_day(all_day).duration(duration).first || Schedular::Time.new(:value => time, :all_day => all_day, :duration => duration)
|
|
24
31
|
end
|
|
25
32
|
else
|
|
26
33
|
self.times = []
|
data/lib/schedular/time.rb
CHANGED
|
@@ -16,6 +16,10 @@ module Schedular
|
|
|
16
16
|
|
|
17
17
|
named_scope :all_day, lambda{ |bool| {:conditions => {'all_day' => (bool.nil? ? true : bool)} }}
|
|
18
18
|
|
|
19
|
+
named_scope :duration, lambda{ |duration| {:conditions => {:duration => duration}} }
|
|
20
|
+
named_scope :duration_less_or_equal, lambda{ |duration| {:conditions => ['duration <= ?', duration]} }
|
|
21
|
+
named_scope :duration_more_or_equal, lambda{ |duration| {:conditions => ['duration >= ?', duration]} }
|
|
22
|
+
|
|
19
23
|
def self.by_params params
|
|
20
24
|
return if params[:year].nil? and params[:month].nil? #TODO: By year
|
|
21
25
|
day = Date.civil params[:year].to_i, params[:month].to_i, (params[:day] || 1).to_i
|
data/test/support/migrations.rb
CHANGED
data/test/test_event.rb
CHANGED
|
@@ -10,7 +10,12 @@ class Schedular::EventTest < Test::Unit::TestCase
|
|
|
10
10
|
subject { @event }
|
|
11
11
|
|
|
12
12
|
should_validate_presence_of :name
|
|
13
|
-
|
|
13
|
+
|
|
14
|
+
should 'accept time ranges' do
|
|
15
|
+
@event.dates = '1 de enero del 2010 de las 15:00 a las 16:00 y de las 17:00 a las 19:00'
|
|
16
|
+
assert_equal [DateTime.civil(2010, 1, 1, 15), DateTime.civil(2010, 1, 1, 17)], @event.times.map(&:value)
|
|
17
|
+
assert_equal [60, 120], @event.times.map(&:duration)
|
|
18
|
+
end
|
|
14
19
|
|
|
15
20
|
should 'not accept bad date' do
|
|
16
21
|
@event.dates = 'bad dates'
|
data/test/test_partials.rb
CHANGED
|
@@ -12,6 +12,17 @@ class PartialsTest < ActionView::TestCase
|
|
|
12
12
|
html = <<-HTML
|
|
13
13
|
<table id="events-calendar">
|
|
14
14
|
<thead>
|
|
15
|
+
<tr class="links">
|
|
16
|
+
<th colspan="2">
|
|
17
|
+
<a href="/events/2009/12"><<</a>
|
|
18
|
+
</th>
|
|
19
|
+
<th colspan="3">
|
|
20
|
+
<a href="/events/2010/1">Ene 2010</a>
|
|
21
|
+
</th>
|
|
22
|
+
<th colspan="2">
|
|
23
|
+
<a href="/events/2010/2">>></a>
|
|
24
|
+
</th>
|
|
25
|
+
</tr>
|
|
15
26
|
<tr><th>dom</th><th>lun</th><th>mar</th><th>mie</th><th>jue</th><th>vie</th><th>sab</th></tr>
|
|
16
27
|
</thead>
|
|
17
28
|
<tbody>
|
|
@@ -25,13 +36,24 @@ class PartialsTest < ActionView::TestCase
|
|
|
25
36
|
</table>
|
|
26
37
|
HTML
|
|
27
38
|
|
|
28
|
-
assert_dom_equal html, render('schedular/events/
|
|
39
|
+
assert_dom_equal html, render('schedular/events/calendar', :events => [], :year => 2010, :month => 1)
|
|
29
40
|
end
|
|
30
41
|
|
|
31
42
|
should 'render day numbers with events' do
|
|
32
43
|
html = <<-HTML
|
|
33
44
|
<table id="events-calendar">
|
|
34
45
|
<thead>
|
|
46
|
+
<tr class="links">
|
|
47
|
+
<th colspan="2">
|
|
48
|
+
<a href="/events/2009/12"><<</a>
|
|
49
|
+
</th>
|
|
50
|
+
<th colspan="3">
|
|
51
|
+
<a href="/events/2010/1">Ene 2010</a>
|
|
52
|
+
</th>
|
|
53
|
+
<th colspan="2">
|
|
54
|
+
<a href="/events/2010/2">>></a>
|
|
55
|
+
</th>
|
|
56
|
+
</tr>
|
|
35
57
|
<tr><th>dom</th><th>lun</th><th>mar</th><th>mie</th><th>jue</th><th>vie</th><th>sab</th></tr>
|
|
36
58
|
</thead>
|
|
37
59
|
<tbody>
|
|
@@ -45,7 +67,7 @@ class PartialsTest < ActionView::TestCase
|
|
|
45
67
|
</table>
|
|
46
68
|
HTML
|
|
47
69
|
|
|
48
|
-
assert_dom_equal html, render('schedular/events/
|
|
70
|
+
assert_dom_equal html, render('schedular/events/calendar', :events => [@event], :year => 2010, :month => 1)
|
|
49
71
|
end
|
|
50
72
|
end
|
|
51
73
|
|
data/test/test_time.rb
CHANGED
|
@@ -9,28 +9,32 @@ class Schedular::TimeTest < Test::Unit::TestCase
|
|
|
9
9
|
end
|
|
10
10
|
subject { @time }
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
should have_and_belong_to_many :events
|
|
13
|
+
|
|
14
|
+
should 'validate all day not null'
|
|
15
|
+
|
|
13
16
|
|
|
14
17
|
context 'named scopes' do
|
|
15
18
|
setup do
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
Schedular::Time.create! :value => DateTime.civil(2010, 1, 1, 10), :duration => 60, :all_day => false
|
|
20
|
+
Schedular::Time.create! :value => DateTime.civil(2010, 1, 1, 10), :duration => 120, :all_day => false
|
|
21
|
+
Schedular::Event.create! :dates => 'enero y febrero 2010', :name => 'Evento 2'
|
|
18
22
|
end
|
|
19
23
|
|
|
20
24
|
should 'have 60 times' do
|
|
21
|
-
assert_equal
|
|
25
|
+
assert_equal 61, Schedular::Time.count
|
|
22
26
|
end
|
|
23
27
|
|
|
24
28
|
should 'find by time or period (Range)' do
|
|
25
|
-
assert_equal
|
|
29
|
+
assert_equal 33, Schedular::Time.by_time_or_period(Date.civil(2010)..Date.civil(2010, 2)).size
|
|
26
30
|
end
|
|
27
31
|
|
|
28
32
|
should 'find by time or period (Date)' do
|
|
29
|
-
assert_equal
|
|
33
|
+
assert_equal 3, Schedular::Time.by_time_or_period(Date.civil(2010)).size
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
should 'find by time or period (DateTime)' do
|
|
33
|
-
assert_equal
|
|
37
|
+
assert_equal 2, Schedular::Time.by_time_or_period(DateTime.civil(2010, 1, 1, 10)).size
|
|
34
38
|
end
|
|
35
39
|
|
|
36
40
|
should 'find by all day' do
|
|
@@ -38,7 +42,26 @@ class Schedular::TimeTest < Test::Unit::TestCase
|
|
|
38
42
|
end
|
|
39
43
|
|
|
40
44
|
should 'find by not all day' do
|
|
41
|
-
assert_equal
|
|
45
|
+
assert_equal 2, Schedular::Time.all_day(false).size
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
should 'find by duration' do
|
|
49
|
+
assert_equal 1, Schedular::Time.duration(60).size
|
|
50
|
+
assert_equal 1, Schedular::Time.duration(120).size
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
should 'find by duration less than' do
|
|
54
|
+
assert_equal 2, Schedular::Time.duration_less_or_equal(120).size
|
|
55
|
+
assert_equal 2, Schedular::Time.duration_less_or_equal(121).size
|
|
56
|
+
assert_equal 1, Schedular::Time.duration_less_or_equal(60).size
|
|
57
|
+
assert_equal 1, Schedular::Time.duration_less_or_equal(61).size
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
should 'find by duration more than' do
|
|
61
|
+
assert_equal 2, Schedular::Time.duration_more_or_equal(59).size
|
|
62
|
+
assert_equal 2, Schedular::Time.duration_more_or_equal(60).size
|
|
63
|
+
assert_equal 1, Schedular::Time.duration_more_or_equal(119).size
|
|
64
|
+
assert_equal 1, Schedular::Time.duration_more_or_equal(120).size
|
|
42
65
|
end
|
|
43
66
|
|
|
44
67
|
should 'find by params with month' do
|
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 1
|
|
8
|
-
-
|
|
9
|
-
version: 0.1.
|
|
8
|
+
- 7
|
|
9
|
+
version: 0.1.7
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- Macario Ortega
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2010-09-
|
|
17
|
+
date: 2010-09-24 00:00:00 -05:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
@@ -128,7 +128,6 @@ files:
|
|
|
128
128
|
- test/rails_app/lib/event.rb
|
|
129
129
|
- test/rails_app/log/production.log
|
|
130
130
|
- test/rails_app/log/server.log
|
|
131
|
-
- test/rails_app/log/test.log
|
|
132
131
|
- test/rails_app/public/404.html
|
|
133
132
|
- test/rails_app/public/422.html
|
|
134
133
|
- test/rails_app/public/500.html
|