mredis 0.0.1 → 1.0.0

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.
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: ''