class Rome2rio::EncodedFlags
Attributes
flags[RW]
Public Class Methods
new(flags = nil)
click to toggle source
# File lib/rome2rio/helper/encoded_flags.rb, line 5 def initialize(flags = nil) @flags = flags end
parse(str)
click to toggle source
# File lib/rome2rio/helper/encoded_flags.rb, line 9 def self.parse(str) value = Integer(str) ret = new ret.flags = [] self::FLAG_VALUES.each { |key, flag| ret.flags << key if (value & flag) == flag } ret end
Public Instance Methods
method_missing(meth, *args, &block)
click to toggle source
Calls superclass method
# File lib/rome2rio/helper/encoded_flags.rb, line 24 def method_missing(meth, *args, &block) if meth.to_s.end_with?("?") then key = meth.to_s.chop.to_sym return true if to_a.include?(key) # return flags.include?(key) if flags.is_a?(Array) # return flags[key] if flags.is_a?(Hash) # return true if flags == key end super(meth, *args, &block) end
to_a()
click to toggle source
# File lib/rome2rio/helper/encoded_flags.rb, line 17 def to_a return flags.map { |k, v| k if v == true || v == 1 }.select { |k| k != nil } if flags.is_a?(Hash) return [ flags.to_sym ] if flags.is_a?(String) return [ flags ] if flags.is_a?(Symbol) flags end
to_i()
click to toggle source
# File lib/rome2rio/helper/encoded_flags.rb, line 43 def to_i keys = to_a ret = 0 self.class::FLAG_VALUES.each { |key, flag| ret |= flag if keys.include?(key) } ret end
to_s()
click to toggle source
# File lib/rome2rio/helper/encoded_flags.rb, line 39 def to_s to_i.to_s end