Module: SetBuilder::ValueMap
- Defined in:
- lib/set_builder/value_map.rb
Class Method Summary collapse
- .for(name) ⇒ Object
- .register(name, map) ⇒ Object
- .register_collection(name, collection, name_method = :name, id_method = :id) ⇒ Object
- .registered?(name) ⇒ Boolean
- .to_json ⇒ Object
- .to_s(name, value) ⇒ Object
Class Method Details
.for(name) ⇒ Object
30 31 32 33 |
# 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) ⇒ Object
44 45 46 47 48 |
# 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) ⇒ Object
37 38 39 40 |
# 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) ⇒ Boolean
10 11 12 13 |
# 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 ⇒ Object
52 53 54 |
# File 'lib/set_builder/value_map.rb', line 52 def self.to_json @registered_value_maps.to_json end |
.to_s(name, value) ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# 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 |