No commit activity in last 3 years
No release in over 3 years
Calendar with event that uses many models
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Project Readme

Travis CI Code Climate Dependency Status

EventCal

EventCal is a calendar with events on it.

You can easily

  • create and display many kinds of events
  • customize how events displayed
  • integrate events with existing model

Use EventCal

gem 'event_cal', github: 'shin1ohno/event_cal'
  1. create calendar instance in controller and call render_monthly(@calendar) in view. simple sample code is below. only with this step, you basically can get calendar view
  2. create event class that extends ::EventCal::Events
  3. create partial for each event. with sptep 2 and 3 it's automatically shown in calendar view

sample/app_*** directory contains sample rails application that shows how you do. This sample runs as normal rails application.

class MyCalendarController < ApplicationController
  def index
    @calendar = ::EventCal::Calendar.new(Date.today)
  end

  def show
    date = Date.parse("#{params[:year]}-#{params[:month]}-#{params[:date]}")
    @calendar = ::EventCal::Calendar.new(date)
  end
end
.calendar_view
  = render_monthly(@calendar)
  = render_event_details(@calendar.events) # if you need event details view
# typically, you may want to draw routes like this
App3211::Application.routes.draw do
  resources :my_calendar do
    collection do
      get ':year/:month/:date' => 'my_calendar#show', :constraints => { :year => /\d{4}/, :month => /\d{1,2}/, :day => /\d{1,2}/ }
    end
  end
end

you can use default style for 7days * 4~5 weeks calendar

/*
 in application.css... add sprockets manifest like
 *= require_self
 *= require event_cal
 *= require_tree .
 */

you can use basic event detail selector implemented in JavaScript with Spine.js

// in application.js... add sprockets manifest like
//= require jquery
//= require jquery_ujs
//= require event_cal
//= require_tree .
// and then initialize like this...

jQuery(function($) {
  var baseDatelement;
  CalendarApplication.initialize();
  baseDatelement = CalendarDate.findByAttribute('date', $('.calendar').data('base-date')).element;
  if (baseDatelement.hasClass('has_events')) {
    return baseDatelement.click();
  }
});

Develop EventCal

running tests

bundle exec rake runs all examples

bundle first. bundle exec tork then hit a to run all rspec examples. bundle exec guard then hit return to run all jasmine expamples

Thanks

License

This project uses MIT-LICENSE.