Sha256: 43a0bd061fea94d2b9e8e169f0ce34b9d8ccdc4acd3ad8c97e1cc9a84a447607

Contents?: true

Size: 482 Bytes

Versions: 4

Compression:

Stored size: 482 Bytes

Contents

module HashCast::Metadata
  class Attribute
    attr_reader :name, :caster, :options
    attr_accessor :children

    def initialize(name, caster, options)
      @name      = name
      @caster    = caster
      @options   = options
      @children  = []
    end

    def has_children?
      !children.empty?
    end

    def required?
      !optional?
    end

    def optional?
      !!options[:optional]
    end

    def allow_nil?
      !!options[:allow_nil]
    end

  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
hash_cast-0.5.2 lib/hash_cast/metadata/attribute.rb
hash_cast-0.5.1 lib/hash_cast/metadata/attribute.rb
hash_cast-0.5.0 lib/hash_cast/metadata/attribute.rb
hashcast-0.4.0 lib/hashcast/metadata/attribute.rb