class SoapyCake::ModificationType
Constants
- CHANGE
- DO_NOT_CHANGE
- InvalidInput
- REMOVE
Attributes
default[R]
key[R]
modification_type_key[R]
Public Class Methods
new(key, modification_type_key, default)
click to toggle source
# File lib/soapy_cake/modification_type.rb, line 9 def initialize(key, modification_type_key, default) @key = key @modification_type_key = modification_type_key @default = default end
Public Instance Methods
options(input_opts)
click to toggle source
# File lib/soapy_cake/modification_type.rb, line 15 def options(input_opts) validate_input(input_opts) input_opts.merge( key => value(input_opts), modification_type_key => modification_type(input_opts) ) end
Private Instance Methods
modification_type(input_opts)
click to toggle source
# File lib/soapy_cake/modification_type.rb, line 32 def modification_type(input_opts) input_opts.fetch(modification_type_key) do input_opts[key] ? CHANGE : REMOVE end end
validate_input(input_opts)
click to toggle source
# File lib/soapy_cake/modification_type.rb, line 38 def validate_input(input_opts) return unless input_opts[key].nil? && input_opts[modification_type_key] == CHANGE raise( InvalidInput, "`#{modification_type_key}` was '#{CHANGE}', but no `#{key}` was provided to change it to" ) end
value(input_opts)
click to toggle source
# File lib/soapy_cake/modification_type.rb, line 28 def value(input_opts) input_opts.fetch(key, default) end