Sha256: de9a8a8a0754fb2ec0d33860d846c9e7111922d3e43bcb7f6489ee90b6541d83

Contents?: true

Size: 981 Bytes

Versions: 3

Compression:

Stored size: 981 Bytes

Contents

module Categories
  #:nodoc:
  module Model
    ##
    # Model for managing and retrieving categories.
    #
    # @since  0.1
    #
    class Category < Sequel::Model
      include Zen::Model::Helper

      many_to_one :category_group, :class => 'Categories::Model::CategoryGroup'
      many_to_one :parent        , :class => self

      plugin :sluggable, :source => :name, :frozen => false

      ##
      # Searches for a set of category groups using the specified search query.
      #
      # @since  16-10-2011
      # @param  [String] query The search query.
      # @return [Mixed]
      #
      def self.search(query)
        return filter(search_column(:name, query))
      end

      ##
      # Validates the model.
      #
      # @since  0.1
      #
      def validate
        validates_presence([:name, :category_group_id])
        validates_max_length(255, [:name, :slug])
        validates_unique(:slug)
      end
    end # Category
  end # Model
end # Categories

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
zen-0.3 lib/zen/package/categories/lib/categories/model/category.rb
zen-0.3b1 lib/zen/package/categories/lib/categories/model/category.rb
zen-0.3b lib/zen/package/categories/lib/categories/model/category.rb