valkey-objects 0.1.8 → 0.2.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,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2d76e237c36d52756f924cce5766312f630e6ae7c4a378aa7c0850fa945ed58
4
- data.tar.gz: 3a320e4c5278fe4974b4749f4788c9eedc7b984a7d1949ff39ab22be3bedfe2b
3
+ metadata.gz: 66451b3bbdc217925b068c50c8cdcd5cd392a6ddef99adbc7300c683c112d152
4
+ data.tar.gz: eb06049f2987c87b8cb7fb188e15960fab83d2f7a820205b3ddd06df1ed11828
5
5
  SHA512:
6
- metadata.gz: 864a0c22c28689313528d526b1fd26cafc3957df0a75f7a72cfcc30b87860233a7d9e2c440bbd4e95af1e87777aa589fe075d8da350400c17290321762596695
7
- data.tar.gz: a9554e5a2e77b8420c9df3a0b15031237c1d1f6e1f6844c14bc510117e3755a83483f4c26a30a6744124314062bb27fef5dbd35d8c75483fddabf81bdd021584
6
+ metadata.gz: 78d4470e2aa1cc2b9763265c7a940f4f2da58798460fbce998e2aedd32cdcd6136accca257d83719328e59011b6da185c59f590863642d430488966b9a77cb9e
7
+ data.tar.gz: ad6b0974b14ebd9bc022aa259a4a953556d5ec567d370a0335b279fc695f655713cba4d0499e8cb7d6bc15e610a5ba4918d8a81bdeca4ce8820bd0d65f8f6439
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Valkey
4
4
  module Objects
5
- VERSION = "0.1.8"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
@@ -5,7 +5,7 @@ require_relative "objects/version"
5
5
  require 'redis-client'
6
6
  require 'json'
7
7
  require 'ruby-duration'
8
-
8
+ require 'ap'
9
9
  module VK
10
10
  def self.included(x)
11
11
  x.extend VK
@@ -362,11 +362,12 @@ module VK
362
362
  return h
363
363
  end
364
364
  end
365
+
365
366
  def self.flushdb!
366
367
  VK.redis.call("FLUSHDB")
367
368
  end
369
+
368
370
  def self.[] k
369
371
  VK.redis.call("KEYS", k)
370
372
  end
371
373
  end
372
-
@@ -34,6 +34,8 @@ Gem::Specification.new do |spec|
34
34
  spec.add_dependency "redis-client"
35
35
  spec.add_dependency "json"
36
36
  spec.add_dependency "ruby-duration"
37
+ spec.add_dependency "pry"
38
+ spec.add_dependency "awesome_print"
37
39
  # For more information and examples about making a new gem, check out our
38
40
  # guide at: https://bundler.io/guides/creating_gem.html
39
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valkey-objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Olson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-23 00:00:00.000000000 Z
11
+ date: 2025-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis-client
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: awesome_print
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
55
83
  description: A ruby valkey client inspired by the redis-objects gem.
56
84
  email:
57
85
  - xorgnak@gmail.com
@@ -59,20 +87,14 @@ executables: []
59
87
  extensions: []
60
88
  extra_rdoc_files: []
61
89
  files:
62
- - "#class.rb#"
63
90
  - CHANGELOG.md
64
91
  - CODE_OF_CONDUCT.md
65
92
  - LICENSE.txt
66
93
  - README.md
67
94
  - Rakefile
68
- - class.rb~
69
- - example.rb~
70
95
  - lib/valkey/objects.rb
71
96
  - lib/valkey/objects/version.rb
72
- - module.rb~
73
97
  - sig/valkey/objects.rbs
74
- - valkey-objects-0.1.0.gem
75
- - valkey-objects-0.1.1.gem
76
98
  - valkey-objects.gemspec
77
99
  homepage: https://github.com/xorgnak/valkey-client
78
100
  licenses:
data/#class.rb# DELETED
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'valkey/objects'
4
-
5
- require 'pry'
6
-
7
- class Game
8
- include VK
9
- sortedset :points
10
- queue :log
11
- def initialize k
12
- @id = k
13
- end
14
- def score p, h={ points: 1 }
15
- self.points.poke p, h[:points]
16
- end
17
- end
18
-
19
- @game = Hash.new { |h,k| h[k] = Game.new(k) }
20
-
21
- Pry.start
data/class.rb~ DELETED
@@ -1,97 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'valkey/objects'
4
-
5
- # Using ValKey Objects
6
- ## Create your class object
7
- class ValKey
8
- # 1. include valkey-objects layer
9
- include VK
10
- # 2. stitch your object together.
11
- value :myvalue
12
- counter :mycounter
13
- hashkey :myhash
14
- sortedset :mysortedset
15
- set :myset
16
- queue :myqueue
17
- place :myplace
18
- pipe :mypipe
19
- toggle :mytoggle
20
- # 3. define @id in initialize.
21
- def initialize k
22
- @id = k
23
- end
24
- # other stuff...
25
- end
26
-
27
- ## then user it.
28
- puts %[=== Valkey Object Test ===]
29
- @x = ValKey.new("My Special Valkey object.")
30
- #### pub/sub pipe
31
- ##### on message
32
- @x.mypipe.on { |msg| puts %[MSG]; ap msg }
33
- ##### publish message
34
- @x.mypipe << "Pipe Connected!"
35
- ### get/set string value...
36
- @x.myvalue.value = "Hello, World"
37
- ### get/set/incr/decr float value...
38
- @x.mycounter.value = 1.2345
39
- ### get/set key/value pairs...
40
- @x.myhash[:key] = "Value"
41
- ### sort keys by score...
42
- #### set
43
- @x.mysortedset["my other key"] = 9.8
44
- #### poke/get
45
- @x.mysortedset.poke "my key", @x.mysortedset["my other key"]
46
- #### by high score
47
- @x.mysortedset.value { |i, e| ap %[Sorted Sets: i: #{i} e: #{e}] }
48
- ### collect keys...
49
- @x.myset << "my member"
50
- @x.myset << "my new member"
51
- #### filter by regexp...
52
- h = @x.myset[/ new /]
53
- puts %[Filtered set members:]
54
- ap h
55
- #### each collection key....
56
- @x.myset.value { |i, e| puts %[Sets: i: #{i} e: #{e}] }
57
- ### points by coordinates...
58
- @x.myplace.add "Palermo", 13.361389, 38.115556
59
- @x.myplace.add "Catania", 15.087269, 37.502669
60
- #### distance between points.
61
- distance = @x.myplace.distance "Palermo", "Catania"
62
- ap %[The meters between the points: #{distance}]
63
- #### places within radius by coordinates
64
- places = @x.myplace.radius 15.087269, 37.502669, 5000
65
- ap %[The places within 5000 meters of the coordinates: #{places}]
66
- puts %[Place Values...]
67
- #### collection of places...
68
- @x.myplace.value { |i, e| puts %[Places: i: #{i} e: #{e}] }
69
- ap VK['*']
70
-
71
-
72
-
73
- ## Or as a collection of "X"s...
74
- module X
75
- @@X = Hash.new { |h,k| h[k] = Ex.new(k) }
76
- class Ex
77
- include VK
78
- set :stuff
79
- pipe :ear
80
- def initialize k
81
- @id = k
82
- end
83
- end
84
- def self.keys
85
- @@X.keys
86
- end
87
- def self.[] k
88
- if !@@X.has_key?(k)
89
- @@X[k].ear.on { |msg| puts "MSG[#{k}]:"; ap msg }
90
- end
91
- @@X[k]
92
- end
93
- end
94
-
95
- @x[:a] = X['Aaa']
96
- @x[:b] = X['Bbb']
97
- @x[:c] = X['Ccc']
data/example.rb~ DELETED
@@ -1,101 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'valkey/objects'
4
-
5
- # Using ValKey Objects
6
- ## Create your class object
7
- class ValKey
8
- # 1. include valkey-objects layer
9
- include VK
10
- # 2. stitch your object together.
11
- value :myvalue
12
- counter :mycounter
13
- hashkey :myhash
14
- sortedset :mysortedset
15
- set :myset
16
- queue :myqueue
17
- place :myplace
18
- pipe :mypipe
19
- toggle :mytoggle
20
- # 3. define @id in initialize.
21
- def initialize k
22
- @id = k
23
- end
24
- # other stuff...
25
- end
26
-
27
-
28
-
29
- require 'awesome_print'
30
-
31
- @x = {}
32
-
33
- ## then user it.
34
- puts %[=== Valkey Object Test ===]
35
- @x[:x] = ValKey.new("My Special Valkey object.")
36
- #### pub/sub pipe
37
- ##### on message
38
- @x[:x].mypipe.on { |msg| puts %[MSG]; ap msg }
39
- ##### publish message
40
- @x[:x].mypipe << "Pipe Connected!"
41
- ### get/set string value...
42
- @x[:x].myvalue.value = "Hello, World"
43
- ### get/set/incr/decr float value...
44
- @x[:x].mycounter.value = 1.2345
45
- ### get/set key/value pairs...
46
- @x[:x].myhash[:key] = "Value"
47
- ### sort keys by score...
48
- #### set
49
- @x[:x].mysortedset["my other key"] = 9.8
50
- #### poke/get
51
- @x[:x].mysortedset.poke "my key", @x[:x].mysortedset["my other key"]
52
- #### by high score
53
- @x[:x].mysortedset.value { |i, e| ap %[Sorted Sets: i: #{i} e: #{e}] }
54
- ### collect keys...
55
- @x[:x].myset << "my member"
56
- @x[:x].myset << "my new member"
57
- #### filter by regexp...
58
- h = @x[:x].myset[/ new /]
59
- puts %[Filtered set members:]
60
- ap h
61
- #### each collection key....
62
- @x[:x].myset.value { |i, e| puts %[Sets: i: #{i} e: #{e}] }
63
- ### points by coordinates...
64
- @x[:x].myplace.add "Palermo", 13.361389, 38.115556
65
- @x[:x].myplace.add "Catania", 15.087269, 37.502669
66
- #### distance between points.
67
- distance = @x[:x].myplace.distance "Palermo", "Catania"
68
- ap %[The meters between the points: #{distance}]
69
- #### places within radius by coordinates
70
- places = @x[:x].myplace.radius 15.087269, 37.502669, 5000
71
- ap %[The places within 5000 meters of the coordinates: #{places}]
72
- puts %[Place Values...]
73
- #### collection of places...
74
- @x[:x].myplace.value { |i, e| puts %[Places: i: #{i} e: #{e}] }
75
- ap VK['*']
76
-
77
- ## Or as a collection of "X"s...
78
- module X
79
- @@X = Hash.new { |h,k| h[k] = Ex.new(k) }
80
- class Ex
81
- include VK
82
- set :stuff
83
- pipe :ear
84
- def initialize k
85
- @id = k
86
- end
87
- end
88
- def self.keys
89
- @@X.keys
90
- end
91
- def self.[] k
92
- if !@@X.has_key?(k)
93
- @@X[k].ear.on { |msg| puts "MSG[#{k}]:"; ap msg }
94
- end
95
- @@X[k]
96
- end
97
- end
98
-
99
- @x[:a] = X['Aaa']
100
- @x[:b] = X['Bbb']
101
- @x[:c] = X['Ccc']
data/module.rb~ DELETED
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'valkey/objects'
4
-
5
- # Using ValKey Objects
6
- ## Create your class object
7
- class ValKey
8
- # 1. include valkey-objects layer
9
- include VK
10
- # 2. stitch your object together.
11
- value :myvalue
12
- counter :mycounter
13
- hashkey :myhash
14
- sortedset :mysortedset
15
- set :myset
16
- queue :myqueue
17
- place :myplace
18
- pipe :mypipe
19
- toggle :mytoggle
20
- # 3. define @id in initialize.
21
- def initialize k
22
- @id = k
23
- end
24
- # other stuff...
25
- end
26
-
27
-
28
-
29
- require 'awesome_print'
30
-
31
- @x = {}
32
-
33
- ## Or as a collection of "X"s...
34
- module X
35
- @@X = Hash.new { |h,k| h[k] = Ex.new(k) }
36
- class Ex
37
- include VK
38
- set :stuff
39
- pipe :ear
40
- def initialize k
41
- @id = k
42
- end
43
- end
44
- def self.keys
45
- @@X.keys
46
- end
47
- def self.[] k
48
- if !@@X.has_key?(k)
49
- @@X[k].ear.on { |msg| puts "MSG[#{k}]:"; ap msg }
50
- end
51
- @@X[k]
52
- end
53
- end
54
-
55
- X['Aaa'].ear << %[A]
56
- X['Bbb'].ear << %[B]
57
- X['Ccc'].ear << %[C]
Binary file
Binary file