Sha256: f27d1c76015b178dc0e06ece096ef716bf374ab3e2a8af6d5fbf89c0319a5d62

Contents?: true

Size: 653 Bytes

Versions: 1

Compression:

Stored size: 653 Bytes

Contents

module Compel
  module Builder

    class Schema

      include Builder::Common

      attr_reader :type,
                  :options

      def initialize(type)
        @type = type
        @options = default_options
      end

      def required?
        options[:required]
      end

      def default_value
        options[:default]
      end

      def validate(object)
        Contract.new(object, self).validate
      end

      class << self

        def human_name
          "#{self.name.split('::')[1..-1].join('::')}"
        end

      end

      protected

      def default_options
        { required: false }
      end

    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
compel-0.4.0 lib/compel/builder/schema.rb