Sha256: 88758e349d25429ad70aa7387e1aba4a83a0503efe8ee9225bde17f57a6466f4

Contents?: true

Size: 812 Bytes

Versions: 7

Compression:

Stored size: 812 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
        klass._validators[column.name.to_sym]
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
schematic-0.4.4 lib/schematic/generator/column_validator.rb
schematic-0.4.3 lib/schematic/generator/column_validator.rb
schematic-0.4.2 lib/schematic/generator/column_validator.rb
schematic-0.4.1 lib/schematic/generator/column_validator.rb
schematic-0.4.0 lib/schematic/generator/column_validator.rb
schematic-0.3.8 lib/schematic/generator/column_validator.rb
schematic-0.3.7 lib/schematic/generator/column_validator.rb