lex-memcached 0.2.0 → 0.2.1

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: ef636e82ef50dc51d08210bcd0039b93e3891cbe1ff445474900cd4fc38c36fc
4
- data.tar.gz: '0918bc87ee94c952edb2620f53d333ca3e8cc715c4dbde23038a5796d6bc8e19'
3
+ metadata.gz: 00a90f9caad04dee9474147acfffb9360a9be483d4bd28437f39db3783d7eea1
4
+ data.tar.gz: 15cde1fd094b17a94390ce8907a0dc0a8e20c96b7352e309c8aea805a28833a1
5
5
  SHA512:
6
- metadata.gz: 2dd0aa8a44413bb8c83ffa56cc585e01427a438550f295fb08a3896b6c3903815705fba5e460880ffe075e52bf83604cbfd53a0ee00686066c4b9fa9ae1079e9
7
- data.tar.gz: 5b9a55c1bcd10ece8bfa15b6abda60faeed6c6c4d19ad74889b5874a7141d8fab4d5eb2ff73943e4da64ffb471cee70a72f4b2f2cfccf8ebda68d36fed584c97
6
+ metadata.gz: 707a628d0c396175e43f9fbe61b6594f171e2697dd016198f1b0e4c7b3364ded20b40f87dbc18d266d716aa34c813b3779d8f81f18e66b5f5ecc2207360a6821
7
+ data.tar.gz: 534cc92c3710d831da4a60c9c28e96bd58111d1371be581c0a12eb089ebaf9bfde7bdcb730b0421769cf864e64c29fe4aeb0cc48b944af596c23ce4ea7afa5ce
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+
13
+ Gemfile.lock
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.1] - 2026-03-18
4
+
5
+ ### Fixed
6
+ - `runners/item.rb`: named anonymous `**` splat as `**opts` in `get`, `fetch`, `add`, `delete`, and `append` methods to fix `NameError` at runtime
7
+ - `runners/server.rb`: `flush` now uses `client(server: server, **opts)` helper instead of bypassing it with `Dalli::Client.new` directly
8
+ - Added `if defined?(Legion::Extensions::Helpers::Lex)` guard to both runner files for standalone loading
9
+
10
+ ### Added
11
+ - `spec.license = 'MIT'` in gemspec
12
+ - `Gemfile.lock` added to `.gitignore`
13
+ - Uncommented and fully implemented specs for `Runners::Item`, `Runners::Server`, and `Helpers::Client`
14
+ - Entry point `memcached.rb` now requires helpers and runners explicitly
15
+
3
16
  ## [0.2.0] - 2026-03-15
4
17
 
5
18
  ### Added
data/README.md CHANGED
@@ -14,6 +14,19 @@ Or add to your Gemfile:
14
14
  gem 'lex-memcached'
15
15
  ```
16
16
 
17
+ ## Standalone Usage
18
+
19
+ ```ruby
20
+ require 'legion/extensions/memcached'
21
+
22
+ client = Legion::Extensions::Memcached::Client.new(server: '10.0.0.1:11211')
23
+ client.set(key: 'foo', value: 'bar', server: '10.0.0.1:11211', ttl: 300)
24
+ client.get(key: 'foo', server: '10.0.0.1:11211')
25
+ client.stats(server: '10.0.0.1:11211')
26
+ ```
27
+
28
+ Constructor accepts `server:` (default `'127.0.0.1:11211'`).
29
+
17
30
  ## Runners
18
31
 
19
32
  | Runner | Methods |
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.summary = 'LEX::Memcached'
14
14
  spec.description = 'LegionIO Extensions to connect to and manage memcached servers'
15
15
  spec.homepage = 'https://github.com/LegionIO/lex-memcached'
16
+ spec.license = 'MIT'
16
17
  spec.required_ruby_version = '>= 3.4'
17
18
 
18
19
  spec.metadata['homepage_uri'] = spec.homepage
@@ -13,26 +13,26 @@ module Legion
13
13
  end
14
14
 
15
15
  def get(key:, server: nil, **)
16
- { success: true, get: client(server: server, **).get(key), **opts }
16
+ { success: true, get: client(server: server, **).get(key) }
17
17
  end
18
18
 
19
19
  def fetch(key:, server: nil, **)
20
- { success: true, fetch: client(server: server, **).fetch(key), **opts }
20
+ { success: true, fetch: client(server: server, **).fetch(key) }
21
21
  end
22
22
 
23
23
  def add(key:, value:, ttl:, server: nil, **)
24
- { success: true, add: client(server: server, **).add(key, value, ttl), **opts }
24
+ { success: true, add: client(server: server, **).add(key, value, ttl) }
25
25
  end
26
26
 
27
27
  def delete(key:, server: nil, **)
28
- { success: true, delete: client(server: server, **).delete(key), **opts }
28
+ { success: true, delete: client(server: server, **).delete(key) }
29
29
  end
30
30
 
31
31
  def append(key:, value:, server: nil, **)
32
- { success: true, append: client(server: server, **).append(key, value), **opts }
32
+ { success: true, append: client(server: server, **).append(key, value) }
33
33
  end
34
34
 
35
- include Legion::Extensions::Helpers::Lex
35
+ include Legion::Extensions::Helpers::Lex if defined?(Legion::Extensions::Helpers::Lex)
36
36
  end
37
37
  end
38
38
  end
@@ -8,26 +8,26 @@ module Legion
8
8
  include Legion::Extensions::Memcached::Helpers::Client
9
9
 
10
10
  def alive(server: nil, **)
11
- { success: true, result: client(server: server, **).alive?, **opts }
11
+ { success: true, result: client(server: server, **).alive? }
12
12
  end
13
13
 
14
- def flush(delay: 0, server: nil, **opts)
15
- { success: true, result: Dalli::Client.new(server).flush(delay), **opts }
14
+ def flush(server: nil, delay: 0, **)
15
+ { success: true, result: client(server: server, **).flush(delay) }
16
16
  end
17
17
 
18
18
  def stats(delay: 0, server: nil, **)
19
- { success: true, result: client(server: server, **).stats(delay), **opts }
19
+ { success: true, result: client(server: server, **).stats(delay) }
20
20
  end
21
21
 
22
22
  def reset_stats(server: nil, **)
23
- { success: true, result: client(server: server, **).reset_stats, **opts }
23
+ { success: true, result: client(server: server, **).reset_stats }
24
24
  end
25
25
 
26
26
  def version(server: nil, **)
27
- { success: true, result: client(server: server, **).version, **opts }
27
+ { success: true, result: client(server: server, **).version }
28
28
  end
29
29
 
30
- include Legion::Extensions::Helpers::Lex
30
+ include Legion::Extensions::Helpers::Lex if defined?(Legion::Extensions::Helpers::Lex)
31
31
  end
32
32
  end
33
33
  end
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Memcached
6
- VERSION = '0.2.0'
6
+ VERSION = '0.2.1'
7
7
  end
8
8
  end
9
9
  end
@@ -1,6 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'legion/extensions/memcached/version'
4
+ require 'legion/extensions/memcached/helpers/client'
5
+ require 'legion/extensions/memcached/runners/item'
6
+ require 'legion/extensions/memcached/runners/server'
4
7
  require 'legion/extensions/memcached/client'
5
8
 
6
9
  module Legion
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-memcached
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
@@ -38,7 +38,6 @@ files:
38
38
  - CLAUDE.md
39
39
  - Dockerfile
40
40
  - Gemfile
41
- - Gemfile.lock
42
41
  - README.md
43
42
  - docker_deploy.rb
44
43
  - lex-memcached.gemspec
@@ -49,7 +48,8 @@ files:
49
48
  - lib/legion/extensions/memcached/runners/server.rb
50
49
  - lib/legion/extensions/memcached/version.rb
51
50
  homepage: https://github.com/LegionIO/lex-memcached
52
- licenses: []
51
+ licenses:
52
+ - MIT
53
53
  metadata:
54
54
  homepage_uri: https://github.com/LegionIO/lex-memcached
55
55
  source_code_uri: https://github.com/LegionIO/lex-memcached
data/Gemfile.lock DELETED
@@ -1,160 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- lex-memcached (0.2.0)
5
- dalli (>= 3.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- addressable (2.8.9)
11
- public_suffix (>= 2.0.2, < 8.0)
12
- amq-protocol (2.5.1)
13
- ast (2.4.3)
14
- aws-eventstream (1.4.0)
15
- aws-sigv4 (1.12.1)
16
- aws-eventstream (~> 1, >= 1.0.2)
17
- base64 (0.3.0)
18
- bigdecimal (4.0.1)
19
- bunny (2.24.0)
20
- amq-protocol (~> 2.3)
21
- sorted_set (~> 1, >= 1.0.2)
22
- concurrent-ruby (1.3.6)
23
- concurrent-ruby-ext (1.3.6)
24
- concurrent-ruby (= 1.3.6)
25
- connection_pool (2.5.5)
26
- daemons (1.4.1)
27
- dalli (5.0.2)
28
- logger
29
- diff-lcs (1.6.2)
30
- docile (1.4.1)
31
- json (2.19.1)
32
- json-schema (6.2.0)
33
- addressable (~> 2.8)
34
- bigdecimal (>= 3.1, < 5)
35
- json_pure (2.8.1)
36
- language_server-protocol (3.17.0.5)
37
- legion-cache (1.2.0)
38
- connection_pool (>= 2.2.3)
39
- dalli (>= 2.7)
40
- legion-logging
41
- legion-settings
42
- redis (>= 4.2)
43
- legion-crypt (1.2.0)
44
- vault (>= 0.15.0)
45
- legion-json (1.2.0)
46
- json_pure
47
- multi_json
48
- legion-logging (1.2.0)
49
- rainbow (~> 3)
50
- legion-settings (1.2.0)
51
- legion-json (>= 1.2)
52
- legion-transport (1.2.0)
53
- bunny (>= 2.17.0)
54
- concurrent-ruby (>= 1.1.7)
55
- legion-json
56
- legion-settings
57
- legionio (1.2.1)
58
- concurrent-ruby (>= 1.1.7)
59
- concurrent-ruby-ext (>= 1.1.7)
60
- daemons (>= 1.3.1)
61
- legion-cache (>= 0.2.0)
62
- legion-crypt (>= 0.2.0)
63
- legion-json (>= 0.2.0)
64
- legion-logging (>= 0.2.0)
65
- legion-settings (>= 0.2.0)
66
- legion-transport (>= 1.1.9)
67
- lex-node
68
- oj (>= 3.10)
69
- thor (>= 1)
70
- lex-node (0.2.0)
71
- lint_roller (1.1.0)
72
- logger (1.7.0)
73
- mcp (0.8.0)
74
- json-schema (>= 4.1)
75
- multi_json (1.19.1)
76
- net-http-persistent (4.0.8)
77
- connection_pool (>= 2.2.4, < 4)
78
- oj (3.16.16)
79
- bigdecimal (>= 3.0)
80
- ostruct (>= 0.2)
81
- ostruct (0.6.3)
82
- parallel (1.27.0)
83
- parser (3.3.10.2)
84
- ast (~> 2.4.1)
85
- racc
86
- prism (1.9.0)
87
- public_suffix (7.0.5)
88
- racc (1.8.1)
89
- rainbow (3.1.1)
90
- rake (13.3.1)
91
- rbtree (0.4.6)
92
- redis (5.4.1)
93
- redis-client (>= 0.22.0)
94
- redis-client (0.27.0)
95
- connection_pool
96
- regexp_parser (2.11.3)
97
- rspec (3.13.2)
98
- rspec-core (~> 3.13.0)
99
- rspec-expectations (~> 3.13.0)
100
- rspec-mocks (~> 3.13.0)
101
- rspec-core (3.13.6)
102
- rspec-support (~> 3.13.0)
103
- rspec-expectations (3.13.5)
104
- diff-lcs (>= 1.2.0, < 2.0)
105
- rspec-support (~> 3.13.0)
106
- rspec-mocks (3.13.8)
107
- diff-lcs (>= 1.2.0, < 2.0)
108
- rspec-support (~> 3.13.0)
109
- rspec-support (3.13.7)
110
- rspec_junit_formatter (0.6.0)
111
- rspec-core (>= 2, < 4, != 2.12.0)
112
- rubocop (1.85.1)
113
- json (~> 2.3)
114
- language_server-protocol (~> 3.17.0.2)
115
- lint_roller (~> 1.1.0)
116
- mcp (~> 0.6)
117
- parallel (~> 1.10)
118
- parser (>= 3.3.0.2)
119
- rainbow (>= 2.2.2, < 4.0)
120
- regexp_parser (>= 2.9.3, < 3.0)
121
- rubocop-ast (>= 1.49.0, < 2.0)
122
- ruby-progressbar (~> 1.7)
123
- unicode-display_width (>= 2.4.0, < 4.0)
124
- rubocop-ast (1.49.1)
125
- parser (>= 3.3.7.2)
126
- prism (~> 1.7)
127
- ruby-progressbar (1.13.0)
128
- simplecov (0.22.0)
129
- docile (~> 1.1)
130
- simplecov-html (~> 0.11)
131
- simplecov_json_formatter (~> 0.1)
132
- simplecov-html (0.13.2)
133
- simplecov_json_formatter (0.1.4)
134
- sorted_set (1.1.0)
135
- rbtree
136
- thor (1.5.0)
137
- unicode-display_width (3.2.0)
138
- unicode-emoji (~> 4.1)
139
- unicode-emoji (4.2.0)
140
- vault (0.20.0)
141
- aws-sigv4
142
- base64
143
- connection_pool (~> 2.4)
144
- net-http-persistent (~> 4.0, >= 4.0.2)
145
-
146
- PLATFORMS
147
- arm64-darwin-25
148
- ruby
149
-
150
- DEPENDENCIES
151
- legionio
152
- lex-memcached!
153
- rake
154
- rspec
155
- rspec_junit_formatter
156
- rubocop
157
- simplecov
158
-
159
- BUNDLED WITH
160
- 2.6.9