Sha256: 485688ad70bf1fd2c5279d6c9bed22489b1a6051678e3e04ebf4f6b3881c76ad

Contents?: true

Size: 1.29 KB

Versions: 15

Compression:

Stored size: 1.29 KB

Contents

module Gluttonberg
  class AssetCategory < ActiveRecord::Base
      self.table_name = "gb_asset_categories"
      has_many :asset_types , :class_name => "AssetType"
      has_many :assets, :through => :asset_types

      validates_uniqueness_of :name
      validates_presence_of :name
      attr_accessible :name , :unknown

      def self.method_missing(methId, *args)
        method_info = methId.id2name.split('_')
        if method_info.length == 2 then
          if method_info[1] == 'category' then
            cat_name = method_info[0]
            if cat_name then
              return find(:first , :conditions => "name = '#{cat_name}'")
            end
          end
        end
      end

      def self.build_defaults
        # Ensure the default categories exist in the database.
        ensure_exists('audio', false)
        ensure_exists('image', false)
        ensure_exists('video', false)
        ensure_exists('document', false)
        ensure_exists(Library::UNCATEGORISED_CATEGORY, true)
      end

      private

      def self.ensure_exists(name, unknown)
        cat = find(:first , :conditions => "name = '#{name}'")
        if cat then
          cat.unknown = unknown
          cat.save
        else
          cat = create(:name => name, :unknown => unknown)
        end
      end

  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
gluttonberg-core-2.6.4 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.6.3 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.6.2 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.6.1 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.6.0 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.5.9 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.5.8 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.5.7 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.5.6 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.5.5 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.5.4 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.5.3 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.5.2 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.5.1 app/models/gluttonberg/asset_category.rb
gluttonberg-core-2.5 app/models/gluttonberg/asset_category.rb