Sha256: ea505ee44045c4b36e4aa800b8df1b315c9da08e8960145092f0518364ff23e8
Contents?: true
Size: 1.27 KB
Versions: 236
Compression:
Stored size: 1.27 KB
Contents
module Eco module Language module Models class Modifier < Array DEFAULT_MODE = [:default, :none] def initialize(value = []) super(into_a(value)) end def new self.class.new(self.resolve_mode.to_a) end # MODE MODIFIERS # resolve mode def mode resolve_mode end def <(value) self.clear << value end def <<(value) self.concat(into_a(value)) end def flush_mode self < self.mode end def default(value) #self.unshift(value) reset end def reset self < DEFAULT_MODE.first end def default? (mode - DEFAULT_MODE).length == 0 end protected def resolve_mode self.to_a end def resolve (ms, flags) # later modifiers have precedence flag = (ms & flags).last ms = (ms - flags).push(flag) unless !flag return ms end def into_a(value) value = [].push(value) unless value.is_a?(Array) value end end end end end
Version data entries
236 entries across 236 versions & 1 rubygems