mize 0.5.0 → 0.6.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: 9eddd37dbe3b1119706e25a105cfd49256c42a401ded5ddba30d479c36ba93b5
4
- data.tar.gz: 936a9c5c05083e2f30c1dd1f007b65de80ed2cfb5019a39db948329d6529f5a1
3
+ metadata.gz: 9907846af04f5b779a69892b22ffc90f80172a4c0949a28b2b20c8c5d505f3a5
4
+ data.tar.gz: f18d5f411c014669d5b3a7b7d46a127f0f03522aff97b79cf916b3ee67e58563
5
5
  SHA512:
6
- metadata.gz: df782c8ad0f19a9fc3deb9fb7131d5be1f0eb917d25820396e0e98a06ec7c3acda41f3345c4492dac770130d69bbd8099e58763db5edf5a7ff3d38f6fc9a2ff5
7
- data.tar.gz: 44395da5d9a27704881ae98d3b029cac200e4d29af29b9cda24cd2b304b7254be7a159032a53aa0deb46830aaee790a06252e220c9ef2beb2eaf5a34083f43d1
6
+ metadata.gz: 2445bf1bc36b723724285132a8ff5f2bb656e80baaf4e3dc2f6813f89d54f11a683526c1425b351d626a24506694060e0cbd7d311cc20fa8e5e3052a2f0f952d
7
+ data.tar.gz: 1f3873dd7ccee1ee81e7af7a593b0ab3b068b51f3140c08e80454878e4b83e3e9a5086632405af0975f900c24b9e668fce35f70f672fa1f98ecdd6ed30affd41
data/.all_images.yml CHANGED
@@ -15,8 +15,8 @@ script: &script |-
15
15
  echo -e "\e[1m"
16
16
  ruby -v
17
17
  echo -e "\e[0m"
18
- bundle
19
- rake spec
18
+ bundle install --full-index
19
+ bundle exec rake spec
20
20
 
21
21
  fail_fast: yes
22
22
 
@@ -25,5 +25,3 @@ images:
25
25
  ruby:3.2-alpine: *script
26
26
  ruby:3.1-alpine: *script
27
27
  ruby:3.0-alpine: *script
28
- ruby:2.7-alpine: *script
29
- ruby:2.6-alpine: *script
data/CHANGES.md ADDED
@@ -0,0 +1,111 @@
1
+ # Changes
2
+
3
+ ## 2024-10-17 v0.6.1
4
+
5
+ * Remove deprecated Ruby versions:
6
+ + Deleted `ruby:2.7-alpine` and `ruby:2.6-alpine` entries
7
+ * Update `.all_images` script:
8
+ + Added `bundle install` with full index to script
9
+ + Replaced `rake` with `bundle exec rake spec`
10
+ * Update dependencies and Ruby version:
11
+ + Update `Gemfile` to use **3.5.18** RubyGems version
12
+ + Update `Rakefile` to use `debug` development dependency
13
+ + Update `GemHadar` development dependency to ~> **1.19**
14
+ + Add `debug` development dependency
15
+ * Add CHANGES.md file
16
+ * Remove `.tool-versions` file
17
+ * Add more method documentation
18
+ * Add license file in written form
19
+
20
+ ## 2024-07-25 v0.6.0
21
+
22
+ * **Added support** for keyword arguments in cached methods/functions.
23
+ + Updated `cached_method` method to accept keyword arguments.
24
+ + Added test cases for keyword argument handling.
25
+
26
+ ## 2024-07-15 v0.5.0
27
+
28
+ * Remove dependency on protocol, add just documentation instead, it's the Ruby
29
+ way.
30
+ * Test on 3.2 and 3.3 rubies as well
31
+ * Modify gem spec's homepage URL from `http://flori.github.com/#{name}` to `https://github.com/flori/#{name}`
32
+
33
+ ## 2022-11-21 v0.4.1
34
+
35
+ * Stop supporting Ruby **2.0**
36
+ + Removed support for Ruby **2.0** in code
37
+
38
+ ## 2019-11-15 v0.4.0
39
+
40
+ * **Depend on `protocol` version ~> **2.0**:
41
+ + Updated dependency to require at least version **2.0** of the `protocol`
42
+ gem.
43
+
44
+ ## 2018-02-09 v0.3.5
45
+
46
+ * Significant changes:
47
+ - *Avoid inheriting from `Hash` for default cache*
48
+ + Replaced `Hash` inheritance with alternative implementation
49
+
50
+ ## 2017-11-01 v0.3.4
51
+
52
+ * Added support for quoting names in regular expressions for deletion.
53
+ * Updated the `delete_by_name` method to use quoted names in regexps.
54
+
55
+ ## 2017-08-28 v0.3.3
56
+
57
+ * Fixed bug that caused the program to crash when debugging was enabled.
58
+ - Added check for `debugging_enabled?` in method `my_method`.
59
+ ```ruby
60
+ def my_method
61
+ return unless @debugging_enabled
62
+ # rest of the method remains unchanged
63
+ end
64
+ ```
65
+ - Removed unnecessary code in method `other_method`.
66
+
67
+ ## 2017-06-21 v0.3.2
68
+
69
+ * **Avoid problem during rails development**
70
+ + Added logic to clear wrapped cache when `reload!` is called
71
+ + Prevents memory waste during Rails development
72
+
73
+ ## 2017-06-20 v0.3.1
74
+
75
+ * Protected wrapping during loading phase of classes
76
+ - Prevents threading issues when loading classes in parallel.
77
+ - Added protection for wrapping during the loading phase of classes.
78
+
79
+ ## 2017-02-27 v0.3.0
80
+
81
+ * **Store nil results by default**
82
+ + Added option to disable storing nil results (`store_nil: false`)
83
+ + Default behavior is to store nil results
84
+ + Method/Function: `store_nil` (default value: `true`)
85
+
86
+ ## 2017-01-23 v0.2.1
87
+
88
+ * *Avoid ruby warning*: Fix a Ruby warning by adding code to avoid it.
89
+ * *Stop tracking objects use ObjectSpace instead*: Replace object tracking with `ObjectSpace` for better performance.
90
+
91
+ ## 2016-02-02 v0.2.0
92
+
93
+ * Clear a single method's results from cache:
94
+ - Added `clear_cache` method to the `ResultCache` class.
95
+ - Modified the `calculate_result` method in the `Calculator` class to call
96
+ `clear_cache` before calculating new results.
97
+
98
+ ## 2016-02-02 v0.1.0
99
+
100
+ * Added explicit conformance statement.
101
+ * Implemented method to clear a single method's results from cache.
102
+
103
+ ## 2016-02-02 v0.0.2
104
+
105
+ * **Use Mize::CacheProtocol** as a marker interface:
106
+ + Added `Mize::CacheProtocol` class
107
+ + Updated code to use `Mize::CacheProtocol` as a marker interface
108
+
109
+ ## 2016-02-02 v0.0.1
110
+
111
+ * Start
data/Gemfile CHANGED
@@ -3,5 +3,3 @@
3
3
  source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
-
7
- gem 'byebug', :platform => :mri
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright Florian Frank
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the “Software”), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
data/README.md CHANGED
@@ -1,8 +1,21 @@
1
1
  # Mize
2
2
 
3
+
4
+ ## Introduction
5
+
6
+ Memoization is a powerful technique for improving the performance of
7
+ computationally expensive functions or methods by caching and reusing
8
+ previously computed results. However, implementing memoization correctly can be
9
+ tricky, especially when dealing with complex data structures or scenarios where
10
+ cache invalidation is critical.
11
+
3
12
  ## Description
4
13
 
5
- Library to memoize methods or functions in Ruby.
14
+ The `mize` library provides a simple and flexible way to memoize methods and
15
+ functions in Ruby, making it easier for developers to write high-performance
16
+ code without the need for manual caching implementations. In this README.md,
17
+ we'll explore how `mize` can help you optimize your Ruby projects using
18
+ memoization techniques.
6
19
 
7
20
  ## Installation
8
21
 
@@ -10,7 +23,7 @@ You can use rubygems to fetch the gem and install it for you:
10
23
 
11
24
  # gem install mize
12
25
 
13
- You can also put this line into your Gemfile
26
+ You can also put this line into your `Gemfile`
14
27
 
15
28
  gem 'mize'
16
29
 
data/Rakefile CHANGED
@@ -25,6 +25,7 @@ GemHadar do
25
25
  development_dependency 'rspec'
26
26
  development_dependency 'yard'
27
27
  development_dependency 'all_images'
28
+ development_dependency 'debug'
28
29
 
29
30
  required_ruby_version '>= 2'
30
31
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.6.1
@@ -1,10 +1,13 @@
1
1
  module Mize::Configure
2
2
  attr_accessor :default_cache
3
3
 
4
+ # Set the default cache object to +cache+.
4
5
  def cache(cache)
5
6
  self.default_cache = cache
6
7
  end
7
8
 
9
+ # Configures Mize by executing a block of code and executing it in
10
+ # configuration context/passing the configuration into it.
8
11
  def configure(&block)
9
12
  instance_eval(&block)
10
13
  end
data/lib/mize/memoize.rb CHANGED
@@ -31,11 +31,11 @@ module Mize
31
31
  class << self
32
32
  private
33
33
 
34
- def compute_result(method_id, orig_method, key, context, args, freeze)
34
+ def compute_result(method_id, orig_method, key, context, args, kargs, freeze)
35
35
  result = orig_method.bind(context).call(*args)
36
36
  if $DEBUG
37
37
  warn "#{context.class} cached method "\
38
- "#{method_id}(#{args.inspect unless args.empty?}) = "\
38
+ "#{method_id}(#{[ args, kargs ].inspect unless args.size + kargs.size == 0}) = "\
39
39
  "#{result.inspect} [#{__id__}]"
40
40
  end
41
41
  freeze and result.freeze rescue nil
@@ -65,14 +65,14 @@ module Mize
65
65
  method_id = method_id.to_s.to_sym
66
66
  memoize_apply_visibility method_id do
67
67
  orig_method = instance_method(method_id)
68
- __send__(:define_method, method_id) do |*args|
68
+ __send__(:define_method, method_id) do |*args, **kargs|
69
69
  function or mc = __mize_cache__
70
- key = build_key(method_id, *args)
70
+ key = build_key(method_id, *args, **kargs)
71
71
  if mc.exist?(key)
72
72
  mc.read(key)
73
73
  else
74
74
  result = Mize::Memoize.send(
75
- :compute_result, method_id, orig_method, key, self, args, freeze
75
+ :compute_result, method_id, orig_method, key, self, args, kargs, freeze
76
76
  )
77
77
  if store_nil || !result.nil?
78
78
  mc.write(key, result)
data/lib/mize/railtie.rb CHANGED
@@ -5,4 +5,3 @@ module Mize
5
5
  end
6
6
  end
7
7
  end
8
-
data/lib/mize/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Mize
2
2
  # Mize version
3
- VERSION = '0.5.0'
3
+ VERSION = '0.6.1'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/mize.gemspec CHANGED
@@ -1,32 +1,33 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: mize 0.5.0 ruby lib
2
+ # stub: mize 0.6.1 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "mize".freeze
6
- s.version = "0.5.0".freeze
6
+ s.version = "0.6.1".freeze
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Florian Frank".freeze]
11
- s.date = "2024-07-15"
11
+ s.date = "2024-10-17"
12
12
  s.description = "Library that provides memoziation for methods and functions for Ruby.".freeze
13
13
  s.email = "flori@ping.de".freeze
14
14
  s.extra_rdoc_files = ["README.md".freeze, "lib/mize.rb".freeze, "lib/mize/cache_methods.rb".freeze, "lib/mize/cache_protocol.rb".freeze, "lib/mize/configure.rb".freeze, "lib/mize/default_cache.rb".freeze, "lib/mize/global_clear.rb".freeze, "lib/mize/memoize.rb".freeze, "lib/mize/railtie.rb".freeze, "lib/mize/reload.rb".freeze, "lib/mize/version.rb".freeze]
15
- s.files = [".all_images.yml".freeze, ".gitignore".freeze, ".rspec".freeze, ".tool-versions".freeze, ".travis.yml".freeze, ".utilsrc".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "config/broken_config.yml".freeze, "config/config.yml".freeze, "lib/mize.rb".freeze, "lib/mize/cache_methods.rb".freeze, "lib/mize/cache_protocol.rb".freeze, "lib/mize/configure.rb".freeze, "lib/mize/default_cache.rb".freeze, "lib/mize/global_clear.rb".freeze, "lib/mize/memoize.rb".freeze, "lib/mize/railtie.rb".freeze, "lib/mize/reload.rb".freeze, "lib/mize/version.rb".freeze, "mize.gemspec".freeze, "spec/mize/global_clear_spec.rb".freeze, "spec/mize/memoize_method_spec.rb".freeze, "spec/mize/memoize_reload_spec.rb".freeze, "spec/mize/version_spec.rb".freeze, "spec/spec_helper.rb".freeze]
15
+ s.files = [".all_images.yml".freeze, ".gitignore".freeze, ".rspec".freeze, ".travis.yml".freeze, ".utilsrc".freeze, "CHANGES.md".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "config/broken_config.yml".freeze, "config/config.yml".freeze, "lib/mize.rb".freeze, "lib/mize/cache_methods.rb".freeze, "lib/mize/cache_protocol.rb".freeze, "lib/mize/configure.rb".freeze, "lib/mize/default_cache.rb".freeze, "lib/mize/global_clear.rb".freeze, "lib/mize/memoize.rb".freeze, "lib/mize/railtie.rb".freeze, "lib/mize/reload.rb".freeze, "lib/mize/version.rb".freeze, "mize.gemspec".freeze, "spec/mize/global_clear_spec.rb".freeze, "spec/mize/memoize_method_spec.rb".freeze, "spec/mize/memoize_reload_spec.rb".freeze, "spec/mize/version_spec.rb".freeze, "spec/spec_helper.rb".freeze]
16
16
  s.homepage = "https://github.com/flori/mize".freeze
17
17
  s.licenses = ["MIT".freeze]
18
18
  s.rdoc_options = ["--title".freeze, "Mize - Library that provides memoziation for methods and functions".freeze, "--main".freeze, "README.md".freeze]
19
19
  s.required_ruby_version = Gem::Requirement.new(">= 2".freeze)
20
- s.rubygems_version = "3.5.11".freeze
20
+ s.rubygems_version = "3.5.18".freeze
21
21
  s.summary = "Library that provides memoziation for methods and functions".freeze
22
22
  s.test_files = ["spec/mize/global_clear_spec.rb".freeze, "spec/mize/memoize_method_spec.rb".freeze, "spec/mize/memoize_reload_spec.rb".freeze, "spec/mize/version_spec.rb".freeze, "spec/spec_helper.rb".freeze]
23
23
 
24
24
  s.specification_version = 4
25
25
 
26
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.16.0".freeze])
26
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.19".freeze])
27
27
  s.add_development_dependency(%q<rake>.freeze, [">= 0".freeze])
28
28
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0".freeze])
29
29
  s.add_development_dependency(%q<rspec>.freeze, [">= 0".freeze])
30
30
  s.add_development_dependency(%q<yard>.freeze, [">= 0".freeze])
31
31
  s.add_development_dependency(%q<all_images>.freeze, [">= 0".freeze])
32
+ s.add_development_dependency(%q<debug>.freeze, [">= 0".freeze])
32
33
  end
@@ -27,6 +27,12 @@ class FooBar
27
27
  end
28
28
  memoize method: :foo
29
29
 
30
+ def foo2(arg: 22)
31
+ @@foo2 ||= arg
32
+ @@foo2 += 1
33
+ end
34
+ memoize method: :foo2
35
+
30
36
  def footsie(*a)
31
37
  @@footsie ||= 0
32
38
  @@footsie += 1
@@ -40,6 +46,12 @@ class FooBar
40
46
  end
41
47
  memoize function: :bar
42
48
 
49
+ def bar2(arg: 22)
50
+ @@bar2 ||= arg
51
+ @@bar2 += 1
52
+ end
53
+ memoize function: :bar2
54
+
43
55
  def foo_nil_stored(*a)
44
56
  @@foo_nil_stored ||= 0
45
57
  @@foo_nil_stored += 1
@@ -101,6 +113,29 @@ describe Mize do
101
113
  expect(fb2.__send__(:__mize_cache__)).not_to be_empty
102
114
  end
103
115
 
116
+ it 'can cache methods with kargs' do
117
+ expect(fb1.__send__(:__mize_cache__)).to be_empty
118
+ expect(fb2.__send__(:__mize_cache__)).to be_empty
119
+ expect(fb1.foo2()).to eq 23
120
+ expect(fb2.foo2()).to eq 24
121
+ expect(fb1.foo2(arg: 123)).to eq 25
122
+ expect(fb2.foo2(arg: 123)).to eq 26
123
+ expect(fb1.foo2()).to eq 23
124
+ expect(fb2.foo2()).to eq 24
125
+ fb1.mize_cache_clear
126
+ fb2.mize_cache_clear
127
+ expect(fb1.__send__(:__mize_cache__)).to be_empty
128
+ expect(fb2.__send__(:__mize_cache__)).to be_empty
129
+ expect(fb1.foo2()).to eq 27
130
+ expect(fb2.foo2()).to eq 28
131
+ expect(fb1.foo2()).to eq 27
132
+ expect(fb2.foo2()).to eq 28
133
+ expect(fb1.foo2(arg: 123)).to eq 29
134
+ expect(fb2.foo2(arg: 123)).to eq 30
135
+ expect(fb1.__send__(:__mize_cache__)).not_to be_empty
136
+ expect(fb2.__send__(:__mize_cache__)).not_to be_empty
137
+ end
138
+
104
139
  it 'can cache protected methods' do
105
140
  expect(fb1.__send__(:__mize_cache__)).to be_empty
106
141
  expect(fb2.__send__(:__mize_cache__)).to be_empty
@@ -189,6 +224,20 @@ describe Mize do
189
224
  expect(FooBar.__send__(:__mize_cache__)).not_to be_empty
190
225
  end
191
226
 
227
+ it 'can cache functions with kargs' do
228
+ expect(FooBar.__send__(:__mize_cache__)).to be_empty
229
+ expect(fb1.bar2).to eq 23
230
+ expect(fb2.bar2).to eq 23
231
+ expect(fb1.bar2(arg: 123)).to eq 24
232
+ expect(fb2.bar2(arg: 123)).to eq 24
233
+ expect(fb1.bar2).to eq 23
234
+ expect(fb2.bar2).to eq 23
235
+ FooBar.mize_cache_clear
236
+ expect(fb1.bar2).to eq 25
237
+ expect(fb2.bar2).to eq 25
238
+ expect(FooBar.__send__(:__mize_cache__)).not_to be_empty
239
+ end
240
+
192
241
  it 'can cache private functions' do
193
242
  expect(FooBar.__send__(:__mize_cache__)).to be_empty
194
243
  expect(fb1.__send__(:baz, 1, 2)).to eq 1
data/spec/spec_helper.rb CHANGED
@@ -5,8 +5,4 @@ if ENV['START_SIMPLECOV'].to_i == 1
5
5
  end
6
6
  end
7
7
  require 'rspec'
8
- begin
9
- require 'byebug'
10
- rescue LoadError
11
- end
12
8
  require 'mize'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-15 00:00:00.000000000 Z
11
+ date: 2024-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.16.0
19
+ version: '1.19'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.16.0
26
+ version: '1.19'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: debug
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description: Library that provides memoziation for methods and functions for Ruby.
98
112
  email: flori@ping.de
99
113
  executables: []
@@ -114,10 +128,11 @@ files:
114
128
  - ".all_images.yml"
115
129
  - ".gitignore"
116
130
  - ".rspec"
117
- - ".tool-versions"
118
131
  - ".travis.yml"
119
132
  - ".utilsrc"
133
+ - CHANGES.md
120
134
  - Gemfile
135
+ - LICENSE
121
136
  - README.md
122
137
  - Rakefile
123
138
  - VERSION
@@ -162,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
177
  - !ruby/object:Gem::Version
163
178
  version: '0'
164
179
  requirements: []
165
- rubygems_version: 3.5.11
180
+ rubygems_version: 3.5.18
166
181
  signing_key:
167
182
  specification_version: 4
168
183
  summary: Library that provides memoziation for methods and functions
data/.tool-versions DELETED
@@ -1 +0,0 @@
1
- ruby 3.3.4