Sha256: 52a08182b277dc147bbc0ce83ef9c6afe976d48f0f488848df161aa0d3badb98

Contents?: true

Size: 934 Bytes

Versions: 30

Compression:

Stored size: 934 Bytes

Contents

# TODO Add base settings to validation
# model = window.model

# TODO implement method
# model[resource].validators_on 'field' # Get all validators related to this field

validations = require '../validatable'
stampit     = require '../../../vendor/stampit'

typeable = stampit
  validate_each: (record, attribute, value) ->
    # TODO store type on validator instantiation
    @type ||= model[record.resource.toString()][attribute]

    if value

      if value instanceof @type

        # TODO store type_name on costructor
        @type_name ||= @type.name

        unless value.valid # Will trigger validation
          record.errors.add attribute, 'type', type_name: @type_name?

      else
        throw new Error "Invalid attribute value type! Found #{typeof value} expected #{@type.name}"


composed = stampit.compose require('./validatorable'), typeable
composed.definition_key = 'validates_type_of'
module.exports = composed

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
ende-0.4.9 vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee
ende-0.4.8 vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee
ende-0.4.7 vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee
ende-0.4.6 vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee
ende-0.4.5 vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee
ende-0.4.4 vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee
ende-0.4.3 vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee
ende-0.4.2 vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee
ende-0.4.1 vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee
ende-0.4.0 vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee