Sha256: b35951864221d7f83390a50b7c537c5b9616565db99f962681cdf848bfd2515c
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
# encoding: utf-8 module Sunrise module Models module Structure def self.included(base) base.send :include, InstanceMethods base.send :extend, ClassMethods end module ClassMethods 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 def find_by_permalink(value) value.to_s.is_int? ? find(value) : where(:slug => value.to_s).first end end module InstanceMethods def moveable? return true if new_record? !root? end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sunrise-core-0.1.5 | lib/sunrise/models/structure.rb |
sunrise-core-0.1.4 | lib/sunrise/models/structure.rb |