Module: Integral::ActsAsIntegral
- Defined in:
- lib/integral/acts_as_integral.rb
Overview
Handles adding Integral behaviour to a class
Constant Summary collapse
- DEFAULT_OPTIONS =
{ notifications: { enabled: true }, cards: { at_a_glance: true, }, backend_main_menu: { enabled: true, order: 11 }, backend_create_menu: { enabled: true, order: 1 }}.freeze
Class Attribute Summary collapse
-
.backend_at_a_glance_card_items ⇒ Object
Accessor for at a glance card items.
-
.backend_create_menu_items ⇒ Object
Accessor for backend create menu items.
-
.backend_main_menu_items ⇒ Object
Accessor for backend main menu items.
Class Method Summary collapse
-
.add_backend_at_a_glance_card_item(item) ⇒ Object
Adds item to main backend dashboard at a glance chart.
-
.add_backend_create_menu_item(item) ⇒ Object
Adds item to create menu, expects Hash or Class.
-
.add_backend_main_menu_item(item) ⇒ Object
Adds item to main menu, expects Hash or Class.
-
.duplicate_menu_item?(item, menu) ⇒ Boolean
Checks for existing duplicates in menu.
Class Attribute Details
.backend_at_a_glance_card_items ⇒ Object
Accessor for at a glance card items
25 26 27 |
# 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 ⇒ Object
Accessor for backend create menu items
20 21 22 |
# File 'lib/integral/acts_as_integral.rb', line 20 def self. @backend_create_menu_items ||= [] end |
.backend_main_menu_items ⇒ Object
Accessor for backend main menu items
15 16 17 |
# File 'lib/integral/acts_as_integral.rb', line 15 def self. @backend_main_menu_items ||= [] end |
Class Method Details
.add_backend_at_a_glance_card_item(item) ⇒ Object
Adds item to main backend dashboard at a glance chart
31 32 33 |
# 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 (item, backend_at_a_glance_card_items) end |
.add_backend_create_menu_item(item) ⇒ Object
Adds item to create menu, expects Hash or Class
36 37 38 |
# File 'lib/integral/acts_as_integral.rb', line 36 def self.(item) << item unless (item, ) end |
.add_backend_main_menu_item(item) ⇒ Object
Adds item to main menu, expects Hash or Class
41 42 43 |
# File 'lib/integral/acts_as_integral.rb', line 41 def self.(item) << item unless (item, ) end |
.duplicate_menu_item?(item, menu) ⇒ Boolean
Checks for existing duplicates in menu. Useful in development when app reloads
46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/integral/acts_as_integral.rb', line 46 def self.(item, ) duplicate_found = if item.class == Class .map(&:to_s).include?(item.to_s) else .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 |