Module: Yell::Adapters

Defined in:
lib/yell/adapters.rb,
lib/yell/adapters/io.rb,
lib/yell/adapters/base.rb,
lib/yell/adapters/file.rb,
lib/yell/adapters/streams.rb,
lib/yell/adapters/datefile.rb

Overview

:nodoc:

Defined Under Namespace

Classes: Base, Datefile, File, Io, Stderr, Stdout

Class Method Summary collapse

Class Method Details

.broadcast(adapter) ⇒ Object

Thanks, railties :-)



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/yell/adapters.rb', line 43

def self.broadcast( adapter )
  Module.new do
    define_method(:write) do |event|
      adapter.write(event)
      super(event)
    end

    define_method(:close) do
      adapter.close
      super()
    end
  end
end

.new(name, options = {}, &block) ⇒ Object

Returns an instance of the given processor type.

Examples:

A simple file adapter

Yell::Adapters.new( :file )

Raises:



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/yell/adapters.rb', line 28

def self.new( name, options = {}, &block )
  return name if name.is_a?(Yell::Adapters::Base)

  adapter = case name
  when STDOUT then @adapters[:stdout]
  when STDERR then @adapters[:stderr]
  else @adapters[name]
  end

  raise AdapterNotFound.new(name) if adapter.nil?

  adapter.new(options, &block)
end

.register(name, klass) ⇒ Object

Register your own adapter here

Examples:

Yell::Adapters.register( :myadapter, MyAdapter )


20
21
22
# File 'lib/yell/adapters.rb', line 20

def self.register( name, klass )
  @adapters[name] = klass
end