Sha256: 198475513b29ae7d9b6990048652c0b400f3ad4334905e7d1a2aaba9c615b5e8

Contents?: true

Size: 1.44 KB

Versions: 3

Compression:

Stored size: 1.44 KB

Contents

module CustomFields
  #:nodoc:
  module Model
    ##
    # Model for managing retrieving custom fields.
    #
    # @since  0.1
    #
    class CustomField < Sequel::Model
      include Zen::Model::Helper

      one_to_many :custom_field_values,
        :class => "CustomFields::Model::CustomFieldValue"

      many_to_one :custom_field_type,
        :class => 'CustomFields::Model::CustomFieldType',
        :eager => [:custom_field_method]

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

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

      ##
      # Validates rules used whenever the model is created or saved.
      #
      # @since  0.1
      #
      def validate
        validates_presence([
          :name,
          :format,
          :custom_field_group_id,
          :custom_field_type_id
        ])

        validates_max_length(255, [:name, :slug])
        validates_type(TrueClass, [:required, :text_editor])

        validates_integer([
          :sort_order,
          :textarea_rows,
          :text_limit,
          :custom_field_group_id,
          :custom_field_type_id
        ])

        validates_presence(:slug) unless new?
        validates_unique(:slug)
      end
    end # CustomField
  end # Model
end # CustomFields

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
zen-0.3 lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb
zen-0.3b1 lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb
zen-0.3b lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb