sin_lru_redux 2.0.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 85729ffa3e0d98bfbdf486ac9d1e7f784573ce8b45e51f049578d969f5ea14a6
4
- data.tar.gz: c882c657a2cf0b594e793960df7fadb1fcf6a7a771676f3daef99e019263d96b
3
+ metadata.gz: 3a4f3922e84907ba0de45efa46ee990b5947f28a7cd0c636de9ed268bc8a2335
4
+ data.tar.gz: 4e0da38bf6e25d814751eb2304a409dde4da530db49dc17b9c7fbd44ddb16e1b
5
5
  SHA512:
6
- metadata.gz: 9a0821005a8ab87869955770f937f729bc064b6bb75e4749bd0f04b2bf26c50fb698315dc40cf9d360c2a4b2673119eddaa63aace7805601bff34632acdeb082
7
- data.tar.gz: c320f100455634b6d27bfde47c7b2a15ab2c665781c81c19de51b5337f485075fc6185e9d9b43fbdc9b7fdeb6a42c1d6f734799d00a3a58254c3f0f83fb479cb
6
+ metadata.gz: ce0f773d075691a31efb284a2ce23f860cf225d38450020ca32a280e22fb39a1941e79f0c7adb775fbf07c5bf1ecd93241b55b468b500abbc64f2698bfa6e60e
7
+ data.tar.gz: 58b1096ed7841aa618080bd85fbe00d42f056e8784cf9ce0ee03ec5b82792bfcd497abd9c90026e1374b5b513804f78c517ec5f648bef80ed23b94db4b650bd4
data/.rubocop.yml CHANGED
@@ -4,7 +4,7 @@ require:
4
4
  - rubocop-rake
5
5
 
6
6
  AllCops:
7
- TargetRubyVersion: 3.4
7
+ TargetRubyVersion: 2.3
8
8
  NewCops: enable
9
9
 
10
10
  # https://docs.rubocop.org/rubocop/cops_gemspec.html#gemspecrequiredrubyversion
data/CHANGELOG.md ADDED
@@ -0,0 +1,78 @@
1
+ # Changelog
2
+
3
+ ## [2.2.0] - 2024-12-31
4
+
5
+ - New: Raise an error when trying to assign nil to max_size, ttl, or ignore_nil
6
+ - Fix: Fix a bug where ignore_nil was not updated when ignore_nil was specified as false
7
+ - Fix: Fix a bug where items with nil value were deleted when ignore_nil was changed
8
+ - Refactor: Improve implementation
9
+ - Test: Improve tests
10
+ - Other: Improve CI
11
+ - Other: Improve documents
12
+
13
+ ## [2.1.0] - 2024-12-30
14
+
15
+ - New: Set default max_size to 1000
16
+ - Fix: Fix a bug where ttl of item was not extended during LruRedux::TTL::Cache#getset, #fetch, and #[] execution
17
+ - Fix: Fix a bug where items with nil value were not deleted when ignore_nil was changed
18
+ - Refactor: Improve implementation
19
+ - Test: Improve tests
20
+ - Other: Update .gitignore
21
+ - Other: Add bin
22
+ - Other: Update Gemfile
23
+ - Other: Improve gemspec
24
+ - Other: Improve documents
25
+
26
+ ## [2.0.1] - 2024-12-28
27
+
28
+ - Refactor: Make valid_xxxx? methods private
29
+ - Fix: Fix lint CI
30
+ - Other: Update gemspec
31
+
32
+ ## [2.0.0] - 2024-12-28
33
+
34
+ - New: Add ignore_nil argument to cache initialize arguments. If true, blocks called by getset yielding nil values will be returned but not stored in the cache.
35
+ - Fix: Fix LruRedux::TTL::ThreadSafeCache#delete to return deleted value
36
+ - Ruby Support: Drop runtime support for Ruby 2.2 and below and JRuby
37
+
38
+ ## [1.1.0] - 2015-3-30
39
+
40
+ - New: TTL cache added. This cache is LRU like with the addition of time-based eviction. Check the Usage -> TTL Cache section in README.md for details.
41
+
42
+ ## [1.0.0] - 2015-3-26
43
+
44
+ - Ruby Support: Ruby 1.9+ is now required by LruRedux. If you need to use LruRedux in Ruby 1.8, please specify gem version 0.8.4 in your Gemfile. v0.8.4 is the last 1.8 compatible release and included a number of fixes and performance improvements for the Ruby 1.8 implementation. @Seberius
45
+ - Perf: improve performance in Ruby 2.1+ on the MRI @Seberius
46
+
47
+ ## [0.8.4] - 2015-2-20
48
+
49
+ - Fix: regression of ThreadSafeCache under JRuby 1.7 @Seberius
50
+
51
+ ## [0.8.3] - 2015-2-20
52
+
53
+ - Perf: improve ThreadSafeCache performance @Seberius
54
+
55
+ ## [0.8.2] - 2015-2-16
56
+
57
+ - Perf: use #size instead of #count when checking length @Seberius
58
+ - Fix: Cache could grow beyond its size in Ruby 1.8 @Seberius
59
+ - Fix: #each could deadlock in Ruby 1.8 @Seberius
60
+
61
+ ## [0.8.1] - 2013-9-7
62
+
63
+ - Fix #each implementation
64
+ - Fix deadlocks with ThreadSafeCache
65
+ - Version jump is because its been used in production for quite a while now
66
+
67
+ ## [0.0.6] - 2013-4-23
68
+
69
+ - Fix bug in getset, overflow was not returning the yeilded val
70
+
71
+ ## [0.0.5] - 2013-4-23
72
+
73
+ - Added getset and fetch
74
+ - Optimised implementation so it 20-30% faster on Ruby 1.9+
75
+
76
+ ## [0.0.4] - 2013-4-23
77
+
78
+ - Initial version
@@ -0,0 +1,132 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, caste, color, religion, or sexual
10
+ identity and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
19
+
20
+ * Demonstrating empathy and kindness toward other people
21
+ * Being respectful of differing opinions, viewpoints, and experiences
22
+ * Giving and gracefully accepting constructive feedback
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the overall
26
+ community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ * The use of sexualized language or imagery, and sexual attention or advances of
31
+ any kind
32
+ * Trolling, insulting or derogatory comments, and personal or political attacks
33
+ * Public or private harassment
34
+ * Publishing others' private information, such as a physical or email address,
35
+ without their explicit permission
36
+ * Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official email address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at
63
+ [INSERT CONTACT METHOD].
64
+ All complaints will be reviewed and investigated promptly and fairly.
65
+
66
+ All community leaders are obligated to respect the privacy and security of the
67
+ reporter of any incident.
68
+
69
+ ## Enforcement Guidelines
70
+
71
+ Community leaders will follow these Community Impact Guidelines in determining
72
+ the consequences for any action they deem in violation of this Code of Conduct:
73
+
74
+ ### 1. Correction
75
+
76
+ **Community Impact**: Use of inappropriate language or other behavior deemed
77
+ unprofessional or unwelcome in the community.
78
+
79
+ **Consequence**: A private, written warning from community leaders, providing
80
+ clarity around the nature of the violation and an explanation of why the
81
+ behavior was inappropriate. A public apology may be requested.
82
+
83
+ ### 2. Warning
84
+
85
+ **Community Impact**: A violation through a single incident or series of
86
+ actions.
87
+
88
+ **Consequence**: A warning with consequences for continued behavior. No
89
+ interaction with the people involved, including unsolicited interaction with
90
+ those enforcing the Code of Conduct, for a specified period of time. This
91
+ includes avoiding interactions in community spaces as well as external channels
92
+ like social media. Violating these terms may lead to a temporary or permanent
93
+ ban.
94
+
95
+ ### 3. Temporary Ban
96
+
97
+ **Community Impact**: A serious violation of community standards, including
98
+ sustained inappropriate behavior.
99
+
100
+ **Consequence**: A temporary ban from any sort of interaction or public
101
+ communication with the community for a specified period of time. No public or
102
+ private interaction with the people involved, including unsolicited interaction
103
+ with those enforcing the Code of Conduct, is allowed during this period.
104
+ Violating these terms may lead to a permanent ban.
105
+
106
+ ### 4. Permanent Ban
107
+
108
+ **Community Impact**: Demonstrating a pattern of violation of community
109
+ standards, including sustained inappropriate behavior, harassment of an
110
+ individual, or aggression toward or disparagement of classes of individuals.
111
+
112
+ **Consequence**: A permanent ban from any sort of public interaction within the
113
+ community.
114
+
115
+ ## Attribution
116
+
117
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
+ version 2.1, available at
119
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120
+
121
+ Community Impact Guidelines were inspired by
122
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
123
+
124
+ For answers to common questions about this code of conduct, see the FAQ at
125
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126
+ [https://www.contributor-covenant.org/translations][translations].
127
+
128
+ [homepage]: https://www.contributor-covenant.org
129
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130
+ [Mozilla CoC]: https://github.com/mozilla/diversity
131
+ [FAQ]: https://www.contributor-covenant.org/faq
132
+ [translations]: https://www.contributor-covenant.org/translations
data/LICENSE.txt CHANGED
@@ -1,23 +1,22 @@
1
+ The MIT License (MIT)
2
+
1
3
  Copyright (c) 2013 Sam Saffron
2
4
  Copyright (c) 2024 Masahiro
3
5
 
4
- MIT License
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining
7
- a copy of this software and associated documentation files (the
8
- "Software"), to deal in the Software without restriction, including
9
- without limitation the rights to use, copy, modify, merge, publish,
10
- distribute, sublicense, and/or sell copies of the Software, and to
11
- permit persons to whom the Software is furnished to do so, subject to
12
- the following conditions:
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
13
12
 
14
- The above copyright notice and this permission notice shall be
15
- included in all copies or substantial portions of the Software.
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
16
15
 
17
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
- # SinLruRedux [![Gem Version](https://badge.fury.io/rb/sin_lru_redux.svg)](http://badge.fury.io/rb/sin_lru_redux)
1
+ # SinLruRedux
2
+
3
+ [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/cadenza-tech/sin_lru_redux/blob/main/LICENSE.txt) [![tag](https://img.shields.io/github/tag/cadenza-tech/sin_lru_redux.svg?logo=github&color=2EBC4F)](https://github.com/cadenza-tech/sin_lru_redux/blob/main/CHANGELOG.md) [![release](https://github.com/cadenza-tech/sin_lru_redux/actions/workflows/release.yml/badge.svg)](https://github.com/cadenza-tech/sin_lru_redux/actions?query=workflow%3Arelease) [![test](https://github.com/cadenza-tech/sin_lru_redux/actions/workflows/test.yml/badge.svg)](https://github.com/cadenza-tech/sin_lru_redux/actions?query=workflow%3Arelease) [![lint](https://github.com/cadenza-tech/sin_lru_redux/actions/workflows/lint.yml/badge.svg)](https://github.com/cadenza-tech/sin_lru_redux/actions?query=workflow%3Arelease)
2
4
 
3
5
  Efficient and thread-safe LRU cache.
4
6
 
@@ -8,24 +10,24 @@ Forked from [LruRedux](https://github.com/SamSaffron/lru_redux).
8
10
  - [Usage](#usage)
9
11
  - [TTL Cache](#ttl-cache)
10
12
  - [Cache Methods](#cache-methods)
11
- - [Benchmarks](#benchmarks)
12
- - [Other Caches](#other-caches)
13
13
  - [Contributing](#contributing)
14
- - [Changelog](#changelog)
14
+ - [Changelog](https://github.com/cadenza-tech/sin_lru_redux/blob/main/CHANGELOG.md)
15
+ - [License](#license)
16
+ - [Code of Conduct](#code-of-conduct)
15
17
 
16
18
  ## Installation
17
19
 
18
- Add this line to your application's Gemfile:
19
-
20
- gem 'sin_lru_redux'
21
-
22
- And then execute:
20
+ Install the gem and add to the application's Gemfile by executing:
23
21
 
24
- $ bundle install
22
+ ```bash
23
+ bundle add sin_lru_redux
24
+ ```
25
25
 
26
- Or install it yourself as:
26
+ If bundler is not being used to manage dependencies, install the gem by executing:
27
27
 
28
- $ gem install sin_lru_redux
28
+ ```bash
29
+ gem install sin_lru_redux
30
+ ```
29
31
 
30
32
  ## Usage
31
33
 
@@ -67,7 +69,7 @@ cache.to_a
67
69
  cache = LruRedux::ThreadSafeCache.new(100)
68
70
  ```
69
71
 
70
- #### TTL Cache
72
+ **TTL Cache**
71
73
 
72
74
  The TTL cache extends the functionality of the LRU cache with a Time To Live eviction strategy. TTL eviction occurs on every access and takes precedence over LRU eviction, meaning a 'live' value will never be evicted over an expired one.
73
75
 
@@ -91,7 +93,7 @@ cache.to_a
91
93
  # => [[:b, '2'], [:a, '1']]
92
94
 
93
95
  # Now we advance time 5 min 30 sec into the future.
94
- Timecop.freeze(Time.now + 330)
96
+ Timecop.freeze(Time.now + ((5 * 60) + 30))
95
97
 
96
98
  # And we see that the expired values have been evicted.
97
99
  cache.to_a
@@ -102,7 +104,7 @@ cache.to_a
102
104
  cache[:a] = '1'
103
105
  cache[:b] = '2'
104
106
 
105
- Timecop.freeze(Time.now + 330)
107
+ Timecop.freeze(Time.now + ((5 * 60) + 30))
106
108
 
107
109
  cache.ttl = 10 * 60
108
110
 
@@ -113,7 +115,7 @@ cache.to_a
113
115
  # => [[:b, '2'], [:a, '1']]
114
116
 
115
117
  # TTL eviction can be triggered manually with the #expire method.
116
- Timecop.freeze(Time.now + 330)
118
+ Timecop.freeze(Time.now + ((5 * 60) + 30))
117
119
 
118
120
  cache.expire
119
121
  cache.to_a
@@ -152,143 +154,20 @@ cache = LruRedux::TTL::ThreadSafeCache.new(100, 5 * 60)
152
154
  - `#ignore_nil` Returns the current ignore nil setting.
153
155
  - `#ignore_nil=` Takes true or false. Changes the current ignore nil setting.
154
156
 
155
- #### TTL Cache Specific
157
+ **TTL Cache Specific**
156
158
 
157
159
  - `#ttl` Returns the current TTL of the cache.
158
160
  - `#ttl=` Takes `:none` or a positive number. Changes the current ttl and triggers a TTL eviction.
159
161
  - `#expire` Triggers a TTL eviction.
160
162
 
161
- ## Benchmarks
162
-
163
- see: benchmark directory (a million random lookup / store)
164
-
165
- #### LRU
166
-
167
- ##### Ruby 2.2.1
168
-
169
- ```shell
170
- $ ruby ./bench/bench.rb
171
-
172
- Rehearsal -------------------------------------------------------------
173
- ThreadSafeLru 4.500000 0.030000 4.530000 ( 4.524213)
174
- LRU 2.250000 0.000000 2.250000 ( 2.249670)
175
- LRUCache 1.720000 0.010000 1.730000 ( 1.728243)
176
- LruRedux::Cache 0.960000 0.000000 0.960000 ( 0.961292)
177
- LruRedux::ThreadSafeCache 2.180000 0.000000 2.180000 ( 2.187714)
178
- --------------------------------------------------- total: 11.650000sec
179
-
180
- user system total real
181
- ThreadSafeLru 4.390000 0.020000 4.410000 ( 4.415703)
182
- LRU 2.140000 0.010000 2.150000 ( 2.149626)
183
- LRUCache 1.680000 0.010000 1.690000 ( 1.688564)
184
- LruRedux::Cache 0.910000 0.000000 0.910000 ( 0.913108)
185
- LruRedux::ThreadSafeCache 2.200000 0.010000 2.210000 ( 2.212108)
186
- ```
187
-
188
- #### TTL
189
-
190
- ##### Ruby 2.2.1
191
-
192
- ```shell
193
- $ ruby ./bench/bench_ttl.rb
194
- Rehearsal -----------------------------------------------------------------------
195
- FastCache 6.240000 0.070000 6.310000 ( 6.302569)
196
- LruRedux::TTL::Cache 4.700000 0.010000 4.710000 ( 4.712858)
197
- LruRedux::TTL::ThreadSafeCache 6.300000 0.010000 6.310000 ( 6.319032)
198
- LruRedux::TTL::Cache (TTL disabled) 2.460000 0.010000 2.470000 ( 2.470629)
199
- ------------------------------------------------------------- total: 19.800000sec
200
-
201
- user system total real
202
- FastCache 6.470000 0.070000 6.540000 ( 6.536193)
203
- LruRedux::TTL::Cache 4.640000 0.010000 4.650000 ( 4.661793)
204
- LruRedux::TTL::ThreadSafeCache 6.310000 0.020000 6.330000 ( 6.328840)
205
- LruRedux::TTL::Cache (TTL disabled) 2.440000 0.000000 2.440000 ( 2.446269)
206
- ```
207
-
208
- ## Other Caches
209
-
210
- This is a list of the caches that are used in the benchmarks.
211
-
212
- #### LRU
213
-
214
- - RubyGems: https://rubygems.org/gems/lru
215
- - Homepage: http://lru.rubyforge.org/
216
-
217
- #### LRUCache
218
-
219
- - RubyGems: https://rubygems.org/gems/lru_cache
220
- - Homepage: https://github.com/brendan/lru_cache
221
-
222
- #### ThreadSafeLru
223
-
224
- - RubyGems: https://rubygems.org/gems/threadsafe-lru
225
- - Homepage: https://github.com/draganm/threadsafe-lru
226
-
227
- #### FastCache
228
-
229
- - RubyGems: https://rubygems.org/gems/fast_cache
230
- - Homepage: https://github.com/swoop-inc/fast_cache
231
-
232
163
  ## Contributing
233
164
 
234
- 1. Fork it
235
- 2. Create your feature branch (`git checkout -b my-new-feature`)
236
- 3. Commit your changes (`git commit -am 'Add some feature'`)
237
- 4. Push to the branch (`git push origin my-new-feature`)
238
- 5. Create new Pull Request
239
-
240
- ## Changelog
241
-
242
- ### version 2.0.1 - 28-Dec-2024
243
-
244
- - Refactor: Make valid_xxxx? methods private
245
- - Fix: Fix lint CI.
246
- - Other: Update gemspec
247
-
248
- ### version 2.0.0 - 28-Dec-2024
249
-
250
- - New: Add ignore_nil argument to cache initialize arguments. If true, blocks called by getset yielding nil values will be returned but not stored in the cache.
251
- - Fix: Fix LruRedux::TTL::ThreadSafeCache#delete to return deleted value.
252
- - Ruby Support: Drop runtime support for Ruby 2.2 and below and JRuby.
253
-
254
- ### version 1.1.0 - 30-Mar-2015
255
-
256
- - New: TTL cache added. This cache is LRU like with the addition of time-based eviction. Check the Usage -> TTL Cache section in README.md for details.
257
-
258
- ### version 1.0.0 - 26-Mar-2015
259
-
260
- - Ruby Support: Ruby 1.9+ is now required by LruRedux. If you need to use LruRedux in Ruby 1.8, please specify gem version 0.8.4 in your Gemfile. v0.8.4 is the last 1.8 compatible release and included a number of fixes and performance improvements for the Ruby 1.8 implementation. @Seberius
261
- - Perf: improve performance in Ruby 2.1+ on the MRI @Seberius
262
-
263
- ### version 0.8.4 - 20-Feb-2015
264
-
265
- - Fix: regression of ThreadSafeCache under JRuby 1.7 @Seberius
266
-
267
- ### version 0.8.3 - 20-Feb-2015
268
-
269
- - Perf: improve ThreadSafeCache performance @Seberius
270
-
271
- ### version 0.8.2 - 16-Feb-2015
272
-
273
- - Perf: use #size instead of #count when checking length @Seberius
274
- - Fix: Cache could grow beyond its size in Ruby 1.8 @Seberius
275
- - Fix: #each could deadlock in Ruby 1.8 @Seberius
276
-
277
- ### version 0.8.1 - 7-Sep-2013
278
-
279
- - Fix #each implementation
280
- - Fix deadlocks with ThreadSafeCache
281
- - Version jump is because its been used in production for quite a while now
282
-
283
- ### version 0.0.6 - 24-April-2013
284
-
285
- - Fix bug in getset, overflow was not returning the yeilded val
165
+ Bug reports and pull requests are welcome on GitHub at https://github.com/cadenza-tech/sin_lru_redux. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/cadenza-tech/sin_lru_redux/blob/main/CODE_OF_CONDUCT.md).
286
166
 
287
- ### version 0.0.5 - 23-April-2013
167
+ ## License
288
168
 
289
- - Added getset and fetch
290
- - Optimised implementation so it 20-30% faster on Ruby 1.9+
169
+ The gem is available as open source under the terms of the [MIT License](https://github.com/cadenza-tech/sin_lru_redux/blob/main/LICENSE.txt).
291
170
 
292
- ### version 0.0.4 - 23-April-2013
171
+ ## Code of Conduct
293
172
 
294
- - Initial version
173
+ Everyone interacting in the SinLruRedux project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/cadenza-tech/sin_lru_redux/blob/main/CODE_OF_CONDUCT.md).
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake/testtask'
5
5
  require 'rubocop/rake_task'
6
6
 
7
7
  Rake::TestTask.new(:test) do |t|
8
- t.pattern = 'test/**/*_test.rb'
8
+ t.pattern = 'test/**/test_*.rb'
9
9
  end
10
10
 
11
11
  RuboCop::RakeTask.new