Class: LazyLazer::KeyMetadata

Inherits:
Object
  • Object
show all
Defined in:
lib/lazy_lazer/key_metadata.rb

Overview

Simple PORO for key metadata. Yay value objects!

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key_name, *boolean_options, **options) ⇒ KeyMetadata

Load attributes from a ClassMethods#property method signature.



25
26
27
28
29
30
31
32
# File 'lib/lazy_lazer/key_metadata.rb', line 25

def initialize(key_name, *boolean_options, **options)
  boolean_options.each_with_object(options) { |sym, hsh| hsh[sym] = true }
  self.source_key = options[:from] || key_name
  self.required = !!options[:required]
  self.default_provided = options.key?(:default) || options[:nil]
  self.transform = options[:with]
  self.default = options[:default]
end

Instance Attribute Details

#defaultProc, Object

Returns the default value or generator.

Returns:

  • (Proc, Object)

    the default value or generator



18
19
20
# File 'lib/lazy_lazer/key_metadata.rb', line 18

def default
  @default
end

#default_provided=(value) ⇒ Boolean (writeonly)

Returns whether a default was provided.

Returns:

  • (Boolean)

    whether a default was provided



15
16
17
# File 'lib/lazy_lazer/key_metadata.rb', line 15

def default_provided=(value)
  @default_provided = value
end

#required=(value) ⇒ Boolean (writeonly)

Returns whether the key must exist when creating the model.

Returns:

  • (Boolean)

    whether the key must exist when creating the model



12
13
14
# File 'lib/lazy_lazer/key_metadata.rb', line 12

def required=(value)
  @required = value
end

#source_keySymbol

Returns the key to fetch the value from.

Returns:

  • (Symbol)

    the key to fetch the value from



9
10
11
# File 'lib/lazy_lazer/key_metadata.rb', line 9

def source_key
  @source_key
end

#transformProc, ...

Returns the method or proc that transforms the return value.

Returns:

  • (Proc, Symbol, nil)

    the method or proc that transforms the return value



21
22
23
# File 'lib/lazy_lazer/key_metadata.rb', line 21

def transform
  @transform
end

Instance Method Details

#default_provided?Boolean

Returns whether no default was provided.

Returns:

  • (Boolean)

    whether no default was provided



40
41
42
# File 'lib/lazy_lazer/key_metadata.rb', line 40

def default_provided?
  @default_provided
end

#required?Boolean

Returns whether the key must exist when creating the model.

Returns:

  • (Boolean)

    whether the key must exist when creating the model



35
36
37
# File 'lib/lazy_lazer/key_metadata.rb', line 35

def required?
  @required
end