Module: Sunrise::Models::Structure::ClassMethods

Defined in:
lib/sunrise/models/structure.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/sunrise/models/structure.rb', line 11

def self.extended(base)
  base.send(:include, Utils::Header)
  base.class_eval do
    enumerated_attribute :structure_type, :id_attribute => :kind
    enumerated_attribute :position_type, :id_attribute => :position
    
    validates_presence_of :title
    validates_numericality_of :position, :only_integer => true
    
    has_one :page, :dependent => :destroy
    
    acts_as_nested_set
    set_callback :move, :after, :update_depth
    
    scope :visible, where(:is_visible => true)
    scope :with_kind, proc {|structure_type| where(:kind => structure_type.id) }
    scope :with_depth, proc {|level| where(:depth => level.to_i) }
    scope :with_position, proc {|position_type| where(:position => position_type.id) }
  end
end

Instance Method Details



32
33
34
# File 'lib/sunrise/models/structure.rb', line 32

def find_by_permalink(value)
  value.to_s.is_int? ? find(value) : where(:slug => value.to_s).first
end