Module: ScribbleCms::ScribblerElementSetup
- Included in:
- ScribblerImage, ScribblerLink, ScribblerText, ScribblerVar
- Defined in:
- lib/scribble_cms/scribbler_element_setup.rb
Class Method Summary collapse
Instance Method Summary collapse
- #check_uniqueness ⇒ Object
- #element_type ⇒ Object
- #hint ⇒ Object
- #human_name ⇒ Object
- #searchable_content ⇒ Object
Class Method Details
.included(base) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/scribble_cms/scribbler_element_setup.rb', line 4 def self.included(base) base.send(:belongs_to, :group, :class_name => "ScribblerGroup", :foreign_key => "group_id", :touch => true) base.send(:validates_presence_of, :group_id) base.send(:before_save, :check_uniqueness) base.send(:smart_search, :on => [ {:field_name => :human_name, :boost => 0.7}, {:field_name => "group.human_name", :boost => 0.5}, {:field_name => :searchable_content, :boost => 1} ], :conditions => "released = 1" ) end |
Instance Method Details
#check_uniqueness ⇒ Object
17 18 19 20 |
# File 'lib/scribble_cms/scribbler_element_setup.rb', line 17 def check_uniqueness items = self.class.where(:name => self.name, :group_id => self.group_id, :released => self.released) items.empty? || items.size == 1 end |
#element_type ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/scribble_cms/scribbler_element_setup.rb', line 22 def element_type if self.is_a?(ScribblerLink) return :link elsif self.is_a?(ScribblerText) && self.plain return :row elsif self.is_a?(ScribblerText) && !self.plain return :text elsif self.is_a?(ScribblerImage) return :image elsif self.is_a?(ScribblerVar) return :var end end |
#hint ⇒ Object
59 60 61 62 |
# File 'lib/scribble_cms/scribbler_element_setup.rb', line 59 def hint h = I18n.t(self.name, :scope => "scribbler.element_hints.#{self.group.name}", :default => "") h.is_a?(Array) ? h.join("") : h end |
#human_name ⇒ Object
49 50 51 52 53 54 55 56 57 |
# File 'lib/scribble_cms/scribbler_element_setup.rb', line 49 def human_name s = "scribbler.element_names.#{self.group.name}.#{self.name}" if I18n.exists?(s) I18n.t(s) else I18n.t(self.name, scope: "scribbler.element_names_default") end end |
#searchable_content ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/scribble_cms/scribbler_element_setup.rb', line 36 def searchable_content case self.element_type when :link return [name, url, title] when :row return content when :text return content when :image when :var end end |