diff options
author | Luke Kanies <luke@madstop.com> | 2005-06-06 15:13:14 +0000 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2005-06-06 15:13:14 +0000 |
commit | 53240625be7d35dabe29a2e71d5ac99d6f996427 (patch) | |
tree | 594a182c69951b3b8f6fa88f99e0e4cc4aae412e /lib/blink/message.rb | |
parent | 0dad57a29e84d510a9d530c79b12aa4fba9f334f (diff) | |
download | puppet-53240625be7d35dabe29a2e71d5ac99d6f996427.tar.gz puppet-53240625be7d35dabe29a2e71d5ac99d6f996427.tar.xz puppet-53240625be7d35dabe29a2e71d5ac99d6f996427.zip |
adding new classes and tests
git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@294 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/blink/message.rb')
-rw-r--r-- | lib/blink/message.rb | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/lib/blink/message.rb b/lib/blink/message.rb new file mode 100644 index 000000000..31d5fa503 --- /dev/null +++ b/lib/blink/message.rb @@ -0,0 +1,64 @@ +# $Id$ + +module Blink + #------------------------------------------------------------ + # provide feedback of various types to the user + # modeled after syslog messages + # each level of message prints in a different color + class Message + @@messages = Array.new + @@levels = [ :debug, :verbose, :notice, :warning, :error ] + @@colors = { + :debug => SLATE, + :verbose => ORANGE, + :notice => PINK, + :warning => GREEN, + :error => YELLOW + } + + attr_accessor :level, :message, :source + + def Message.loglevels + return @@levels + end + + def initialize(args) + unless args.include?(:level) && args.include?(:message) && + args.include?(:source) + raise "Blink::Message called incorrectly" + end + + if args[:level].class == String + @level = args[:level].intern + elsif args[:level].class == Symbol + @level = args[:level] + else + raise "Level is not a string or symbol: #{args[:level].class}" + end + @message = args[:message] + @source = args[:source] + @time = Time.now + # this should include the host name, and probly lots of other + # stuff, at some point + unless @@levels.include?(level) + raise "Invalid message level #{level}" + end + + @@messages.push(self) + Blink.newmessage(self) + end + + def to_s + # this probably won't stay, but until this leaves the console, + # i'm going to use coloring... + #return "#{@time} #{@source} (#{@level}): #{@message}" + #return @@colors[@level] + "%s %s (%s): %s" % [ + # @time, @source, @level, @message + #] + RESET + return @@colors[@level] + "%s (%s): %s" % [ + @source, @level, @message + ] + RESET + end + end + #------------------------------------------------------------ +end |