mredis 0.0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YmVlYTJhZDZhM2M1YWQ0ODFhNjcwMGFhMzE5NGM1ZGEwMjQ5NmFhOQ==
4
+ NWFmNjk1ZDI2YjYyMmRjZTc1MDNlZmIwMTJhMGFmMWEyZjgwZTg5MA==
5
5
  data.tar.gz: !binary |-
6
- NzZiOGExMzBkNTdjNzFmOWUwYjE0NzEwMjllMDc2ZDI0MTQwZjlkZA==
6
+ MWEwNTdkZmQyMjA5ZGZmY2RmNGY3M2YwMmE3NjE5YTIyNTBiMzBjOA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MWNkNmU4NGJlYmIwNWVkOGNkZDhmZTY3OTU2ZTExMWEwMDRkOThiYTJhYTFk
10
- ODM2ZmUzMmZiMGVhMGZmNzJkODFlZTdhZDA1MzEyY2NlZjVkMWUzMzExYTFm
11
- ZjRkMTYzNTE2YzY0M2U1ZWJlZmUzZjIzM2Q1YjUzOGVhMWQ0Mjg=
9
+ Yjc1ZjE0YTIzMmZlY2U1OTk0YWY4NGNkNWQ2NzE0ZjEzYjkyMjc1NDM0ZmIy
10
+ ZmRiODJlYmI5MTEyZTk4MjI5ZjJmZjk5MmI4NTBjYjU1OGM5OTQ1MmZiMzRl
11
+ MTZmZGFjN2MwZjg3MDA1MGFmODE4NDc2ZDAyZjgwMmEyNTdmODU=
12
12
  data.tar.gz: !binary |-
13
- ZDY0OTkxZjE1NTI0YjliMjcwYzM4MGUwMGY0MTIzY2RjZjM0NTVhZmE2YmNl
14
- OGE2NDgxZGJkNGQxNWRiM2Q1YzM4MTkxNzRmMmM5OTQ4NDhiZDlkNDRlZGE3
15
- OGY3ZGVkNjc3NGZjYTA1NjcxMjcxNGI0Y2EzODM1ODM5MTBhYTU=
13
+ MjZiMjY0MDcxNzcxMTdiMzZjN2U0YWFhZWZhNTNiYzhlMWIxN2YyYjc4Zjgx
14
+ NjQ2MzU5NmEyMjE3NDRkOGRiZDM4NzFhNGRjMjJkNTdlNWUwZDdhYzc0MzRl
15
+ N2Y5NzY5ODJlODgwODQxMWU2NzdkODM0NTcwZjIyNmMzMzQxMmM=
data/Gemfile CHANGED
@@ -2,3 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in mredis.gemspec
4
4
  gemspec
5
+ gem 'redis'
@@ -2,7 +2,8 @@
2
2
  require "mredis/version"
3
3
 
4
4
  require "mredis/config"
5
- require "mredis/suggestion"
5
+ require "mredis/fetch"
6
+ require "mredis/mget"
6
7
  require "redis"
7
8
 
8
9
  module Mredis
@@ -0,0 +1,15 @@
1
+ module Mredis
2
+ module Config
3
+ OPTION_KEYS = [
4
+ :host,
5
+ :port,
6
+ :db
7
+ ]
8
+ attr_accessor *OPTION_KEYS
9
+
10
+ def configure
11
+ yield self
12
+ $redis = Redis.new(:host => host, :port => port, :db => db)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,41 @@
1
+ module Mredis
2
+ module Fetch
3
+ def redis_key(str)
4
+ "#{self.class.base_class.name.downcase}:#{self.id}:#{str}"
5
+ end
6
+
7
+ def set_redis(key,value)
8
+ begin
9
+ $redis.set redis_key(key),value
10
+ rescue => e
11
+ Rails.logger.error "Redis server error when set #{redis_key(key)}: #{e.message}"
12
+ end
13
+ end
14
+
15
+ def get_redis(key)
16
+ begin
17
+ $redis.get redis_key(key)
18
+ rescue => e
19
+ Rails.logger.error "Redis server error: #{e.message}"
20
+ end
21
+ end
22
+
23
+ def incr_counter(key)
24
+ begin
25
+ key_redis = redis_key(key)
26
+ $redis.exists(key_redis) ? $redis.incr(key_redis) : self.send(key)
27
+ rescue => e
28
+ Rails.logger.error "Redis server error when incr #{key_redis}: #{e.message}"
29
+ end
30
+ end
31
+
32
+ def decr_counter(key)
33
+ begin
34
+ key_redis = redis_key(key)
35
+ $redis.exists(key_redis) ? $redis.decr(key_redis) : self.send(key)
36
+ rescue => e
37
+ Rails.logger.error "Redis server error when decr #{key_redis}: #{e.message}"
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,28 @@
1
+ module Mredis
2
+ module Mget
3
+ def self.mget(objects, str)
4
+ hash = Hash.new
5
+ return hash if objects.blank?
6
+ result = begin
7
+ $redis.mget(generate_key_for_mget(objects, str))
8
+ rescue => e
9
+ Rails.logger.error "Redis server error: #{e.message}"
10
+ objs = objects.first.class == Spot ? objects.first.class.where(id: objects.map(&:id)).includes(:city=>[:country,:state]) : objects
11
+ objs.map{|x| x.try(str) }
12
+ end
13
+ list_ids = objects.map(&:id)
14
+ list_ids.each_index do |index|
15
+ hash[list_ids[index].to_s] = result[index].presence || (objects[index].try(str) rescue nil)
16
+ end
17
+ hash
18
+ end
19
+
20
+ def self.generate_key_for_mget(objects ,str)
21
+ keys = Array.new
22
+ objects.each do |ob|
23
+ keys << "#{ob.class.base_class.name.downcase}:#{ob.id}:#{str}"
24
+ end
25
+ keys
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,3 @@
1
1
  module Mredis
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mredis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dao Anh Khoa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-18 00:00:00.000000000 Z
11
+ date: 2014-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -51,6 +51,9 @@ files:
51
51
  - README.md
52
52
  - Rakefile
53
53
  - lib/mredis.rb
54
+ - lib/mredis/config.rb
55
+ - lib/mredis/fetch.rb
56
+ - lib/mredis/mget.rb
54
57
  - lib/mredis/version.rb
55
58
  - mredis.gemspec
56
59
  homepage: ''