Sha256: 9cfb9b29c60833fda2fa596f1ff52d3d58e4545e2339b91b55e0b0afe58c202e

Contents?: true

Size: 1.12 KB

Versions: 10

Compression:

Stored size: 1.12 KB

Contents

# -*- encoding : utf-8 -*-
require 'mdwa/generators'

module MDWA
  module DSL

    class EntityAttribute
      
      attr_accessor :entity, :name, :type, :default
      
      ACCEPTED_TYPES = MDWA::Generators::ModelAttribute::STATIC_TYPES
      
      def initialize(entity)
        self.entity = entity
        self.default = false
      end
      
      def raise_errors_if_invalid!
        if !valid?
          raise "Invalid entity attribute: name is blank" if self.name.blank?
          raise "Invalid entity attribute: '#{name}' - type is blank" if self.type.blank?
          raise "Invalid entity attribute: '#{name}' - type '#{type}' is invalid" if self.type_invalid?
          raise "Invalid entity attribute: '#{name}' - entity is nil" if self.entity.blank?
        end
      end
      
      def valid?
        !entity.nil? and !name.blank? and !type.blank? and !type_invalid?
      end
      
      def type_invalid?
        !ACCEPTED_TYPES.include?( self.type.to_sym )
      end
      
      def default?
        self.default
      end
      
      def generate
        "#{name}:#{type}"
      end
      
    end
    
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
mdd-3.0.15 lib/mdwa/dsl/entity_attribute.rb
mdd-3.0.14 lib/mdwa/dsl/entity_attribute.rb
mdd-3.0.13 lib/mdwa/dsl/entity_attribute.rb
mdd-3.0.10 lib/mdwa/dsl/entity_attribute.rb
mdd-3.0.9 lib/mdwa/dsl/entity_attribute.rb
mdd-3.0.8 lib/mdwa/dsl/entity_attribute.rb
mdd-3.0.7 lib/mdwa/dsl/entity_attribute.rb
mdd-3.0.6 lib/mdwa/dsl/entity_attribute.rb
mdd-3.0.4 lib/mdwa/dsl/entity_attribute.rb
mdd-3.0.3 lib/mdwa/dsl/entity_attribute.rb