# File lib/core/codes.rb, line 54 def self.code(name) name = name.to_sym unless registry.has_key?(name) status_code = @@next_code @@next_code = @@next_code + 1 # TODO: Add more information to the index (like a help message) @@registry[name] = status_code @@status_index[status_code] = name.to_s end end
# File lib/core/codes.rb, line 69 def self.codes(*codes) codes.each do |name| code(name) end end
# File lib/core/codes.rb, line 20 def self.index(status_code = nil) if status_code.nil? || ! status_code.integer? @@status_index else status_code = status_code.to_i if @@status_index.has_key?(status_code) @@status_index[status_code] else @@status_index[registry[:unknown_status]] end end end
# File lib/core/codes.rb, line 14 def self.registry @@registry end
# File lib/core/codes.rb, line 36 def self.render_index(status_code = nil) output = "Status index:\n" @@status_index.each do |code, name| name = name.gsub(/_/, ' ').capitalize if ! status_code.nil? && status_code == code output << sprintf(" [ %3i ] - %s\n", code, name) else output << sprintf(" %3i - %s\n", code, name) end end output << "\n" output end
# File lib/core/codes.rb, line 78 def [](name) name = name.to_sym if @@registry.has_key?(name) @@registry[name] else @@registry[:unknown_status] end end
# File lib/core/codes.rb, line 90 def method_missing(method, *args, &block) self[method] end