memoist 0.16.1 → 0.16.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/memoist.rb +1 -3
- data/lib/memoist/version.rb +1 -1
- data/test/memoist_test.rb +15 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '058dae917e46d13306497f0bcd18df607cb1d5dca2d85ee6f9cbc18739172e27'
|
4
|
+
data.tar.gz: c0874b135f70db573a863e4b54bb141905c003d9e451d7c3637d8f67c96a0696
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 409f37c0861015cc81704bf4fbbb1002d7a011a5f3dccb0e1430baf8b5eac601f5caae99cf4e1634fe044ea01123c1a0319692fad6d64c848026329f9a4dfa7a
|
7
|
+
data.tar.gz: 7f3134101c02c37ce88fd6a814c6bce19f5ffc4085fcfbb08e22ce720f125b7f8c2c2644c6a694cf4bb5dc4feb40974785f1209d598c18ba098bc055bca33146
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [Unreleased](https://github.com/matthewrudy/memoist/tree/HEAD)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/matthewrudy/memoist/compare/v0.16.1...HEAD)
|
6
|
+
|
7
|
+
**Merged pull requests:**
|
8
|
+
|
9
|
+
- Fix regression introduced by frozen symbol fix [\#86](https://github.com/matthewrudy/memoist/pull/86) ([sebjacobs](https://github.com/sebjacobs))
|
10
|
+
|
3
11
|
## [v0.16.1](https://github.com/matthewrudy/memoist/tree/v0.16.1) (2019-11-08)
|
4
12
|
|
5
13
|
[Full Changelog](https://github.com/matthewrudy/memoist/compare/v0.16.0...v0.16.1)
|
data/lib/memoist.rb
CHANGED
@@ -38,12 +38,10 @@ module Memoist
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def self.escape_punctuation(string)
|
41
|
-
string = string.to_s
|
41
|
+
string = string.is_a?(String) ? string.dup : string.to_s.dup
|
42
42
|
|
43
43
|
return string unless string.end_with?('?'.freeze, '!'.freeze)
|
44
44
|
|
45
|
-
string = string.dup if string.frozen?
|
46
|
-
|
47
45
|
# A String can't end in both ? and !
|
48
46
|
if string.sub!(/\?\Z/, '_query'.freeze)
|
49
47
|
else
|
data/lib/memoist/version.rb
CHANGED
data/test/memoist_test.rb
CHANGED
@@ -67,6 +67,12 @@ class MemoistTest < Minitest::Test
|
|
67
67
|
|
68
68
|
memoize :name, :age
|
69
69
|
|
70
|
+
def age?
|
71
|
+
@counter.call(:age?)
|
72
|
+
true
|
73
|
+
end
|
74
|
+
memoize 'age?'
|
75
|
+
|
70
76
|
def sleep(hours = 8)
|
71
77
|
@counter.call(:sleep)
|
72
78
|
hours
|
@@ -272,6 +278,13 @@ class MemoistTest < Minitest::Test
|
|
272
278
|
@person.unmemoize_all
|
273
279
|
end
|
274
280
|
|
281
|
+
def test_memoization_when_memoize_is_called_with_punctuated_string
|
282
|
+
assert_equal true, @person.age?
|
283
|
+
|
284
|
+
@person.memoize_all
|
285
|
+
@person.unmemoize_all
|
286
|
+
end
|
287
|
+
|
275
288
|
def test_memoization_flush_with_punctuation
|
276
289
|
assert_equal true, @person.name?
|
277
290
|
@person.flush_cache(:name?)
|
@@ -344,11 +357,11 @@ class MemoistTest < Minitest::Test
|
|
344
357
|
end
|
345
358
|
|
346
359
|
def test_all_memoized_structs
|
347
|
-
# Person memoize :age, :is_developer?, :memoize_protected_test, :name, :name?, :sleep, :update, :update_attributes
|
360
|
+
# Person memoize :age, :age?, :is_developer?, :memoize_protected_test, :name, :name?, :sleep, :update, :update_attributes
|
348
361
|
# Student < Person memoize :name, :identifier => :student
|
349
362
|
# Teacher < Person memoize :seniority
|
350
363
|
|
351
|
-
expected = %w[age is_developer? memoize_protected_test name name? sleep update update_attributes]
|
364
|
+
expected = %w[age age? is_developer? memoize_protected_test name name? sleep update update_attributes]
|
352
365
|
structs = Person.all_memoized_structs
|
353
366
|
assert_equal expected, structs.collect(&:memoized_method).collect(&:to_s).sort
|
354
367
|
assert_equal '@_memoized_name', structs.detect { |s| s.memoized_method == :name }.ivar
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memoist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.16.
|
4
|
+
version: 0.16.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua Peek
|
@@ -19,7 +19,7 @@ authors:
|
|
19
19
|
autorequire:
|
20
20
|
bindir: bin
|
21
21
|
cert_chain: []
|
22
|
-
date: 2019-
|
22
|
+
date: 2019-12-04 00:00:00.000000000 Z
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
25
|
name: benchmark-ips
|