class IknowParams::Serializer::StringEnum
Abstract serializer for members of a fixed set of lowercase strings, case-normalized on parse.
Public Class Methods
new(*members)
click to toggle source
Calls superclass method
IknowParams::Serializer::new
# File lib/iknow_params/serializer.rb, line 350 def initialize(*members) @member_set = members.map { |s| normalize(s) }.to_set.freeze super(nil) end
Public Instance Methods
load(str)
click to toggle source
# File lib/iknow_params/serializer.rb, line 355 def load(str) val = normalize(str.to_s) matches_type!(val, err: LoadError) val end
matches_type?(str)
click to toggle source
# File lib/iknow_params/serializer.rb, line 361 def matches_type?(str) str.is_a?(::String) && @member_set.include?(str) end
normalize(str)
click to toggle source
# File lib/iknow_params/serializer.rb, line 365 def normalize(str) str.downcase end