module Integral::ActsAsIntegral

Handles adding Integral behaviour to a class

Constants

DEFAULT_OPTIONS

Attributes

backend_at_a_glance_card_items[W]
backend_create_menu_items[W]
backend_main_menu_items[W]

Public Class Methods

add_backend_at_a_glance_card_item(item) click to toggle source

Adds item to main backend dashboard at a glance chart @param [Class] item

# File lib/integral/acts_as_integral.rb, line 31
def self.add_backend_at_a_glance_card_item(item)
  backend_at_a_glance_card_items << item unless duplicate_menu_item?(item, backend_at_a_glance_card_items)
end
add_backend_create_menu_item(item) click to toggle source

Adds item to create menu, expects Hash or Class

# File lib/integral/acts_as_integral.rb, line 36
def self.add_backend_create_menu_item(item)
  backend_create_menu_items << item unless duplicate_menu_item?(item, backend_create_menu_items)
end
add_backend_main_menu_item(item) click to toggle source

Adds item to main menu, expects Hash or Class

# File lib/integral/acts_as_integral.rb, line 41
def self.add_backend_main_menu_item(item)
  backend_main_menu_items << item unless duplicate_menu_item?(item, backend_main_menu_items)
end
backend_at_a_glance_card_items() click to toggle source

Accessor for at a glance card items

# File lib/integral/acts_as_integral.rb, line 25
def self.backend_at_a_glance_card_items
  @backend_at_a_glance_card_items ||= []
end
backend_create_menu_items() click to toggle source

Accessor for backend create menu items

# File lib/integral/acts_as_integral.rb, line 20
def self.backend_create_menu_items
  @backend_create_menu_items ||= []
end
backend_main_menu_items() click to toggle source

Accessor for backend main menu items

# File lib/integral/acts_as_integral.rb, line 15
def self.backend_main_menu_items
  @backend_main_menu_items ||= []
end
duplicate_menu_item?(item, menu) click to toggle source

Checks for existing duplicates in menu. Useful in development when app reloads

# File lib/integral/acts_as_integral.rb, line 46
def self.duplicate_menu_item?(item, menu)
  duplicate_found = if item.class == Class
                      menu.map(&:to_s).include?(item.to_s)
                    else
                      menu.select { |item| item.is_a?(Hash) }.map {|item| item[:id] }.include?(item[:id])
                    end

  if duplicate_found
    Rails.logger.error("ActsAsIntegral: Item '#{item.to_s}' not added to menu as it already exists.")
    true
  else
    false
  end
end