Subversion Info

Rev
437
Last Checked In
2008-03-28 00:49:20 (2 weeks ago)
Checked in by
deveiant

Parent

Included Modules

Class Index

Quicksearch

Arrow::Logger::Outputter

This class is the abstract base class for logging outputters for Arrow::Logger.

Constants

SVNRev
SVN Revision
SVNId
SVN Id
DefaultDescription
The default description
DefaultFormat
The default interpolatable string that‘s used to build the message to output

Attributes

description[RW]
The outputter‘s description, for introspection utilities.
format[RW]
The uninterpolated string format for this outputter. This message written will be formed by interpolating this string in the #write method‘s context immediately before outputting.

Public Class Methods

create( uri, *args ) click to toggle source

Create a new Arrow::Logger::Outputter object of the type specified by uri.

    # File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 72
72:     def self::create( uri, *args )
73:         uri = self.parse_uri( uri ) if uri.is_a?( String )
74:         super( uri.scheme.dup, uri, *args )
75:     end
derivativeDirs() click to toggle source

Specify the directory to look for the derivatives of this class in.

    # File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 56
56:     def self::derivativeDirs
57:         ["arrow/logger"]
58:     end
new( uri, description=DefaultDescription, format=DefaultFormat ) click to toggle source

Create a new Arrow::Logger::Outputter object with the given uri, description and sprintf-style format.

    # File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 85
85:     def initialize( uri, description=DefaultDescription, format=DefaultFormat )
86:         @description = description
87:         @format = format
88:     end
parse_uri( str ) click to toggle source

Parse the given string into a URI object, appending the path part if it doesn‘t exist.

    # File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 63
63:     def self::parse_uri( str )
64:         return str if str.is_a?( URI::Generic )
65:         str += ":." if str.match( /^\w+$/ )
66:         URI.parse( str )
67:     end

Public Instance Methods

inspect() click to toggle source

Returns a human-readable description of the object as a String

     # File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 121
121:     def inspect
122:         "#<%s:0x%0x %s>" % [
123:             self.class.name,
124:             self.object_id * 2,
125:             self.inspection_details,
126:         ]
127:     end
write( time, level, name, frame, msg ) {|msg| ...} click to toggle source

Write the given level, name, frame, and msg to the target output mechanism. Subclasses can call this with a block which will be passed the formatted message. If no block is supplied by the child, this method will check to see if $DEBUG is set, and if it is, write the log message to $deferr.

     # File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 109
109:     def write( time, level, name, frame, msg )
110:         msg = @format.interpolate( binding )
111: 
112:         if block_given?
113:             yield( msg )
114:         else
115:             $deferr.puts( msg ) if $DEBUG
116:         end
117:     end

Protected Instance Methods

inspection_details() click to toggle source

Returns a String which should be included in the implementation-specific part of the object‘s inspection String.

     # File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 136
136:     def inspection_details
137:         return "%s (%s)" % [ self.description, self.format ]
138:     end

secsequence

--- SEC00072

seccomment

--- ""

attributes

--- 
- name: description
  rw: RW
  a_desc: |+
    
    The outputter&#8216;s description, for introspection utilities.
    
- name: format
  rw: RW
  a_desc: |+
    
    The uninterpolated string format for this outputter. This message written
    will be formed by interpolating this string in the <a
    href="Outputter.html#M000193">#write</a> method&#8216;s context immediately
    before outputting.
    

method_list

--- 
- methods: 
  - visibility: public
    aref: M000191
    name: create
    sourcecode: "    <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 72</span>\n\
      72:     <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">create</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\
      73:         <span class=\"ruby-identifier\">uri</span> = <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">parse_uri</span>( <span class=\"ruby-identifier\">uri</span> ) <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">uri</span>.<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">String</span> )\n\
      74:         <span class=\"ruby-keyword kw\">super</span>( <span class=\"ruby-identifier\">uri</span>.<span class=\"ruby-identifier\">scheme</span>.<span class=\"ruby-identifier\">dup</span>, <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\
      75:     <span class=\"ruby-keyword kw\">end</span>"
    m_desc: |-
      <p>
      Create a <a href="Outputter.html#M000192">new</a> <a
      href="Outputter.html">Arrow::Logger::Outputter</a> object of the type
      specified by <tt>uri</tt>.
      </p>
    params: ( uri, *args )
  - visibility: public
    aref: M000189
    name: derivativeDirs
    sourcecode: "    <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 56</span>\n\
      56:     <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">derivativeDirs</span>\n\
      57:         [<span class=\"ruby-value str\">&quot;arrow/logger&quot;</span>]\n\
      58:     <span class=\"ruby-keyword kw\">end</span>"
    m_desc: |-
      <p>
      Specify the directory to look for the derivatives of this class in.
      </p>
    params: ()
  - visibility: public
    aref: M000192
    name: new
    sourcecode: "    <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 85</span>\n\
      85:     <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">initialize</span>( <span class=\"ruby-identifier\">uri</span>, <span class=\"ruby-identifier\">description</span>=<span class=\"ruby-constant\">DefaultDescription</span>, <span class=\"ruby-identifier\">format</span>=<span class=\"ruby-constant\">DefaultFormat</span> )\n\
      86:         <span class=\"ruby-ivar\">@description</span> = <span class=\"ruby-identifier\">description</span>\n\
      87:         <span class=\"ruby-ivar\">@format</span> = <span class=\"ruby-identifier\">format</span>\n\
      88:     <span class=\"ruby-keyword kw\">end</span>"
    m_desc: |-
      <p>
      Create a <a href="Outputter.html#M000192">new</a> <a
      href="Outputter.html">Arrow::Logger::Outputter</a> object with the given
      <tt>uri</tt>, <tt>description</tt> and sprintf-style <tt>format</tt>.
      </p>
    params: ( uri, description=DefaultDescription, format=DefaultFormat )
  - visibility: public
    aref: M000190
    name: parse_uri
    sourcecode: "    <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 63</span>\n\
      63:     <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">parse_uri</span>( <span class=\"ruby-identifier\">str</span> )\n\
      64:         <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">str</span> <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">str</span>.<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">URI</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Generic</span> )\n\
      65:         <span class=\"ruby-identifier\">str</span> <span class=\"ruby-operator\">+=</span> <span class=\"ruby-value str\">&quot;:.&quot;</span> <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">str</span>.<span class=\"ruby-identifier\">match</span>( <span class=\"ruby-regexp re\">/^\\w+$/</span> )\n\
      66:         <span class=\"ruby-constant\">URI</span>.<span class=\"ruby-identifier\">parse</span>( <span class=\"ruby-identifier\">str</span> )\n\
      67:     <span class=\"ruby-keyword kw\">end</span>"
    m_desc: |-
      <p>
      Parse the given string into a URI object, appending the path part if it
      doesn&#8216;t exist.
      </p>
    params: ( str )
  category: Class
  type: Public
- methods: 
  - visibility: public
    aref: M000194
    name: inspect
    sourcecode: "     <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 121</span>\n\
      121:     <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">inspect</span>\n\
      122:         <span class=\"ruby-value str\">&quot;#&lt;%s:0x%0x %s&gt;&quot;</span> <span class=\"ruby-operator\">%</span> [\n\
      123:             <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">name</span>,\n\
      124:             <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">object_id</span> <span class=\"ruby-operator\">*</span> <span class=\"ruby-value\">2</span>,\n\
      125:             <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">inspection_details</span>,\n\
      126:         ]\n\
      127:     <span class=\"ruby-keyword kw\">end</span>"
    m_desc: |-
      <p>
      Returns a human-readable description of the object as a String
      </p>
    params: ()
  - visibility: public
    aref: M000193
    name: write
    sourcecode: "     <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 109</span>\n\
      109:     <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">write</span>( <span class=\"ruby-identifier\">time</span>, <span class=\"ruby-identifier\">level</span>, <span class=\"ruby-identifier\">name</span>, <span class=\"ruby-identifier\">frame</span>, <span class=\"ruby-identifier\">msg</span> )\n\
      110:         <span class=\"ruby-identifier\">msg</span> = <span class=\"ruby-ivar\">@format</span>.<span class=\"ruby-identifier\">interpolate</span>( <span class=\"ruby-identifier\">binding</span> )\n\
      111: \n\
      112:         <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">block_given?</span>\n\
      113:             <span class=\"ruby-keyword kw\">yield</span>( <span class=\"ruby-identifier\">msg</span> )\n\
      114:         <span class=\"ruby-keyword kw\">else</span>\n\
      115:             <span class=\"ruby-identifier\">$deferr</span>.<span class=\"ruby-identifier\">puts</span>( <span class=\"ruby-identifier\">msg</span> ) <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">$DEBUG</span>\n\
      116:         <span class=\"ruby-keyword kw\">end</span>\n\
      117:     <span class=\"ruby-keyword kw\">end</span>"
    m_desc: |-
      <p>
      Write the given <tt>level</tt>, <tt>name</tt>, <tt>frame</tt>, and
      <tt>msg</tt> to the target output mechanism. Subclasses can call this with
      a block which will be passed the formatted message. If no block is supplied
      by the child, this method will check to see if $DEBUG is set, and if it is,
      <a href="Outputter.html#M000193">write</a> the log message to $deferr.
      </p>
    params: ( time, level, name, frame, msg ) {|msg| ...}
  category: Instance
  type: Public
- methods: 
  - visibility: protected
    aref: M000195
    name: inspection_details
    sourcecode: "     <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/logger/outputter.rb, line 136</span>\n\
      136:     <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">inspection_details</span>\n\
      137:         <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-value str\">&quot;%s (%s)&quot;</span> <span class=\"ruby-operator\">%</span> [ <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">description</span>, <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">format</span> ]\n\
      138:     <span class=\"ruby-keyword kw\">end</span>"
    m_desc: |-
      <p>
      Returns a String which should be included in the implementation-specific
      part of the object&#8216;s inspection String.
      </p>
    params: ()
  category: Instance
  type: Protected

sectitle

--- 

constants

--- 
- name: SVNRev
  desc: |+
    
    SVN Revision
    
  value: "%q$Rev: 437 $"
- name: SVNId
  desc: |+
    
    SVN Id
    
  value: "%q$Id: outputter.rb 437 2008-03-28 00:49:20Z deveiant $"
- name: DefaultDescription
  desc: |+
    
    The default description
    
  value: "&quot;Logging Outputter&quot;"
- name: DefaultFormat
  desc: |+
    
    The default interpolatable string that&#8216;s used to build the message to
    output
    
  value: "%q{#{time.strftime('%Y/%m/%d %H:%M:%S')} [#{level}]: #{name} } +             %q{#{frame ? '('+frame+')' : ''}: #{msg[0,1024]}}"

[Validate]

Generated with the Darkfish Rdoc Generator.