me-redis 0.1.5 → 0.1.6
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 +4 -4
 - data/CHANGELOG.md +3 -0
 - data/Dockerfile +1 -1
 - data/docker-compose.yml +13 -0
 - data/lib/me_redis/me_redis_hot_migrator.rb +6 -6
 - data/lib/me_redis/version.rb +1 -1
 - data/lib/me_redis/zip_keys.rb +1 -1
 - data/lib/me_redis/zip_to_hash.rb +2 -2
 - data/lib/me_redis/zip_values.rb +1 -1
 - data/lib/me_redis.rb +3 -3
 - data/me-redis.gemspec +1 -1
 - data/ruby3.Dockerfile +7 -0
 - metadata +10 -4
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: fcb807ddbff3ae63c2c4ae0a1bdd2bee8e37202ca0477fc3c86d6b7c58feaa3d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 9d60ce417f2b0dfbf5e7fdf56ab6057e1a4f3bdb2ecc6793f8a952dc6fa9ed82
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 644bb9d176681ad580f7d268e6a3d51e4c06632d2269d00521a318544ed34a5fa50e9cc9035d94a6d823c3bd1e7b1d481406c4d3c82681343cfbb64c464e77b0
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 4440092927b370e803e9d52eeb67477e9304734b178f4d013b4dec13af4d7ff44d9870190316e89f1fd515130cf0b838ab5401534ef089981cf16f6b2f31c41d
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/Dockerfile
    CHANGED
    
    
    
        data/docker-compose.yml
    CHANGED
    
    | 
         @@ -9,6 +9,19 @@ services: 
     | 
|
| 
       9 
9 
     | 
    
         
             
                build: .
         
     | 
| 
       10 
10 
     | 
    
         
             
                image: me-redis-test
         
     | 
| 
       11 
11 
     | 
    
         
             
                command: bundle exec rake test
         
     | 
| 
      
 12 
     | 
    
         
            +
                volumes:
         
     | 
| 
      
 13 
     | 
    
         
            +
                  - '.:/me-redis'
         
     | 
| 
      
 14 
     | 
    
         
            +
                depends_on:
         
     | 
| 
      
 15 
     | 
    
         
            +
                  - redis
         
     | 
| 
      
 16 
     | 
    
         
            +
                environment:
         
     | 
| 
      
 17 
     | 
    
         
            +
                  REDIS_URL: redis://redis:6379
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              test3:
         
     | 
| 
      
 20 
     | 
    
         
            +
                build:
         
     | 
| 
      
 21 
     | 
    
         
            +
                  context: .
         
     | 
| 
      
 22 
     | 
    
         
            +
                  dockerfile: ruby3.Dockerfile
         
     | 
| 
      
 23 
     | 
    
         
            +
                image: me-redis-test-3
         
     | 
| 
      
 24 
     | 
    
         
            +
                command: bundle exec rake test
         
     | 
| 
       12 
25 
     | 
    
         
             
                volumes:
         
     | 
| 
       13 
26 
     | 
    
         
             
                  - '.:/me-redis'
         
     | 
| 
       14 
27 
     | 
    
         
             
                depends_on:
         
     | 
| 
         @@ -9,17 +9,17 @@ module MeRedisHotMigrator 
     | 
|
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                base.class_eval do
         
     | 
| 
       11 
11 
     | 
    
         
             
                  ZK_FALLBACK_METHODS.each do |method|
         
     | 
| 
       12 
     | 
    
         
            -
                    alias_method " 
     | 
| 
      
 12 
     | 
    
         
            +
                    alias_method "___#{method}", method
         
     | 
| 
       13 
13 
     | 
    
         
             
                  end
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
                  include(MeRedis)
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
                  def me_get( key )
         
     | 
| 
       18 
     | 
    
         
            -
                    prev_future =  
     | 
| 
      
 18 
     | 
    
         
            +
                    prev_future = ___get( key ) unless @client.is_a?(self.class::Client)
         
     | 
| 
       19 
19 
     | 
    
         
             
                    newvl = super(key)
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                    newvl.prev_future = prev_future if newvl.is_a?(self.class::Future)
         
     | 
| 
       22 
     | 
    
         
            -
                    newvl ||  
     | 
| 
      
 22 
     | 
    
         
            +
                    newvl || ___get( key )
         
     | 
| 
       23 
23 
     | 
    
         
             
                  end
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
25 
     | 
    
         
             
                  def me_mget(*keys)
         
     | 
| 
         @@ -36,15 +36,15 @@ module MeRedisHotMigrator 
     | 
|
| 
       36 
36 
     | 
    
         
             
              module PrependMethods
         
     | 
| 
       37 
37 
     | 
    
         
             
                ZK_FALLBACK_METHODS.each do |method|
         
     | 
| 
       38 
38 
     | 
    
         
             
                  define_method(method) do |*args|
         
     | 
| 
       39 
     | 
    
         
            -
                    prev_future = send(" 
     | 
| 
      
 39 
     | 
    
         
            +
                    prev_future = send("___#{method}", *args) unless @client.is_a?(self.class::Client)
         
     | 
| 
       40 
40 
     | 
    
         
             
                    newvl = super(*args)
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
                    newvl.prev_future = prev_future if newvl.is_a?(self.class::Future)
         
     | 
| 
       43 
43 
     | 
    
         | 
| 
       44 
44 
     | 
    
         
             
                    if method != :mget
         
     | 
| 
       45 
     | 
    
         
            -
                      newvl || send(" 
     | 
| 
      
 45 
     | 
    
         
            +
                      newvl || send("___#{method}", *args)
         
     | 
| 
       46 
46 
     | 
    
         
             
                    else
         
     | 
| 
       47 
     | 
    
         
            -
                      newvl.is_a?(Array) ? newvl.zip( send(" 
     | 
| 
      
 47 
     | 
    
         
            +
                      newvl.is_a?(Array) ? newvl.zip( send("___#{method}", *args) ).map!{|nvl, oldv| nvl || oldv } : newvl
         
     | 
| 
       48 
48 
     | 
    
         
             
                    end
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
50 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/me_redis/version.rb
    CHANGED
    
    
    
        data/lib/me_redis/zip_keys.rb
    CHANGED
    
    | 
         @@ -42,7 +42,7 @@ module MeRedis 
     | 
|
| 
       42 
42 
     | 
    
         
             
                def persist(key); super(zip_key(key)) end
         
     | 
| 
       43 
43 
     | 
    
         | 
| 
       44 
44 
     | 
    
         
             
                def decrby( key, decrement ); super(zip_key(key), decrement) end
         
     | 
| 
       45 
     | 
    
         
            -
                def set( key, value, options  
     | 
| 
      
 45 
     | 
    
         
            +
                def set( key, value, **options );  super( zip_key(key), value, **options ) end
         
     | 
| 
       46 
46 
     | 
    
         
             
                def ttl(key); super( zip_key(key) ) end
         
     | 
| 
       47 
47 
     | 
    
         
             
                def mset( *key_values ); super( *key_values.each_slice(2).map{ |k,v| [zip_key(k),v] }.flatten ) end
         
     | 
| 
       48 
48 
     | 
    
         
             
                def mget( *keys ); super( *keys.map!{ |k| zip_key(k) } ) end
         
     | 
    
        data/lib/me_redis/zip_to_hash.rb
    CHANGED
    
    | 
         @@ -3,8 +3,8 @@ module MeRedis 
     | 
|
| 
       3 
3 
     | 
    
         
             
              module ZipToHash
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
                module PrependMethods
         
     | 
| 
       6 
     | 
    
         
            -
                  def initialize(*args, &block)
         
     | 
| 
       7 
     | 
    
         
            -
                    super(*args, &block)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  def initialize(*args, **kwargs, &block)
         
     | 
| 
      
 7 
     | 
    
         
            +
                    super(*args,**kwargs, &block)
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                    # hash-max-ziplist-entries must be cashed, we can't ask Redis every time we need to zip keys,
         
     | 
| 
       10 
10 
     | 
    
         
             
                    # cause it's less performant and impossible during pipelining.
         
     | 
    
        data/lib/me_redis/zip_values.rb
    CHANGED
    
    | 
         @@ -98,7 +98,7 @@ module MeRedis 
     | 
|
| 
       98 
98 
     | 
    
         | 
| 
       99 
99 
     | 
    
         
             
                # Redis prepended methods
         
     | 
| 
       100 
100 
     | 
    
         
             
                def get( key ); unzip_value( super( key ), key) end
         
     | 
| 
       101 
     | 
    
         
            -
                def set( key, value, options 
     | 
| 
      
 101 
     | 
    
         
            +
                def set( key, value, **options); super( key, zip_value(value, key), **options ) end
         
     | 
| 
       102 
102 
     | 
    
         | 
| 
       103 
103 
     | 
    
         
             
                def mget(*args); unzip_arr_or_future(super(*args), args ) end
         
     | 
| 
       104 
104 
     | 
    
         
             
                def mset(*args); super( *map_msets_arr(args) ) end
         
     | 
    
        data/lib/me_redis.rb
    CHANGED
    
    | 
         @@ -17,17 +17,16 @@ require 'zlib' 
     | 
|
| 
       17 
17 
     | 
    
         
             
            module MeRedis
         
     | 
| 
       18 
18 
     | 
    
         
             
              module ClassMethods
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
                def configure( config  
     | 
| 
      
 20 
     | 
    
         
            +
                def configure( **config )
         
     | 
| 
       21 
21 
     | 
    
         
             
                  # at start they are nils, but at subsequent calls they may not be nils
         
     | 
| 
       22 
22 
     | 
    
         
             
                  me_config.key_zip_regxp = nil
         
     | 
| 
       23 
23 
     | 
    
         
             
                  me_config.compress_ns_regexp = nil
         
     | 
| 
       24 
24 
     | 
    
         
             
                  @zip_ns_finder = nil
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                  config.each{ |key,value| me_config.send( "#{key}=", value ) } if config
         
     | 
| 
      
 26 
     | 
    
         
            +
                  config.each { |key,value| me_config.send( "#{key}=", value ) } if config
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                  yield( me_config ) if block_given?
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
30 
     | 
    
         
             
                  prepare_zip_crumbs
         
     | 
| 
       32 
31 
     | 
    
         
             
                  prepare_compressors
         
     | 
| 
       33 
32 
     | 
    
         | 
| 
         @@ -99,6 +98,7 @@ module MeRedis 
     | 
|
| 
       99 
98 
     | 
    
         | 
| 
       100 
99 
     | 
    
         
             
                def zip_ns_finder
         
     | 
| 
       101 
100 
     | 
    
         
             
                  return @zip_ns_finder if @zip_ns_finder
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
       102 
102 
     | 
    
         
             
                  regexps_compress_ns = me_config.compress_namespaces.keys.select{|key| key.is_a?(Regexp) }
         
     | 
| 
       103 
103 
     | 
    
         
             
                  strs_compress_ns = me_config.compress_namespaces.keys.select{|key| !key.is_a?(Regexp) }
         
     | 
| 
       104 
104 
     | 
    
         | 
    
        data/me-redis.gemspec
    CHANGED
    
    | 
         @@ -27,7 +27,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       27 
27 
     | 
    
         
             
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         
     | 
| 
       28 
28 
     | 
    
         
             
              spec.require_paths = ["lib"]
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
              spec.add_dependency 'redis', '>= 3.0'
         
     | 
| 
      
 30 
     | 
    
         
            +
              spec.add_dependency 'redis', '>= 3.0', '<= 4.5.1'
         
     | 
| 
       31 
31 
     | 
    
         
             
              spec.add_dependency 'base62-rb'
         
     | 
| 
       32 
32 
     | 
    
         
             
              spec.add_dependency "awesome_print"
         
     | 
| 
       33 
33 
     | 
    
         | 
    
        data/ruby3.Dockerfile
    ADDED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: me-redis
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.6
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - alekseyl
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-07-18 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: redis
         
     | 
| 
         @@ -17,6 +17,9 @@ dependencies: 
     | 
|
| 
       17 
17 
     | 
    
         
             
                - - ">="
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
19 
     | 
    
         
             
                    version: '3.0'
         
     | 
| 
      
 20 
     | 
    
         
            +
                - - "<="
         
     | 
| 
      
 21 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 22 
     | 
    
         
            +
                    version: 4.5.1
         
     | 
| 
       20 
23 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       21 
24 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
25 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -24,6 +27,9 @@ dependencies: 
     | 
|
| 
       24 
27 
     | 
    
         
             
                - - ">="
         
     | 
| 
       25 
28 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
29 
     | 
    
         
             
                    version: '3.0'
         
     | 
| 
      
 30 
     | 
    
         
            +
                - - "<="
         
     | 
| 
      
 31 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 32 
     | 
    
         
            +
                    version: 4.5.1
         
     | 
| 
       27 
33 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
34 
     | 
    
         
             
              name: base62-rb
         
     | 
| 
       29 
35 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -137,6 +143,7 @@ files: 
     | 
|
| 
       137 
143 
     | 
    
         
             
            - lib/me_redis/zip_to_hash.rb
         
     | 
| 
       138 
144 
     | 
    
         
             
            - lib/me_redis/zip_values.rb
         
     | 
| 
       139 
145 
     | 
    
         
             
            - me-redis.gemspec
         
     | 
| 
      
 146 
     | 
    
         
            +
            - ruby3.Dockerfile
         
     | 
| 
       140 
147 
     | 
    
         
             
            homepage: https://github.com/alekseyl/me-redis
         
     | 
| 
       141 
148 
     | 
    
         
             
            licenses:
         
     | 
| 
       142 
149 
     | 
    
         
             
            - MIT
         
     | 
| 
         @@ -157,8 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       157 
164 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       158 
165 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       159 
166 
     | 
    
         
             
            requirements: []
         
     | 
| 
       160 
     | 
    
         
            -
             
     | 
| 
       161 
     | 
    
         
            -
            rubygems_version: 2.7.6
         
     | 
| 
      
 167 
     | 
    
         
            +
            rubygems_version: 3.2.15
         
     | 
| 
       162 
168 
     | 
    
         
             
            signing_key:
         
     | 
| 
       163 
169 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       164 
170 
     | 
    
         
             
            summary: Memory efficient redis extention
         
     |