Sha256: b58e2ab0bcac35c825d93e659b83c7f9d21926b174dffd93e32ff3b0cc29b5a8
Contents?: true
Size: 1022 Bytes
Versions: 10
Compression:
Stored size: 1022 Bytes
Contents
# ------------------------------------------------------------------ # # Handles Enum definitions. # # It creates a helper methods for each one # # and contains utility functions to operate on them # # ------------------------------------------------------------------ # class Lanes.Models.EnumMap constructor: (@klass)-> @enums = _.clone(@klass::enums) for enum_name, def of @enums this.defineAccessor(enum_name, _.invert(def)) for name, id of def this.defineEnumHelper(enum_name, name, id) defineAccessor: (name, values)-> Object.defineProperty(@klass.prototype, "#{name}_value", { get: -> values[this.get(name)] }) defineEnumHelper: (enum_name, name, id)-> Object.defineProperty(@klass.prototype, "is_#{name}", { set: Lanes.emptyFn get: -> this[enum_name] == id })
Version data entries
10 entries across 10 versions & 1 rubygems