datalogger-redis 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'http://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in datalogger-redis.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
data/Readme.md ADDED
@@ -0,0 +1,13 @@
1
+ # DataLogger-Redis
2
+ A DataLogger data sink that sends data to redis, either via pubsub or lists.
3
+
4
+ ## Usage
5
+
6
+ ```ruby
7
+ require 'datalogger'
8
+ require 'datalogger/redis'
9
+
10
+ l = DataLogger::Logger.new('myapp')
11
+ l.sinks << DataLogger::RedisPubSubSink.new
12
+ l.log a: 1, b: 2
13
+ ```
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/datalogger/redis/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Michael Gorsuch"]
6
+ gem.email = ["michael.gorsuch@gmail.com"]
7
+ gem.description = %q{A DataLogger data sink to Redis}
8
+ gem.summary = %q{A DataLogger data sink to Redis}
9
+ gem.homepage = ""
10
+
11
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
12
+ gem.files = `git ls-files`.split("\n")
13
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
+ gem.name = "datalogger-redis"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = DataLogger::Redis::VERSION
17
+ gem.add_dependency('datalogger')
18
+ gem.add_dependency('json')
19
+ gem.add_dependency('redis')
20
+ end
@@ -0,0 +1,3 @@
1
+ require 'datalogger/redis/pubsub_sink'
2
+ require 'datalogger/redis/list_sink'
3
+ require 'datalogger/redis/version'
@@ -0,0 +1,20 @@
1
+ require 'json'
2
+ require 'redis'
3
+ require 'uri'
4
+
5
+ module DataLogger
6
+ class RedisListSink
7
+ VERSION='0.0.1'
8
+
9
+ def initialize(opts={})
10
+ redis_url = opts[:redis_url] || "redis://localhost:6379"
11
+ uri = URI.parse(redis_url)
12
+ @redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
13
+ @list = opts[:list] || 'logs'
14
+ end
15
+
16
+ def log(component, data)
17
+ @redis.rpush @list, data.merge(component: component).to_json
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'json'
2
+ require 'redis'
3
+ require 'uri'
4
+
5
+ module DataLogger
6
+ class RedisPubSubSink
7
+ VERSION='0.0.1'
8
+
9
+ def initialize(opts={})
10
+ redis_url = opts[:redis_url] || "redis://localhost:6379"
11
+ uri = URI.parse(redis_url)
12
+ @redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
13
+ @channel = opts[:channel] || 'logs'
14
+ end
15
+
16
+ def log(component, data)
17
+ @redis.publish @channel, data.merge(component: component).to_json
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,5 @@
1
+ module DataLogger
2
+ module Redis
3
+ VERSION='0.0.1'
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: datalogger-redis
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Michael Gorsuch
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-21 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: datalogger
16
+ requirement: &70360253834660 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70360253834660
25
+ - !ruby/object:Gem::Dependency
26
+ name: json
27
+ requirement: &70360253834180 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70360253834180
36
+ - !ruby/object:Gem::Dependency
37
+ name: redis
38
+ requirement: &70360253833540 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70360253833540
47
+ description: A DataLogger data sink to Redis
48
+ email:
49
+ - michael.gorsuch@gmail.com
50
+ executables: []
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - .gitignore
55
+ - Gemfile
56
+ - Rakefile
57
+ - Readme.md
58
+ - datalogger-redis.gemspec
59
+ - lib/datalogger/redis.rb
60
+ - lib/datalogger/redis/list_sink.rb
61
+ - lib/datalogger/redis/pubsub_sink.rb
62
+ - lib/datalogger/redis/version.rb
63
+ homepage: ''
64
+ licenses: []
65
+ post_install_message:
66
+ rdoc_options: []
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 1.8.10
84
+ signing_key:
85
+ specification_version: 3
86
+ summary: A DataLogger data sink to Redis
87
+ test_files: []