Sha256: 47847a04f847aa835fa62e0b465e9a459b2f2a9c1d3371eedf0659482fb87205

Contents?: true

Size: 717 Bytes

Versions: 3

Compression:

Stored size: 717 Bytes

Contents

module Compel

  class Param

    attr_reader :name,
                :type,
                :options,
                :conditions

    def initialize(name, type, value, options = {}, &conditions)
      @name = name
      @type = type
      @value = value
      @options = options
      @conditions = conditions
    end

    def value
      default_value = if options[:default].is_a?(Proc)
        options[:default].call
      else
        options[:default]
      end

      @value || default_value
    end

    def value=(value)
      @value = value
    end

    def required?
      !!@options[:required]
    end

    def hash?
      @type == Hash
    end

    def conditions?
      !!@conditions
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
compel-0.1.3 lib/compel/param.rb
compel-0.1.2 lib/compel/param.rb
compel-0.1.1 lib/compel/param.rb