Sha256: f2a681b9e630eda33ca9fb93c02556ad08652d0a8938a847dcae3e34a4b41567

Contents?: true

Size: 823 Bytes

Versions: 1

Compression:

Stored size: 823 Bytes

Contents

module SimplePages
  class Page < ActiveRecord::Base
    self.table_name = SimplePages.page_table_name

    attr_accessible :title, :excerpt, :content, :published_at, :layout_at

    validates :url, presence: true
    validates :title, presence: true

    acts_as_url :title

    scope :published, lambda { where('published_at <= ?', Time.zone.now) }
    scope :layout_at, lambda { |location| where(layout_at: location) }

    class << self
      def find_or_create_by_url(attrs)
        url = attrs.delete :url
        page = where(url: url).first
        if page.nil?
          page = create(attrs)
          page.url = url
          page.save
        end
        page
      end
    end

    def to_param
      url
    end

    SimplePages.page_modules.each do |module_class|
      include module_class
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple-pages-rails-0.1.0 app/models/simple_pages/page.rb