Class: ActsAsFullCalendarEvent::Calendar
- Inherits:
-
Object
- Object
- ActsAsFullCalendarEvent::Calendar
- Defined in:
- lib/acts_as_full_calendar_event/services/calendar.rb
Instance Attribute Summary collapse
-
#items ⇒ Object
readonly
Returns the value of attribute items.
Instance Method Summary collapse
- #available_categories ⇒ Object
- #filter ⇒ Object
-
#initialize(params:) ⇒ Calendar
constructor
A new instance of Calendar.
Constructor Details
#initialize(params:) ⇒ Calendar
Returns a new instance of Calendar.
6 7 8 9 10 11 12 |
# File 'lib/acts_as_full_calendar_event/services/calendar.rb', line 6 def initialize(params:) @user_id = params[:user_id] if params.has_key?(:user_id) @categories = JSON.parse(params[:categories] || '{}') @start_date = params[:start] @end_date = params[:end] @custom_filter = params[:custom_filter] end |
Instance Attribute Details
#items ⇒ Object (readonly)
Returns the value of attribute items.
3 4 5 |
# File 'lib/acts_as_full_calendar_event/services/calendar.rb', line 3 def items @items end |
Instance Method Details
#available_categories ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/acts_as_full_calendar_event/services/calendar.rb', line 36 def available_categories categories = [] item_classes.each do |item_class| categories << item_class.calendar_items_categories end categories.flatten end |
#filter ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/acts_as_full_calendar_event/services/calendar.rb', line 14 def filter @items = [] item_classes.each do |item_class| byebug items = item_class.calendar_items items = filter_by_category(items, item_class) if has_categories_filter? items = filter_by_date(items) items = filter_by_user(items) if has_user_filter? if custom_filter.present? custom_filter.keys.each do |filter| items = items.where(filter => custom_filter[filter]) end end @items << items end items.flatten end |