Class: Spikard::ParamBase
- Inherits:
-
Object
- Object
- Spikard::ParamBase
- Defined in:
- lib/spikard/params.rb
Overview
Base class for all parameter wrappers.
Provides common functionality for default values and default factories.
Instance Attribute Summary collapse
-
#default ⇒ Object
readonly
Returns the value of attribute default.
-
#default_factory ⇒ Object
readonly
Returns the value of attribute default_factory.
-
#schema ⇒ Object
readonly
Returns the value of attribute schema.
Instance Method Summary collapse
-
#get_default ⇒ Object
Get the default value, invoking factory if needed.
-
#has_default? ⇒ Boolean
Check if this parameter has a default value.
-
#initialize(default: nil, default_factory: nil, schema: nil) ⇒ ParamBase
constructor
A new instance of ParamBase.
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
#default ⇒ Object (readonly)
Returns the value of attribute default.
13 14 15 |
# File 'lib/spikard/params.rb', line 13 def default @default end |
#default_factory ⇒ Object (readonly)
Returns the value of attribute default_factory.
13 14 15 |
# File 'lib/spikard/params.rb', line 13 def default_factory @default_factory end |
#schema ⇒ Object (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_default ⇒ Object
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.
35 36 37 |
# File 'lib/spikard/params.rb', line 35 def has_default? !@default.nil? || !@default_factory.nil? end |