refinerycms-events 0.0.1

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.
@@ -0,0 +1,5 @@
1
+ class Admin::EventsController < Admin::BaseController
2
+ helper :calendars
3
+ crudify :event, :title_attribute => :title, :sortable => false, :order => 'start_at DESC'
4
+
5
+ end
@@ -0,0 +1,26 @@
1
+ class EventsController < ApplicationController
2
+
3
+ before_filter :find_page
4
+ helper :calendars
5
+
6
+ def index
7
+ @date = Date.parse(params[:date]) rescue Date.today
8
+ @calendar = Calendar.new(@date)
9
+ present(@page)
10
+ end
11
+
12
+ def show
13
+ @event = Event.find(params[:id])
14
+
15
+ # you can use meta fields from your model instead (e.g. browser_title)
16
+ # by swapping @page for @event in the line below:
17
+ present(@event)
18
+ end
19
+
20
+ protected
21
+
22
+ def find_page
23
+ @page = Page.find_by_link_url("/events")
24
+ end
25
+
26
+ end
@@ -0,0 +1,59 @@
1
+ module CalendarsHelper
2
+ def datetime(d)
3
+ I18n.localize(d, :format => "%B %d, %Y %l:%M %p")
4
+ end
5
+
6
+ def date(d)
7
+ I18n.localize(d, :format => "%B %d, %Y")
8
+ end
9
+
10
+ def time(d)
11
+ I18n.localize(d, :format => "%l:%M%p")
12
+ end
13
+
14
+ def month_link(date)
15
+ link_to(I18n.localize(date, :format => "%B"), {:date => date})
16
+ end
17
+
18
+ # custom options for this calendar
19
+ def event_calendar_opts(calendar)
20
+ {
21
+ :year => @calendar.year,
22
+ :month => @calendar.month,
23
+ :event_strips => @calendar.event_strips,
24
+ :month_name_text => I18n.localize(@calendar.date, :format => "%B %Y"),
25
+ :previous_month_text => month_link(@calendar.date.last_month),
26
+ :next_month_text => month_link(@calendar.date.next_month),
27
+ :use_all_day => true
28
+ }
29
+ end
30
+
31
+ def timed_title(event)
32
+ "#{time(event.start_at)} #{h(event.title)}"
33
+ end
34
+
35
+ def event_title(event)
36
+ if event.all_day?
37
+ h(event.title)
38
+ else
39
+ timed_title(event)
40
+ end
41
+ end
42
+
43
+ def event_calendar(calendar)
44
+ # args is an argument hash containing :event, :day, and :options
45
+ calendar event_calendar_opts(calendar) do |args|
46
+ event = args[:event]
47
+ title = event.all_day?? h(event.title) : timed_title(event)
48
+ link_to(title, event_path(event))
49
+ end
50
+ end
51
+
52
+ def event_list
53
+ grouped_events = Event.
54
+ all(:limit => 10, :order => 'start_at ASC',
55
+ :conditions => [ 'start_at >= ?', Time.now ]).
56
+ group_by { |e| e.start_at.to_date }
57
+ render :partial => '/events/event_list', :object => grouped_events
58
+ end
59
+ end
@@ -0,0 +1,16 @@
1
+ class Calendar
2
+ def initialize(date)
3
+ @date = date
4
+ end
5
+
6
+ def events
7
+ event_strips.flatten.compact
8
+ end
9
+
10
+ def event_strips
11
+ Event.event_strips_for_month(@date)
12
+ end
13
+
14
+ attr_reader :date
15
+ delegate :month, :year, :to => :date
16
+ end
@@ -0,0 +1,28 @@
1
+ require 'semanticgap_date_time_form'
2
+
3
+ class Event < ActiveRecord::Base
4
+ has_event_calendar
5
+ datetime_fields_for :start_at
6
+ datetime_fields_for :end_at
7
+
8
+ acts_as_indexed :fields => [:title, :description, :location],
9
+ :index_file => [Rails.root.to_s, "tmp", "index"]
10
+
11
+ validates_presence_of :title
12
+ validates_uniqueness_of :title
13
+
14
+ validates_format_of :color, :with => /(black|white|gr[ae]y|red|yellow|green|cyan|blue|magenta|\#[A-Fa-f0-9]{3,6})/, :allow_blank => true
15
+
16
+ def dated_title
17
+ "#{I18n.localize(start_at.to_date)}: #{title}"
18
+ end
19
+
20
+ def timed_title
21
+ "#{I18n.localize(start_at, "")}: #{title}"
22
+ end
23
+
24
+ def color
25
+ c = attributes['color']
26
+ c.blank?? 'black' : c
27
+ end
28
+ end
@@ -0,0 +1,17 @@
1
+ <li class='clearfix record <%= cycle("on", "on-hover") %>' id="<%= dom_id(event) -%>">
2
+ <span class='title'>
3
+ <%= date(event.start_at) %>: <%=h event.title %>
4
+ <span class="preview">&nbsp;</span>
5
+
6
+ <span class='actions'>
7
+ <%= link_to refinery_icon_tag("application_go.png"), event_url(event),
8
+ :title => 'View this event<br/><em>Opens in a new window</em>',
9
+ :target => "_blank" %>
10
+ <%= link_to refinery_icon_tag("application_edit.png"), edit_admin_event_path(event),
11
+ :title => 'Edit this event' %>
12
+ <%= link_to refinery_icon_tag("delete.png"), admin_event_path(event),
13
+ :class => "cancel confirm-delete",
14
+ :title => 'Remove this event forever' %>
15
+ </span>
16
+ </span>
17
+ </li>
@@ -0,0 +1,41 @@
1
+ <% content_for :head, stylesheet_link_tag('semanticgap_date_time_form') %>
2
+ <%= error_messages_for :event -%>
3
+ <% form_for [:admin, @event] do |f| -%>
4
+
5
+ <div class='field'>
6
+ <%= f.label :title -%>
7
+ <%= f.text_field :title, :class => 'larger' -%>
8
+ </div>
9
+
10
+ <div class='field'>
11
+ <%= f.label :description -%>
12
+ <%= f.text_area :description, :rows => 20, :cols => 140, :class => 'wymeditor' -%>
13
+ </div>
14
+
15
+ <div class='field'>
16
+ <%= f.label :location -%>
17
+ <%= f.text_field :location -%>
18
+ </div>
19
+
20
+ <div class='field'>
21
+ <%= f.label :all_day -%>
22
+ <%= f.check_box :all_day -%>
23
+ </div>
24
+
25
+ <div class='field'>
26
+ <%= f.label :start_at -%>
27
+ <%= f.datetime_form :start_at -%>
28
+ </div>
29
+
30
+ <div class='field'>
31
+ <%= f.label :end_at -%>
32
+ <%= f.datetime_form :end_at -%>
33
+ </div>
34
+
35
+ <div class='field'>
36
+ <%= f.label :color -%>
37
+ <%= f.text_field :color -%>
38
+ </div>
39
+
40
+ <%= render :partial => "/shared/admin/form_actions", :locals => {:f => f, :continue_editing => false} %>
41
+ <% end -%>
@@ -0,0 +1,2 @@
1
+ <%= render :partial => 'event', :collection => @events %>
2
+ <%= render :partial => "/shared/admin/sortable_list", :locals => {:continue_reordering => (defined?(continue_reordering) ? continue_reordering : true)} %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1,36 @@
1
+ <div id='actions'>
2
+ <ul>
3
+ <li>
4
+ <%= render :partial => "/shared/admin/search", :locals => {:url => admin_events_url} %>
5
+ </li>
6
+ <li>
7
+ <%= link_to "Create New Event", new_admin_event_url, :class => "add_icon" %>
8
+ </li>
9
+ </ul>
10
+ </div>
11
+ <div id='records'>
12
+ <% if searching? %>
13
+ <h2>Search Results for "<%= params[:search] %>"</h2>
14
+ <% if @events.any? %>
15
+ <%= render :partial => "event", :collection => @events %>
16
+ <% else %>
17
+ <p>Sorry, no results found.</p>
18
+ <% end %>
19
+ <% else %>
20
+ <% if @events.any? %>
21
+ <%= will_paginate @events, :previous_label => '&laquo;', :next_label => '&raquo;' %>
22
+ <ul id='sortable_list'>
23
+ <%= render :partial => "sortable_list" %>
24
+ </ul>
25
+ <%= will_paginate @events, :previous_label => '&laquo;', :next_label => '&raquo;' %>
26
+ <% else %>
27
+ <p>
28
+ <strong>
29
+ There are no events yet.
30
+ Click "Create New Event" to add your first event.
31
+ </strong>
32
+ </p>
33
+ <% end %>
34
+ <% end %>
35
+ </div>
36
+ <%= render :partial => "/shared/admin/make_sortable", :locals => {:tree => false } if !searching? and Event.count > 1 %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1,20 @@
1
+ <dl class="event-list">
2
+ <% event_list.each do |d, events| -%>
3
+ <dt><%= date(d) %></dt>
4
+ <dd>
5
+ <ul>
6
+ <% events.each do |e| -%>
7
+ <li class="event">
8
+ <%= link_to(event_title(e), event_path(e)) %>
9
+ <% unless e.location.blank? -%>
10
+ @ <%= h(e.location) %>
11
+ <% end -%>
12
+ </li>
13
+ <% end -%>
14
+ </ul>
15
+ <% end -%>
16
+ </dd>
17
+ <dt>
18
+ <%= link_to 'View the calendar', events_path %>
19
+ </dt>
20
+ </dl>
@@ -0,0 +1,10 @@
1
+ <!-- Probably move the stylesheet to you layout. Also make sure you include the javascript. -->
2
+ <%= stylesheet_link_tag "event_calendar" %>
3
+ <%= javascript_include_tag "event_calendar" %>
4
+
5
+ <div class="page">
6
+ <%= render :partial => "/shared/content_page" %>
7
+ </div>
8
+ <div class="calendar">
9
+ <%= event_calendar(@calendar) %>
10
+ </div>
@@ -0,0 +1,30 @@
1
+ <% content_for :body_content_title do %>
2
+ <%= @event.title %>
3
+ <% end %>
4
+
5
+ <% content_for :body_content_left do %>
6
+ <div>
7
+ <%= @event.description %>
8
+ </div>
9
+
10
+ <div>
11
+ <h3>Where</h3>
12
+ <%= @event.location %>
13
+ </div>
14
+
15
+ <div>
16
+ <h3>When</h3>
17
+ <% if @event.all_day? -%>
18
+ <% if @event.days == 0 -%>
19
+ <%= date(@event.start_at) %>
20
+ <% else -%>
21
+ <%= date(@event.start_at) %> &mdash; <%= date(@event.end_at) %>
22
+ <% end -%>
23
+ <% else -%>
24
+ <%= datetime(@event.start_at) %> &mdash; <%= datetime(@event.end_at) %>
25
+ <% end -%>
26
+ </div>
27
+
28
+ <% end %>
29
+
30
+ <%= render :partial => "/shared/content_page" %>
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pathname'
3
+ require 'fileutils'
4
+
5
+ events_root = Pathname.new(File.expand_path(File.dirname(__FILE__) << "/.."))
6
+
7
+ rails_root = if defined?(Rails.root)
8
+ Rails.root
9
+ elsif defined?(RAILS_ROOT)
10
+ Pathname.new(RAILS_ROOT)
11
+ else
12
+ Pathname.new(ARGV.first)
13
+ end
14
+
15
+ if rails_root.exist?
16
+ [%w(db migrate), %w(public stylesheets), %w(public javascripts)].each do |dir|
17
+ rails_root.join(dir.join(File::SEPARATOR)).mkpath
18
+ end
19
+
20
+ copies = [
21
+ {:from => %w(db migrate), :to => %w(db migrate), :filename => "20100430163757_create_events.rb"},
22
+ {:from => %w(db migrate),:to => %w(db migrate), :filename => "20100501234548_add_color_to_events.rb"},
23
+ {:from => %w(db migrate),:to => %w(db migrate), :filename => "20100502004451_add_all_day_to_events.rb"},
24
+ {:from => %w(public javascripts),:to => %w(public javascripts), :filename => "event_calendar.js"},
25
+ {:from => %w(public stylesheets),:to => %w(public stylesheets), :filename => "event_calendar.css"},
26
+ ]
27
+ copies.each do |copy|
28
+ copy_from = events_root.join(copy[:from].join(File::SEPARATOR), copy[:filename])
29
+ copy_to = rails_root.join(copy[:to].join(File::SEPARATOR), copy[:filename])
30
+ unless copy_to.exist?
31
+ FileUtils::copy_file copy_from.to_s, copy_to.to_s
32
+ else
33
+ puts "'#{File.join copy[:to], copy[:filename]}' already existed in your application so your existing file was not overwritten."
34
+ end
35
+ end
36
+
37
+ puts "---------"
38
+ puts "Copied all refinerycms-events files."
39
+ puts "Now, run rake db:migrate"
40
+ else
41
+ puts "Please specify the path of the project that you want to use the events with, i.e. refinerycms-events-install /path/to/project"
42
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,7 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+ map.resources :events
3
+
4
+ map.namespace(:admin) do |admin|
5
+ admin.resources :events
6
+ end
7
+ end
@@ -0,0 +1,46 @@
1
+ class CreateEvents < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :events do |t|
5
+ t.string :title
6
+ t.text :description
7
+ t.string :location
8
+ t.datetime :start_at
9
+ t.datetime :end_at
10
+ t.integer :position
11
+
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :events, :id
16
+
17
+ User.find(:all).each do |user|
18
+ user.plugins.create(:title => "Events", :position => (user.plugins.maximum(:position) || -1) +1)
19
+ end
20
+
21
+ page = Page.create(
22
+ :title => "Events",
23
+ :link_url => "/events",
24
+ :deletable => false,
25
+ :position => ((Page.maximum(:position, :conditions => "parent_id IS NULL") || -1)+1),
26
+ :menu_match => "^/events(\/|\/.+?|)$"
27
+ )
28
+ RefinerySetting.find_or_set(:default_page_parts, ["Body", "Side Body"]).each do |default_page_part|
29
+ page.parts.create(:title => default_page_part, :body => nil)
30
+ end
31
+ end
32
+
33
+ def self.down
34
+ UserPlugin.destroy_all({:title => "Events"})
35
+
36
+ Page.find_all_by_link_url("/events").each do |page|
37
+ page.link_url, page.menu_match = nil
38
+ page.deletable = true
39
+ page.destroy
40
+ end
41
+ Page.destroy_all({:link_url => "/events"})
42
+
43
+ drop_table :events
44
+ end
45
+
46
+ end
@@ -0,0 +1,9 @@
1
+ class AddColorToEvents < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :events, :color, :string, :length => 16, :default => 'black'
4
+ end
5
+
6
+ def self.down
7
+ remove_column :events, :color
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class AddAllDayToEvents < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :events, :all_day, :boolean, :default => nil
4
+ end
5
+
6
+ def self.down
7
+ remove_column :events, :all_day
8
+ end
9
+ end
@@ -0,0 +1,49 @@
1
+ /*
2
+ * Smart event highlighting
3
+ * Handles for when events span rows, or don't have a background color
4
+ */
5
+ Event.observe(window, "load", function() {
6
+ var highlight_color = "#2EAC6A";
7
+
8
+ // highlight events that have a background color
9
+ $$(".ec-event-bg").each(function(ele) {
10
+ ele.observe("mouseover", function(evt) {
11
+ event_id = ele.readAttribute("data-event-id");
12
+ $$(".ec-event-"+event_id).each(function(el) {
13
+ el.setStyle({ backgroundColor: highlight_color });
14
+ });
15
+ });
16
+ ele.observe("mouseout", function(evt) {
17
+ event_color = ele.readAttribute("data-color");
18
+ event_id = ele.readAttribute("data-event-id");
19
+ $$(".ec-event-"+event_id).each(function(el) {
20
+ el.setStyle({ backgroundColor: event_color });
21
+ });
22
+ });
23
+ });
24
+
25
+ // highlight events that don't have a background color
26
+ $$(".ec-event-no-bg").each(function(ele) {
27
+ ele.observe("mouseover", function(evt) {
28
+ ele.setStyle({ color: "white" });
29
+ ele.select("a").each(function(link) {
30
+ link.setStyle({ color: "white" });
31
+ });
32
+ ele.select(".ec-bullet").each(function(bullet) {
33
+ bullet.setStyle({ backgroundColor: "white" });
34
+ });
35
+ ele.setStyle({ backgroundColor: highlight_color });
36
+ });
37
+ ele.observe("mouseout", function(evt) {
38
+ event_color = ele.readAttribute("data-color");
39
+ ele.setStyle({ color: event_color });
40
+ ele.select("a").each(function(link) {
41
+ link.setStyle({ color: event_color });
42
+ });
43
+ ele.select(".ec-bullet").each(function(bullet) {
44
+ bullet.setStyle({ backgroundColor: event_color });
45
+ });
46
+ ele.setStyle({ backgroundColor: "transparent" });
47
+ });
48
+ });
49
+ });
@@ -0,0 +1,233 @@
1
+ /*
2
+ Event Calendar stylesheet
3
+
4
+ Colors:
5
+ #d5d5d5 - border (gray)
6
+ #303030 - day names bg (gray)
7
+ #444 - number (gray)
8
+ #ecede2 - day header bg (light tan)
9
+ ##d7d7ba - today header bg (tan)
10
+ #ffffdd - today bg light (yellow)
11
+ #777 - other month number (gray)
12
+ #efefef - other month day header (gray)
13
+ #2eac6a - hover (green)
14
+ */
15
+
16
+ /* Outer most container */
17
+ .ec-calendar {
18
+ font-family: verdana, arial, helvetica, sans-serif;
19
+ font-size: 11px;
20
+ line-height: 14px;
21
+ margin: 0;
22
+ padding: 0;
23
+ border-bottom: 1px solid #d5d5d5;
24
+ }
25
+
26
+ /* Month name header & links */
27
+ .ec-calendar-header {
28
+ padding: 5px 0;
29
+ width: 100%;
30
+ table-layout: fixed;
31
+ }
32
+
33
+ .ec-month-name {
34
+ font-size: 16px;
35
+ font-weight: bold;
36
+ }
37
+
38
+ .ec-month-nav {
39
+
40
+ }
41
+
42
+ /* Containers */
43
+ .ec-body {
44
+ position: relative;
45
+ border-right: 1px solid #303030;
46
+ white-space: nowrap;
47
+ }
48
+
49
+ /* Day names */
50
+ .ec-day-names {
51
+ position: absolute;
52
+ top: 0;
53
+ left: 0;
54
+ width: 100%;
55
+ table-layout: fixed;
56
+ padding: 2px 0;
57
+ background: #303030;
58
+ color: white;
59
+ }
60
+
61
+ .ec-day-name {
62
+ font-weight: normal;
63
+ }
64
+
65
+ /* Rows container and Row */
66
+ .ec-rows {
67
+ position: absolute;
68
+ left: 0;
69
+ bottom: 0;
70
+ width: 100%;
71
+ background: white;
72
+ overflow: hidden;
73
+ border-right: 1px solid #d5d5d5;
74
+ }
75
+
76
+ .ec-row {
77
+ position: absolute;
78
+ left: 0;
79
+ width: 100%;
80
+ overflow: hidden;
81
+ }
82
+
83
+ /* Background */
84
+ .ec-row-bg {
85
+ position: absolute;
86
+ top: 0;
87
+ left: 0;
88
+ height: 100%;
89
+ width: 100%;
90
+ table-layout: fixed;
91
+ }
92
+
93
+ .ec-day-bg {
94
+ border-left: 1px solid #d5d5d5;
95
+ }
96
+
97
+ .ec-today-bg {
98
+ background-color: #ffffdd;
99
+ }
100
+
101
+ .ec-row-table {
102
+ position: relative;
103
+ width: 100%;
104
+ table-layout: fixed;
105
+ }
106
+
107
+ /* Day header */
108
+ .ec-day-header {
109
+ color: #444;
110
+ text-align: right;
111
+ padding: 0 5px;
112
+ line-height: 16px;
113
+ border-top: 1px solid #d5d5d5;
114
+ border-left: 1px solid #d5d5d5;
115
+ border-bottom: 1px dotted #bbbbbb;
116
+ background-color: #ecede2;
117
+ overflow: hidden;
118
+ }
119
+
120
+ a.ec-day-link {
121
+ color: #444;
122
+ }
123
+
124
+ .ec-today-header {
125
+ background-color: #d7d7ba;
126
+ }
127
+
128
+ .ec-weekend-day-header {
129
+
130
+ }
131
+
132
+ .ec-other-month-header {
133
+ background-color: #efefef;
134
+ color: #777;
135
+ }
136
+
137
+
138
+ /* Event cell and container */
139
+ .ec-event-cell {
140
+ cursor: pointer;
141
+ vertical-align: top;
142
+ padding-right: 1px;
143
+ padding-left: 2px;
144
+ }
145
+
146
+ .ec-event-cell a {
147
+ text-decoration: none;
148
+ display: block;
149
+ width: 100%;
150
+ height: 100%;
151
+ }
152
+
153
+ .ec-no-event-cell {
154
+ cursor: default;
155
+ }
156
+
157
+ .ec-event {
158
+ color: white;
159
+ padding-right: 1px;
160
+ padding-left: 11px;
161
+ -webkit-border-radius: 3px;
162
+ -khtml-border-radius: 3px;
163
+ -moz-border-radius: 3px;
164
+ overflow: hidden;
165
+ white-space: nowrap;
166
+ }
167
+
168
+ .ec-event :hover {
169
+ /* doesn't look as good as js highlighting */
170
+ /* background-color: #2eac6a; */
171
+ }
172
+
173
+ .ec-event-bg a {
174
+ color: white;
175
+ }
176
+
177
+ /* used to distinguish non-all_day events */
178
+ .ec-event-no-bg {
179
+ position: relative;
180
+ /* padding-left: 5px; */
181
+ }
182
+
183
+ .ec-event-no-bg a {
184
+ /* isn't implemented in all browsers */
185
+ color: inherit;
186
+ }
187
+
188
+ .ec-event-time {
189
+ font-size: 85%;
190
+ font-weight: bold;
191
+ padding-right: 3px;
192
+ }
193
+
194
+
195
+ /* Left and right arrows */
196
+ /* Doesn't work in IE6, use bg images instead */
197
+ .ec-left-arrow, .ec-right-arrow {
198
+ position: relative;
199
+ top: 3px;
200
+ width: 0;
201
+ height: 0;
202
+ font-size: 0;
203
+ line-height: 0;
204
+ margin-bottom: -8px;
205
+ border-top: 4px solid transparent;
206
+ border-bottom: 4px solid transparent;
207
+ }
208
+
209
+ .ec-left-arrow {
210
+ margin-left: -7px;
211
+ margin-right: auto;
212
+ border-right: 4px solid white;
213
+ }
214
+
215
+ .ec-right-arrow {
216
+ margin-left: auto;
217
+ margin-right: 3px;
218
+ border-left: 4px solid white;
219
+ }
220
+
221
+ /* remove this to not have a bullet */
222
+ /* don't look as good in ie */
223
+ .ec-bullet {
224
+ position: absolute;
225
+ top: 7px;
226
+ width: 4px;
227
+ height: 4px;
228
+ margin-left: -7px;
229
+ margin-right: auto;
230
+ -webkit-border-radius: 2px;
231
+ -khtml-border-radius: 2px;
232
+ -moz-border-radius: 2px;
233
+ }
data/rails/init.rb ADDED
@@ -0,0 +1,10 @@
1
+ Refinery::Plugin.register do |plugin|
2
+ plugin.title = "Events"
3
+ plugin.description = "Manage Events"
4
+ plugin.version = 1.0
5
+ plugin.activity = {
6
+ :class => ::Event,
7
+ :url_prefix => "edit",
8
+ :title => 'title'
9
+ }
10
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: refinerycms-events
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - SemanticGap
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-05-07 00:00:00 -04:00
13
+ default_executable: refinerycms-events-install
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: nayutaya-active-form
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: elevation_event_calendar
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: A really straightforward open source Ruby on Rails events plugin designed for integration with RefineryCMS.
36
+ email: info@semanticgap.com
37
+ executables:
38
+ - refinerycms-events-install
39
+ extensions: []
40
+
41
+ extra_rdoc_files: []
42
+
43
+ files:
44
+ - db/migrate/20100430163757_create_events.rb
45
+ - db/migrate/20100501234548_add_color_to_events.rb
46
+ - db/migrate/20100502004451_add_all_day_to_events.rb
47
+ - app/models/calendar.rb
48
+ - app/models/event.rb
49
+ - app/controllers/events_controller.rb
50
+ - app/controllers/admin/events_controller.rb
51
+ - app/helpers/calendars_helper.rb
52
+ - app/views/events/index.html.erb
53
+ - app/views/events/show.html.erb
54
+ - app/views/events/_event_list.html.erb
55
+ - app/views/admin/events/_event.html.erb
56
+ - app/views/admin/events/_form.html.erb
57
+ - app/views/admin/events/_sortable_list.html.erb
58
+ - app/views/admin/events/edit.html.erb
59
+ - app/views/admin/events/index.html.erb
60
+ - app/views/admin/events/new.html.erb
61
+ - config/routes.rb
62
+ - public/stylesheets/event_calendar.css
63
+ - public/javascripts/event_calendar.js
64
+ - rails/init.rb
65
+ - bin/refinerycms-events-install
66
+ has_rdoc: true
67
+ homepage: http://github.com/semanticgap/refinerycms-events
68
+ licenses: []
69
+
70
+ post_install_message:
71
+ rdoc_options: []
72
+
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: "0"
80
+ version:
81
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: "0"
86
+ version:
87
+ requirements: []
88
+
89
+ rubyforge_project:
90
+ rubygems_version: 1.3.5
91
+ signing_key:
92
+ specification_version: 3
93
+ summary: Ruby on Rails events plugin for RefineryCMS.
94
+ test_files: []
95
+