Class: FunctionalLightService::EnumBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/functional-light-service/functional/enum.rb

Defined Under Namespace

Classes: DataType

Instance Method Summary collapse

Constructor Details

#initialize(parent) ⇒ EnumBuilder

Returns a new instance of EnumBuilder.



9
10
11
# File 'lib/functional-light-service/functional/enum.rb', line 9

def initialize(parent)
  @parent = parent
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m, *args) ⇒ Object



139
140
141
142
143
144
145
# File 'lib/functional-light-service/functional/enum.rb', line 139

def method_missing(m, *args)
  if @parent.const_defined?(m)
    raise ArgumentError, "variant #{m} is already defined for this enum"
  end

  @parent.const_set(m, DataType.create(@parent, args))
end

Instance Method Details

#respond_to_missing?(_m, _include_all = false) ⇒ Boolean

Returns:

  • (Boolean)


147
148
149
# File 'lib/functional-light-service/functional/enum.rb', line 147

def respond_to_missing?(_m, _include_all = false)
  true
end