code_junkie

Ruby: defining class level hash with default values

Nov 12th, 2011
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. class LogEntry
  2.  
  3. end
  4.  
  5. EntryType = { :error => 0, :warning => 1, :info => 2 }
  6.  
  7. LogEntry.EntryType[:error]
  8.  
  9. class LogEntry
  10. EntryType = { :error => 0, :warning => 1, :info => 2 }
  11. end
  12.  
  13. LogEntry::EntryType[:error]
  14.  
  15. class LogEntry
  16.  
  17. def self.types
  18. { :error => 0, :warning => 1, :info => 2 }
  19. end
  20.  
  21. end
  22.  
  23. # And a simple test
  24. LogEntry.types[:error].should be_an_instance_of(Hash)
  25.  
  26. class LogEntry
  27. @@ErrorType = 0
  28. End
  29.  
  30. LogEntry.ErrorType
  31.  
  32. class LogEntry
  33. attr_reader :type
  34. ERROR_RANKING = [ :error, :warning, :info, ]
  35. include Comparable
  36.  
  37. def initialize( type )
  38. @type = type
  39. end
  40.  
  41. def <=>( other )
  42. ERROR_RANKING.index( @type ) <=> ERROR_RANKING.index( other.type )
  43. end
  44. end
  45.  
  46. entry1 = LogEntry.new( :error )
  47. entry2 = LogEntry.new( :warning )
  48.  
  49. puts entry1.type.inspect
  50. #=> :error
  51. puts entry2.type.inspect
  52. #=> :warning
  53. puts( ( entry1 > entry2 ).inspect )
  54. #=> false
  55. puts( ( entry1 < entry2 ).inspect )
  56. #=> true
Add Comment
Please, Sign In to add comment