Sha256: 5d0b938fded9a5432ff6ed842527b406ccdb0748511941cae0334420cd364b9e

Contents?: true

Size: 932 Bytes

Versions: 1

Compression:

Stored size: 932 Bytes

Contents

require 'dm-serializer'
module Ixtlan
  module Models
    class Domain
      include DataMapper::Resource

      def self.default_storage_name
        "Domain"
      end

      unless const_defined? "ALL"
        ALL = "ALL"
      end

      property :id, Serial
      property :name, String, :required => true , :format => /^[a-z]+$|^#{ALL}$/, :length => 32, :unique_index => true

      timestamps :created_at

      modified_by Models::USER, :created_by

      def self.every
        first(:name => ALL)
      end

      def self.first_or_get!(id_or_name)
        first(:name => id_or_name) || get!(id_or_name)
      end

      def self.first_or_get(id_or_name)
        first(:name => id_or_name) || get(id_or_name)
      end

      def hash
        attribute_get(:name).hash
      end

      alias :eql? :==
        def ==(other)
          attribute_get(:name).eql?(other.attribute_get(:name))
        end
      end
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ixtlan-0.3.0 lib/ixtlan/models/domain.rb