Sha256: 5ed0b3f9d6603d1fb596028d7cbb9cc942b0f64476c9b8b1ee1e609593667e91
Contents?: true
Size: 1.22 KB
Versions: 3
Compression:
Stored size: 1.22 KB
Contents
require 'redis' module LogStasher module Device class Redis attr_reader :options, :redis def initialize(options = {}) @options = default_options.merge(options) validate_options configure_redis end def data_type options[:data_type] end def key options[:key] end def redis_options unless @redis_options default_keys = default_options.keys @redis_options = options.select { |k, v| !default_keys.include?(k) } end @redis_options end def write(log) case data_type when 'list' redis.rpush(key, log) when 'channel' redis.publish(key, log) else fail "Unknown data type #{data_type}" end end def close redis.quit end private def configure_redis @redis = ::Redis.new(redis_options) end def default_options { key: 'logstash', data_type: 'list' } end def validate_options unless ['list', 'channel'].include?(options[:data_type]) fail 'Expected :data_type to be either "list" or "channel"' end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
md-logstasher-1.0.0.rc3 | lib/logstasher/device/redis.rb |
md-logstasher-1.0.0.rc2 | lib/logstasher/device/redis.rb |
md-logstasher-1.0.0.rc1 | lib/logstasher/device/redis.rb |