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