class Enum::Base
Public Class Methods
all()
click to toggle source
# File lib/enum/base.rb, line 16 def all history end
enum(t)
click to toggle source
# File lib/enum/base.rb, line 32 def enum(t) ts = t.to_s unless store.include?(ts) raise(TokenNotFoundError, "token '#{t}'' not found in the enum #{self}") end ts end
enums(*tokens)
click to toggle source
# File lib/enum/base.rb, line 28 def enums(*tokens) tokens.map { |token| enum(token) } end
include?(token)
click to toggle source
# File lib/enum/base.rb, line 24 def include?(token) store.include?(token.to_s) end
index(token)
click to toggle source
# File lib/enum/base.rb, line 44 def index(token) history.index(enum(token)) end
indexes()
click to toggle source
# File lib/enum/base.rb, line 20 def indexes (0...store.size).to_a end
inherited(child)
click to toggle source
# File lib/enum/base.rb, line 6 def inherited(child) return if self == Enum init_child_class(child) end
name(t)
click to toggle source
# File lib/enum/base.rb, line 40 def name(t) translate(enum(t)) end
values(*ary)
click to toggle source
# File lib/enum/base.rb, line 12 def values(*ary) ary.each { |val| add_value(val.to_s) } end
Protected Class Methods
history()
click to toggle source
# File lib/enum/base.rb, line 58 def history @history ||= Array.new end
history=(ary)
click to toggle source
# File lib/enum/base.rb, line 62 def history=(ary) @history = ary end
store()
click to toggle source
# File lib/enum/base.rb, line 50 def store @store ||= Set.new end
store=(set)
click to toggle source
# File lib/enum/base.rb, line 54 def store=(set) @store = set end
translate(token, options = {})
click to toggle source
# File lib/enum/base.rb, line 66 def translate(token, options = {}) I18n.t(token, scope: "enum.#{self}", exception_handler: proc do if superclass == Enum::Base I18n.t(token, options.merge(scope: "enum.#{self}")) else superclass.translate(token, exception_handler: proc do I18n.t(token, scope: "enum.#{self}") end) end end) end
Private Class Methods
add_value(val)
click to toggle source
# File lib/enum/base.rb, line 80 def add_value(val) store.add(val) history.push(val) end
init_child_class(child)
click to toggle source
# File lib/enum/base.rb, line 85 def init_child_class(child) child.store = self.store.clone child.history = self.history.clone end