Sha256: cee49b512cb97a6e9d183d70402ee27d55b858de3ffd53dd48a43ccdd52e8a1c

Contents?: true

Size: 1000 Bytes

Versions: 1

Compression:

Stored size: 1000 Bytes

Contents

require 'active_support/concern'
require 'fluent/validation/version'

module Fluent
  module Validation
    extend ActiveSupport::Concern

    class_methods do
      def attributes
        @attributes ||= []
        return @attributes
      end

      def mandatories(*fields)
        fields.each do |field|
          if field.is_a?(Hash)
            self.mandatory(field.keys[0], field.values[0])
          else
            self.mandatory(field)
          end
        end
      end

      def optionals(*fields)
        fields.each do |field|
          if field.is_a?(Hash)
            self.optional(field.keys[0], field.values[0])
          else
            self.optional(field)
          end
        end
      end

      def mandatory(field, options={})
        self.attributes << field
        self.validates(field, options.merge(presence: true))
      end

      def optional(field, options={})
        self.attributes << field
        self.validates(field, options)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fluent-validation-0.1.0 lib/fluent/validation.rb