unified-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.
@@ -0,0 +1 @@
1
+ require 'unified_redis'
@@ -0,0 +1,18 @@
1
+ module UnifiedRedis
2
+ module Adapter
3
+ # List of available adapters
4
+ def self.adapters
5
+ {
6
+ 'Redis' => "Redis",
7
+ 'EventMachine::Protocols::Redis::EM_CONNECTION_CLASS' => 'EMRedis'
8
+ }
9
+ end
10
+
11
+ def self.get_adapter(redis)
12
+ adapter = self.adapters[redis.class.to_s]
13
+ raise "Adapter not found" if adapter.nil?
14
+ require "unified_redis/adapters/#{adapter.downcase}"
15
+ Adapter.const_get(adapter).new(redis)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,13 @@
1
+ module UnifiedRedis
2
+ module Adapter
3
+ class EMRedis
4
+ def initialize(redis)
5
+ @redis = redis
6
+ end
7
+
8
+ def call(command, *args, &block)
9
+ @redis.send(command, *args, &block)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ module UnifiedRedis
2
+ module Adapter
3
+ class Redis
4
+ def initialize(redis)
5
+ @redis = redis
6
+ end
7
+
8
+ def call(command, *args)
9
+ *result = @redis.send(command, *args)
10
+ yield *result if block_given?
11
+ return *result
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ module UnifiedRedis
2
+ class Core
3
+ def initialize(redis)
4
+ @redis = redis
5
+ @adapter = Adapter.get_adapter(redis)
6
+ end
7
+
8
+ def method_missing(command, *args, &block)
9
+ #return unless @redis.respond_to?(command.to_sym)
10
+ @adapter.call(command, *args, &block)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module UnifiedRedis
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,8 @@
1
+ require 'unified_redis/core'
2
+ require 'unified_redis/adapter'
3
+
4
+ module UnifiedRedis
5
+ def self.new(redis)
6
+ Core.new(redis)
7
+ end
8
+ end
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: unified-redis
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - François de Metz
9
+ - Jean-Denis Vauguet
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2011-10-24 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: eventmachine
17
+ requirement: &13506000 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.0.beta
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *13506000
26
+ - !ruby/object:Gem::Dependency
27
+ name: bundler
28
+ requirement: &13539940 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *13539940
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec
39
+ requirement: &13539480 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *13539480
48
+ - !ruby/object:Gem::Dependency
49
+ name: redis
50
+ requirement: &13539060 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: *13539060
59
+ - !ruby/object:Gem::Dependency
60
+ name: em-redis
61
+ requirement: &13538640 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *13538640
70
+ description: An unified redis interface for redis-rb and em-redis.
71
+ email:
72
+ - fdemetz@af83.com
73
+ - jdvauguet@af83.com
74
+ executables: []
75
+ extensions: []
76
+ extra_rdoc_files: []
77
+ files:
78
+ - lib/unified-redis.rb
79
+ - lib/unified_redis.rb
80
+ - lib/unified_redis/adapter.rb
81
+ - lib/unified_redis/adapters/emredis.rb
82
+ - lib/unified_redis/adapters/redis.rb
83
+ - lib/unified_redis/core.rb
84
+ - lib/unified_redis/version.rb
85
+ homepage: https://github.com/af83/unified-redis
86
+ licenses: []
87
+ post_install_message:
88
+ rdoc_options: []
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubyforge_project:
105
+ rubygems_version: 1.8.6
106
+ signing_key:
107
+ specification_version: 3
108
+ summary: An unified redis interface for redis-rb and em-redis.
109
+ test_files: []