Sha256: 0f5d256fd89da41df251a72f5164051d845e0685bd86b804cbb389ed1d160f58
Contents?: true
Size: 798 Bytes
Versions: 5
Compression:
Stored size: 798 Bytes
Contents
module ActiveEnum module Storage class MemoryStore < AbstractStore def set(id, name, meta=nil) check_duplicate id, name _values << [id, name.to_s, meta].compact sort! end def get_by_id(id) _values.assoc(id) end def get_by_name(name) _values.rassoc(name.to_s) || _values.rassoc(name.to_s.titleize) end def check_duplicate(id, name) if get_by_id(id) || get_by_name(name) raise ActiveEnum::DuplicateValue end end def sort! case @order when :asc _values.sort! { |a,b| a[0] <=> b[0] } when :desc _values.sort! { |a,b| b[0] <=> a[0] } end end def _values @_values ||= [] end end end end
Version data entries
5 entries across 5 versions & 1 rubygems