Class: Spikard::ParamBase

Inherits:
Object
  • Object
show all
Defined in:
lib/spikard/params.rb

Overview

Base class for all parameter wrappers.

Provides common functionality for default values and default factories.

Direct Known Subclasses

Body, Cookie, Header, Path, Query

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(default: nil, default_factory: nil, schema: nil) ⇒ ParamBase

Returns a new instance of ParamBase.



15
16
17
18
19
20
21
22
23
# File 'lib/spikard/params.rb', line 15

def initialize(default: nil, default_factory: nil, schema: nil)
  if default && default_factory
    raise ArgumentError, "Cannot specify both 'default' and 'default_factory'"
  end

  @default = default
  @default_factory = default_factory
  @schema = schema
end

Instance Attribute Details

#defaultObject (readonly)

Returns the value of attribute default.



13
14
15
# File 'lib/spikard/params.rb', line 13

def default
  @default
end

#default_factoryObject (readonly)

Returns the value of attribute default_factory.



13
14
15
# File 'lib/spikard/params.rb', line 13

def default_factory
  @default_factory
end

#schemaObject (readonly)

Returns the value of attribute schema.



13
14
15
# File 'lib/spikard/params.rb', line 13

def schema
  @schema
end

Instance Method Details

#get_defaultObject

Get the default value, invoking factory if needed.



26
27
28
29
30
31
32
# File 'lib/spikard/params.rb', line 26

def get_default
  if @default_factory
    @default_factory.call
  else
    @default
  end
end

#has_default?Boolean

Check if this parameter has a default value.

Returns:

  • (Boolean)


35
36
37
# File 'lib/spikard/params.rb', line 35

def has_default?
  !@default.nil? || !@default_factory.nil?
end