memorandum 2.1.4 → 2.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
  SHA1:
3
- metadata.gz: d2658e48a32d4b867c1bdc23195cae263112e29c
4
- data.tar.gz: 33d2111507b7272305392c77e35a1c0e6533c129
3
+ metadata.gz: 5708f1db466cd4bd33812d6e2eab7207023eb88e
4
+ data.tar.gz: adbdfcea6c70b5adddc4a858978b7b2c0c89fb19
5
5
  SHA512:
6
- metadata.gz: 14e8cfdbda495b97b367122911ad993db68356eaed4bda4dbffac82dbe8909528cc8ebafef60e02410c6d0483ea9005420246d2b3c77fc19e6b53556695b7c09
7
- data.tar.gz: 664ab30fd2ea5f5787fdcefdbd0ea5f404cfb0680b4f999f0389d57ecfe1c2080bfde82c283e9a87bccc5562e71c57602a551aaec6497e39464746c1c105b359
6
+ metadata.gz: 6a5e0bad1c3b74beb8ebe54486e74a5015af12156f76823eb3b75be6fad29a5d1c5c6a714a95f297134eeea2f1a660ee1745ef52c197d693dcae7f49c557af12
7
+ data.tar.gz: b98e086587cad3270ddbe15899eccee0952807fb9edbbc04ae174b49009e8296f742e555f73168fec0b4a14d8b814b99d86aef83902178c9a045e12d6b71765c
data/lib/memorandum.rb CHANGED
@@ -10,7 +10,7 @@ module Memorandum
10
10
  flags = arguments
11
11
 
12
12
  memoized_statuses = memorandum_ivar_name MEMORANDUM_STATUSES, name
13
- memoized_values = memorandum_ivar_name MEMORANDUM_VALUES, name
13
+ memoized_values = memorandum_ivar_name MEMORANDUM_VALUES, name
14
14
  unmemoized_name = "#{MEMORANDUM_UNMEMOIZED}_#{name}"
15
15
 
16
16
  access = find_access name
@@ -38,6 +38,14 @@ module Memorandum
38
38
  send access, unmemoized_name
39
39
  end
40
40
 
41
+ def memorandum_ivar_name name, method_name
42
+ "@#{MEMORANDUM_MEMOIZED}_#{name}_for_#{method_name}".tap do |result|
43
+ MEMORANDUM_SPECIAL_CHARACTERS.each do |special_character, replacement|
44
+ result.gsub! special_character, replacement
45
+ end
46
+ end
47
+ end
48
+
41
49
  private
42
50
 
43
51
  MEMORANDUM_MEMOIZED = 'memoized'.freeze
@@ -63,14 +71,6 @@ module Memorandum
63
71
  '~' => '__MEMORANDUM_TILDE__',
64
72
  ]
65
73
 
66
- def memorandum_ivar_name name, method_name
67
- "@#{MEMORANDUM_MEMOIZED}_#{name}_for_#{method_name}".tap do |result|
68
- MEMORANDUM_SPECIAL_CHARACTERS.each do |special_character, replacement|
69
- result.gsub! special_character, replacement
70
- end
71
- end
72
- end
73
-
74
74
  def find_access method_name
75
75
  case
76
76
  when private_instance_methods.include?(method_name.to_sym) then :private
@@ -84,5 +84,15 @@ module Memorandum
84
84
  def memorandum_fetch name, default
85
85
  instance_variable_get(name) || instance_variable_set(name, default)
86
86
  end
87
+
88
+ def memorandum_reset name
89
+ memoized_statuses = self
90
+ .class
91
+ .memorandum_ivar_name(MEMORANDUM_STATUSES, name)
92
+
93
+ statuses = memorandum_fetch memoized_statuses, Hash[]
94
+
95
+ statuses.clear
96
+ end
87
97
  end
88
98
  end
@@ -1,3 +1,3 @@
1
1
  module Memorandum
2
- VERSION = '2.1.4'.freeze
2
+ VERSION = '2.2.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memorandum
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Lude
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-10 00:00:00.000000000 Z
11
+ date: 2017-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ice_nine
@@ -28,36 +28,30 @@ dependencies:
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3'
48
- - - <
49
- - !ruby/object:Gem::Version
50
- version: '4'
47
+ version: '3.6'
51
48
  type: :development
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
- - - '>='
56
- - !ruby/object:Gem::Version
57
- version: '3'
58
- - - <
52
+ - - "~>"
59
53
  - !ruby/object:Gem::Version
60
- version: '4'
54
+ version: '3.6'
61
55
  description: Memorandum provides a simple method to memoize method results. It also
62
56
  provides flags for freezing the cached results.
63
57
  email: rob@ertlu.de
@@ -77,19 +71,18 @@ require_paths:
77
71
  - lib
78
72
  required_ruby_version: !ruby/object:Gem::Requirement
79
73
  requirements:
80
- - - '>='
74
+ - - ">="
81
75
  - !ruby/object:Gem::Version
82
76
  version: '0'
83
77
  required_rubygems_version: !ruby/object:Gem::Requirement
84
78
  requirements:
85
- - - '>='
79
+ - - ">="
86
80
  - !ruby/object:Gem::Version
87
81
  version: '0'
88
82
  requirements: []
89
83
  rubyforge_project:
90
- rubygems_version: 2.6.6
84
+ rubygems_version: 2.6.11
91
85
  signing_key:
92
86
  specification_version: 4
93
87
  summary: Provides a simple method to memoize method results
94
88
  test_files: []
95
- has_rdoc: