class Eco::Language::Models::Modifier

Constants

DEFAULT_MODE

Public Class Methods

new(value = []) click to toggle source
Calls superclass method
# File lib/eco/language/models/modifier.rb, line 8
def initialize(value = [])
  super(into_a(value))
end

Public Instance Methods

<(value) click to toggle source
# File lib/eco/language/models/modifier.rb, line 22
def <(value)
  self.clear << value
end
<<(value) click to toggle source
# File lib/eco/language/models/modifier.rb, line 26
def <<(value)
  self.concat(into_a(value))
end
default(value) click to toggle source
# File lib/eco/language/models/modifier.rb, line 34
def default(value)
  #self.unshift(value)
  reset
end
default?() click to toggle source
# File lib/eco/language/models/modifier.rb, line 43
def default?
  (mode - DEFAULT_MODE).length == 0
end
flush_mode() click to toggle source
# File lib/eco/language/models/modifier.rb, line 30
def flush_mode
  self < self.mode
end
mode() click to toggle source

MODE MODIFIERS resolve mode

# File lib/eco/language/models/modifier.rb, line 18
def mode
  resolve_mode
end
new() click to toggle source
# File lib/eco/language/models/modifier.rb, line 12
def new
  self.class.new(self.resolve_mode.to_a)
end
reset() click to toggle source
# File lib/eco/language/models/modifier.rb, line 39
def reset
  self < DEFAULT_MODE.first
end

Protected Instance Methods

into_a(value) click to toggle source
# File lib/eco/language/models/modifier.rb, line 60
def into_a(value)
  value = [].push(value) unless value.is_a?(Array)
  value
end
resolve(ms, flags) click to toggle source
# File lib/eco/language/models/modifier.rb, line 53
def resolve (ms, flags)
  # later modifiers have precedence
  flag = (ms & flags).last
  ms = (ms - flags).push(flag) unless !flag
  return ms
end
resolve_mode() click to toggle source
# File lib/eco/language/models/modifier.rb, line 49
def resolve_mode
  self.to_a
end