Module: Flags
- Defined in:
- lib/city_watch/util/flags.rb
Instance Method Summary collapse
- #clear_flag(name) ⇒ Object
- #flag_flapped(name, new_val) ⇒ Object
- #flag_map ⇒ Object
- #flag_map_key ⇒ Object
- #flag_position(name) ⇒ Object
- #get_flag(name, host = host) ⇒ Object
- #get_flags(host = host) ⇒ Object
- #new_flag(name) ⇒ Object
- #set_flag(name) ⇒ Object
Instance Method Details
#clear_flag(name) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/city_watch/util/flags.rb', line 10 def clear_flag(name) if get_flag(name) flag_flapped name, :off CityWatch.redis.setbit "#{CityWatch.config[:prefix]}::#{host}::#{self.name}::flags", flag_position(name), 0 end end |
#flag_flapped(name, new_val) ⇒ Object
17 18 19 |
# File 'lib/city_watch/util/flags.rb', line 17 def flag_flapped(name,new_val) puts "Flag flipped: #{name} -> #{new_val}" if CityWatch.debug? end |
#flag_map ⇒ Object
40 41 42 |
# File 'lib/city_watch/util/flags.rb', line 40 def flag_map CityWatch.redis.lrange flag_map_key, 0, -1 end |
#flag_map_key ⇒ Object
36 37 38 |
# File 'lib/city_watch/util/flags.rb', line 36 def flag_map_key "#{CityWatch.config[:prefix]}::#{self.name}::flag_map" end |
#flag_position(name) ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/city_watch/util/flags.rb', line 44 def flag_position(name) if (map = flag_map) && map.include?(name.to_s) map.index(name.to_s) else new_flag(name) end end |
#get_flag(name, host = host) ⇒ Object
21 22 23 24 |
# File 'lib/city_watch/util/flags.rb', line 21 def get_flag(name,host=host) @host = host CityWatch.redis.getbit("#{CityWatch.config[:prefix]}::#{host}::#{self.name}::flags", flag_position(name)) == 1 ? true : false end |
#get_flags(host = host) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/city_watch/util/flags.rb', line 26 def get_flags(host=host) @host = host out = [] map = flag_map map.each_index do |idx| out << map[idx] if get_flag(map[idx]) end out end |