simple_calendar 0.0.1 → 0.0.2
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/README.md
CHANGED
@@ -24,15 +24,20 @@ will be using with simple_calendar.
|
|
24
24
|
We query the events we want to display as usual, and then render the
|
25
25
|
calendar in the view like so:
|
26
26
|
|
27
|
-
<%= calendar @events %>
|
27
|
+
<%= calendar @events do |event| %>
|
28
|
+
<div><%= link_to event.title, event %></div>
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
When the calendar is rendering, it yields to the block to allow you to
|
32
|
+
render whatever you like for the item. In this example, I use the title
|
33
|
+
attribute on the event with a link to the event.
|
28
34
|
|
29
35
|
has_calendar has options that can be passed to it for configuration:
|
30
36
|
|
31
|
-
has_calendar :
|
37
|
+
has_calendar :start_time => :my_start_column
|
32
38
|
|
33
39
|
def whatever
|
34
40
|
title + " ohai"
|
35
41
|
end
|
36
42
|
|
37
|
-
Start_time is the field for the start time of the event.
|
38
|
-
text that will be displayed for the event on the calendar.
|
43
|
+
Start_time is the field for the start time of the event.
|
@@ -1,14 +1,10 @@
|
|
1
1
|
module SimpleCalendar
|
2
2
|
module ModelAdditions
|
3
3
|
def has_calendar(options={})
|
4
|
-
config = { :
|
4
|
+
config = { :start_time => "start_time"}
|
5
5
|
config.update(options) if options.is_a?(Hash)
|
6
6
|
|
7
7
|
class_eval <<-EOV
|
8
|
-
def title_column
|
9
|
-
#{config[:title]}
|
10
|
-
end
|
11
|
-
|
12
8
|
def start_time_column
|
13
9
|
#{config[:start_time]}
|
14
10
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
module SimpleCalendar
|
2
2
|
module ViewHelpers
|
3
|
-
def calendar(events)
|
3
|
+
def calendar(events, &block)
|
4
4
|
day = Date.civil((params[:year] || Time.zone.now.year).to_i, (params[:month] || Time.zone.now.month).to_i)
|
5
5
|
|
6
6
|
content_tag :table, :class => "bordered-table calendar" do
|
7
|
-
month_header(day) + day_header + body(day, events)
|
7
|
+
month_header(day) + day_header + body(day, events, block)
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
@@ -40,7 +40,7 @@ module SimpleCalendar
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
def body(day, events)
|
43
|
+
def body(day, events, block)
|
44
44
|
current_date = start_date(day).dup
|
45
45
|
|
46
46
|
content_tag :tbody do
|
@@ -49,10 +49,10 @@ module SimpleCalendar
|
|
49
49
|
weeks << content_tag(:tr) do
|
50
50
|
tags = []
|
51
51
|
while not current_date.saturday?
|
52
|
-
tags << day(current_date, events)
|
52
|
+
tags << day(current_date, events, block)
|
53
53
|
current_date = current_date.tomorrow
|
54
54
|
end
|
55
|
-
tags << day(current_date, events)
|
55
|
+
tags << day(current_date, events, block)
|
56
56
|
current_date = current_date.tomorrow
|
57
57
|
tags.join.html_safe
|
58
58
|
end
|
@@ -61,11 +61,11 @@ module SimpleCalendar
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
def day(date, events)
|
64
|
+
def day(date, events, block)
|
65
65
|
content_tag :td do
|
66
66
|
events = day_events(date, events)
|
67
67
|
tags = [content_tag(:div, date.day, :class => "day")]
|
68
|
-
tags += events.map { |e| content_tag(:div, e
|
68
|
+
tags += events.map { |e| content_tag(:div, block.call(e)) } unless events.empty?
|
69
69
|
tags.join.html_safe
|
70
70
|
end
|
71
71
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_calendar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.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-02-
|
12
|
+
date: 2012-02-20 00:00:00.000000000Z
|
13
13
|
dependencies: []
|
14
14
|
description: A simple Rails 3 calendar
|
15
15
|
email:
|