Sha256: 7e814e8e29eb572393fc5171e7e0beed66841446e7e5e8506da591eb161d8d68
Contents?: true
Size: 794 Bytes
Versions: 4
Compression:
Stored size: 794 Bytes
Contents
module Compel module Builder class Schema include Builder::Common attr_reader :type, :options def self.human_name "#{self.name.split('::')[1..-1].join('::')}" end def initialize(type) @type = type @options = default_options end def required? options[:required][:value] end def default_value options[:default][:value] if options[:default] end def validate(object) Contract.new(object, self).validate end def build_option(name, value, extra_options = {}) options[name] = { value: value }.merge(extra_options) self end def default_options { required: { value: false } } end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
compel-0.5.1 | lib/compel/builder/schema.rb |
compel-0.5.0 | lib/compel/builder/schema.rb |
compel-0.4.3 | lib/compel/builder/schema.rb |
compel-0.4.2 | lib/compel/builder/schema.rb |