module SetBuilder::ValueMap
Public Class Methods
for(name)
click to toggle source
# File lib/set_builder/value_map.rb, line 30 def self.for(name) name = name.to_sym @registered_value_maps[name] || raise(ArgumentError, "A value map has not been registered for #{value}") end
register(name, map)
click to toggle source
# File lib/set_builder/value_map.rb, line 44 def self.register(name, map) raise "map is expected to be an array of pairs" unless map.is_a?(Array) name = name.to_sym @registered_value_maps[name] = map end
register_collection(name, collection, name_method = :name, id_method = :id)
click to toggle source
# File lib/set_builder/value_map.rb, line 37 def self.register_collection(name, collection, name_method = :name, id_method = :id) map = collection.map {|i| [i.send(id_method).to_s, i.send(name_method)]} register(name, map) end
registered?(name)
click to toggle source
# File lib/set_builder/value_map.rb, line 10 def self.registered?(name) name = name.to_sym @registered_value_maps.key?(name) end
to_json()
click to toggle source
# File lib/set_builder/value_map.rb, line 52 def self.to_json @registered_value_maps.to_json end
to_s(name, value)
click to toggle source
# File lib/set_builder/value_map.rb, line 17 def self.to_s(name, value) name = name.to_sym map = @registered_value_maps[name] if map pair = map.find {|pair| pair[0] == value} pair ? pair[1].to_s : "(unknown)" else value.to_s end end