Class: Degu::Renum::EnumeratedValue::Field

Inherits:
Struct::Field
  • Object
show all
Defined in:
lib/degu/renum/enumerated_value.rb

Overview

This class encapsulates an enum field (аctually a method with arity == 0).

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#blockObject

Returns the value of attribute block

Returns:

  • (Object)

    the current value of block



56
57
58
# File 'lib/degu/renum/enumerated_value.rb', line 56

def block
  @block
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



56
57
58
# File 'lib/degu/renum/enumerated_value.rb', line 56

def name
  @name
end

#optionsObject

Returns the value of attribute options

Returns:

  • (Object)

    the current value of options



56
57
58
# File 'lib/degu/renum/enumerated_value.rb', line 56

def options
  @options
end

Instance Method Details

#block?Boolean

Returns true if a block was given.

Returns:

  • (Boolean)


68
69
70
# File 'lib/degu/renum/enumerated_value.rb', line 68

def block?
  !!block
end

#defaultObject

Returns the value of the :default option.



63
64
65
# File 'lib/degu/renum/enumerated_value.rb', line 63

def default
  options[:default]
end

#default?Boolean

Returns true if the :default option was given.

Returns:

  • (Boolean)


58
59
60
# File 'lib/degu/renum/enumerated_value.rb', line 58

def default?
  options.key?(:default)
end

#default_value(obj, options) ⇒ Object

Determine the default value for the enum value obj if options is the options hash given to the init method.



74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/degu/renum/enumerated_value.rb', line 74

def default_value(obj, options)
  field_value = options[name]
  if field_value.nil?
    if default?
      default_value = default
    elsif block?
      default_value = block[obj]
    end
  else
    field_value
  end
end

#inspectObject

Returns a detailed string representation of this field.



93
94
95
# File 'lib/degu/renum/enumerated_value.rb', line 93

def inspect
  "#<#{self.class}: #{self} #{options.inspect}>"
end

#to_sObject

Returns the name as a string.



88
89
90
# File 'lib/degu/renum/enumerated_value.rb', line 88

def to_s
  name.to_s
end