memorandum 2.1.4 → 2.2.1

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
  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: