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 +8 -8
- data/Gemfile +1 -0
- data/lib/mredis.rb +2 -1
- data/lib/mredis/config.rb +15 -0
- data/lib/mredis/fetch.rb +41 -0
- data/lib/mredis/mget.rb +28 -0
- data/lib/mredis/version.rb +1 -1
- metadata +5 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,15 +1,15 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            !binary "U0hBMQ==":
         | 
| 3 3 | 
             
              metadata.gz: !binary |-
         | 
| 4 | 
            -
                 | 
| 4 | 
            +
                NWFmNjk1ZDI2YjYyMmRjZTc1MDNlZmIwMTJhMGFmMWEyZjgwZTg5MA==
         | 
| 5 5 | 
             
              data.tar.gz: !binary |-
         | 
| 6 | 
            -
                 | 
| 6 | 
            +
                MWEwNTdkZmQyMjA5ZGZmY2RmNGY3M2YwMmE3NjE5YTIyNTBiMzBjOA==
         | 
| 7 7 | 
             
            SHA512:
         | 
| 8 8 | 
             
              metadata.gz: !binary |-
         | 
| 9 | 
            -
                 | 
| 10 | 
            -
                 | 
| 11 | 
            -
                 | 
| 9 | 
            +
                Yjc1ZjE0YTIzMmZlY2U1OTk0YWY4NGNkNWQ2NzE0ZjEzYjkyMjc1NDM0ZmIy
         | 
| 10 | 
            +
                ZmRiODJlYmI5MTEyZTk4MjI5ZjJmZjk5MmI4NTBjYjU1OGM5OTQ1MmZiMzRl
         | 
| 11 | 
            +
                MTZmZGFjN2MwZjg3MDA1MGFmODE4NDc2ZDAyZjgwMmEyNTdmODU=
         | 
| 12 12 | 
             
              data.tar.gz: !binary |-
         | 
| 13 | 
            -
                 | 
| 14 | 
            -
                 | 
| 15 | 
            -
                 | 
| 13 | 
            +
                MjZiMjY0MDcxNzcxMTdiMzZjN2U0YWFhZWZhNTNiYzhlMWIxN2YyYjc4Zjgx
         | 
| 14 | 
            +
                NjQ2MzU5NmEyMjE3NDRkOGRiZDM4NzFhNGRjMjJkNTdlNWUwZDdhYzc0MzRl
         | 
| 15 | 
            +
                N2Y5NzY5ODJlODgwODQxMWU2NzdkODM0NTcwZjIyNmMzMzQxMmM=
         | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/lib/mredis.rb
    CHANGED
    
    
    
        data/lib/mredis/fetch.rb
    ADDED
    
    | @@ -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
         | 
    
        data/lib/mredis/mget.rb
    ADDED
    
    | @@ -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
         | 
    
        data/lib/mredis/version.rb
    CHANGED
    
    
    
        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 | 
| 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- | 
| 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: ''
         |