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