module Dieses::Support::ClassAttribute::Value
Constants
- Append
- Assign
- Update
Public Class Methods
behave(behave, value = Undefined)
click to toggle source
# File lib/dieses/support/class.rb, line 31 def behave(behave, value = Undefined) Undefined.equal?(behave) ? implicit(value) : explicit(behave) end
Private Class Methods
explicit(behave)
click to toggle source
Map given symbol to relevant module
# File lib/dieses/support/class.rb, line 38 def explicit(behave) const_get behave.to_s.capitalize rescue NameError raise ArgumentError, "Unrecognized behave: #{behave}" end
implicit(value)
click to toggle source
Deduce semantics from a value
# File lib/dieses/support/class.rb, line 45 def implicit(value) require 'ostruct' require 'set' case value when ::Hash, ::Struct, ::OpenStruct then Update when ::Array, ::Set then Append else Assign end end