Sha256: 87a66ba0f2d7df23551c61228b155d4b36e384982f37ee48085f530d82b15391

Contents?: true

Size: 1.04 KB

Versions: 14

Compression:

Stored size: 1.04 KB

Contents

module Discerner
  module Methods
    module Models
      module ParameterType
        def self.included(base)
          base.send :include, SoftDelete

          # Associations
          base.send :has_many,                :parameters,  inverse_of: :parameter_type
          base.send :has_and_belongs_to_many, :operators,   join_table: :discerner_operators_parameter_types

          # Validations
          base.send :validates, :name, presence: true, uniqueness: {message: "for parameter type has already been taken"}
          base.send :validate,  :name_supported?
        end

        # Instance Methods
        def initialize(*args)
          super(*args)
        end

        def name_supported?
          return if self.name.blank?
          supported_types = ['numeric', 'date', 'list', 'combobox', 'text', 'string', 'search']
          errors.add(:base,"Parameter type '#{self.name}' is not supported, please use one of the following types: #{supported_types.join(', ')}") unless supported_types.include?(self.name)
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
discerner-2.0.14 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.13 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.12 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.11 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.10 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.9 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.8 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.7 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.6 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.5 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.4 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.3 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.2 lib/discerner/methods/models/parameter_type.rb
discerner-2.0.1 lib/discerner/methods/models/parameter_type.rb