class Nucleon::Codes
Public Class Methods
code(name)
click to toggle source
# File lib/core/codes.rb 71 def self.code(name) 72 name = name.to_sym 73 74 unless registry.has_key?(name) 75 status_code = @@next_code 76 @@next_code = @@next_code + 1 77 78 # TODO: Add more information to the index (like a help message) 79 @@registry[name] = status_code 80 @@status_index[status_code] = name.to_s 81 end 82 end
codes(*codes)
click to toggle source
# File lib/core/codes.rb 86 def self.codes(*codes) 87 codes.each do |name| 88 code(name) 89 end 90 end
index(status_code = nil)
click to toggle source
# File lib/core/codes.rb 26 def self.index(status_code = nil) 27 if status_code.nil? || ! status_code.integer? 28 @@status_index 29 else 30 status_code = status_code.to_i 31 32 if @@status_index.has_key?(status_code) 33 @@status_index[status_code] 34 else 35 @@status_index[registry[:unknown_status]] 36 end 37 end 38 end
registry()
click to toggle source
# File lib/core/codes.rb 14 def self.registry 15 @@registry 16 end
render_index(status_code = nil)
click to toggle source
# File lib/core/codes.rb 53 def self.render_index(status_code = nil) 54 output = "Status index:\n" 55 @@status_index.each do |code, name| 56 name = name.gsub(/_/, ' ').capitalize 57 58 if ! status_code.nil? && status_code == code 59 output << sprintf(" [ %3i ] - %s\n", code, name) 60 else 61 output << sprintf(" %3i - %s\n", code, name) 62 end 63 end 64 output << "\n" 65 output 66 end
render_status(status_code = nil)
click to toggle source
# File lib/core/codes.rb 42 def self.render_status(status_code = nil) 43 if ! status_code.nil? && @@status_index.has_key?(status_code) 44 status_name = @@status_index[status_code] 45 else 46 status_name = @@status_index[registry[:unknown_status]] 47 end 48 sprintf(" [ %3i ] - %s\n", status_code, status_name.gsub(/_/, ' ').capitalize) 49 end
reset()
click to toggle source
# File lib/core/codes.rb 94 def self.reset 95 @@registry = {} 96 @@status_index = {} 97 @@next_code = 0 98 99 code(:success) # This must be added first (needs to be 0) 100 code(:help_wanted) 101 code(:unknown_status) 102 103 code(:action_unprocessed) 104 code(:batch_error) 105 106 code(:validation_failed) 107 code(:access_denied) 108 end
status_index()
click to toggle source
# File lib/core/codes.rb 20 def self.status_index 21 @@status_index 22 end
Public Instance Methods
[](name)
click to toggle source
# File lib/core/codes.rb 113 def [](name) 114 name = name.to_sym 115 116 if @@registry.has_key?(name) 117 @@registry[name] 118 else 119 @@registry[:unknown_status] 120 end 121 end
method_missing(method, *args, &block)
click to toggle source
# File lib/core/codes.rb 125 def method_missing(method, *args, &block) 126 self[method] 127 end