Module: LogStasher::Device

Included in:
Redis, Syslog
Defined in:
lib/logstasher/device.rb,
lib/logstasher/device/redis.rb,
lib/logstasher/device/syslog.rb

Defined Under Namespace

Classes: Redis, Syslog

Class Method Summary collapse

Class Method Details

.factory(config) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/logstasher/device.rb', line 3

def self.factory(config)
  config = stringify_keys(config)
  type   = config.delete('type') or fail ArgumentError, 'No "type" given'

  case type
  when 'redis', :redis then
    require 'logstasher/device/redis'
    ::LogStasher::Device::Redis.new(config)
  when "syslog", :syslog then
    require 'logstasher/device/syslog'
    ::LogStasher::Device::Syslog.new(config)
  else
    fail ArgumentError, "Unknown type: #{type}"
  end
end

.stringify_keys(hash) ⇒ Object



19
20
21
22
23
24
# File 'lib/logstasher/device.rb', line 19

def stringify_keys(hash)
  hash.inject({}) do |stringified_hash, (key, value)|
    stringified_hash[key.to_s] = value
    stringified_hash
  end
end