Sha256: df8232a085710a9fa4c285660140c303b4ef3ebcd37ccbc78367589adcf881a9

Contents?: true

Size: 869 Bytes

Versions: 15

Compression:

Stored size: 869 Bytes

Contents

module Schematic
  module Generator
    class ColumnValidator
      attr_reader :klass, :column

      def initialize(klass, column)
        @klass = klass
        @column = column
      end

      def for_validator(validator_klass)
        validators_for_column.each do |column_validation|
          next unless column_validation.is_a? validator_klass
          has_conditional_proc = !column_validation.options[:if].nil? || !column_validation.options[:unless].nil?
          force_inclusion = column_validation.options[:xsd] && column_validation.options[:xsd][:include]
          next if has_conditional_proc && !force_inclusion
          yield(column_validation)
          return
        end
      end

      def validators_for_column
        return [] unless klass.respond_to?(:_validators)
        klass._validators[column.name.to_sym]
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
schematic-0.7.1 lib/schematic/generator/column_validator.rb
schematic-0.7.0 lib/schematic/generator/column_validator.rb
schematic-0.6.2 lib/schematic/generator/column_validator.rb
schematic-0.6.1 lib/schematic/generator/column_validator.rb
schematic-0.6.0 lib/schematic/generator/column_validator.rb
schematic-0.5.9 lib/schematic/generator/column_validator.rb
schematic-0.5.8 lib/schematic/generator/column_validator.rb
schematic-0.5.7 lib/schematic/generator/column_validator.rb
schematic-0.5.6 lib/schematic/generator/column_validator.rb
schematic-0.5.5 lib/schematic/generator/column_validator.rb
schematic-0.5.4 lib/schematic/generator/column_validator.rb
schematic-0.5.3 lib/schematic/generator/column_validator.rb
schematic-0.5.2 lib/schematic/generator/column_validator.rb
schematic-0.5.1 lib/schematic/generator/column_validator.rb
schematic-0.5.0 lib/schematic/generator/column_validator.rb