memorandum 2.1.1 → 2.1.2

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: 8d3980188220f33f7940fc8b959308b0bbd38f8e
4
- data.tar.gz: 5296434b08e758ad82b5813cf389ed8029db3297
3
+ metadata.gz: f0a5a0f18e232434c671527e46c9ecbfafad619a
4
+ data.tar.gz: 0943dbae45cc1a19aa9b9cfad861c39825970cab
5
5
  SHA512:
6
- metadata.gz: fbad7ea1fe756c936a463c7bbb520e925db00f83877fe5146c95217872c245bbd26b733303437398038da7db850d47323559ec08b1eec19f928852f5bc80690f
7
- data.tar.gz: 159b25d64d9d61e559ccbe51a506d6bb50d4273a470f9adde14a6667e5b01a80bcf6a23c0ee157d02debc55a5f48d94bdb371575045b239f7f771d755ae30dcb
6
+ metadata.gz: 2398210c107d30bd3aaf46c8ba0318a5f626634a35457f97aa70d03127f9b5ac6e0eba44b95061f487378cc0a755222c7c0f16b9ea11029290bee3f970ee4189
7
+ data.tar.gz: bd93ab34bd60239772562bd06b52fd7ffe4746f9ae299879304f1f9c222d13f095161729b28f7dd2560ce904b6f8d20a425394e5c3deec93ea2c9c90ddd9751b
@@ -1,3 +1,3 @@
1
1
  module Memorandum
2
- VERSION = '2.1.1'.freeze
2
+ VERSION = '2.1.2'.freeze
3
3
  end
data/lib/memorandum.rb CHANGED
@@ -13,6 +13,8 @@ module Memorandum
13
13
  memoized_values = memorandum_ivar_name MEMORANDUM_VALUES, name
14
14
  unmemoized_name = "#{MEMORANDUM_UNMEMOIZED}_#{name}"
15
15
 
16
+ access = find_access name
17
+
16
18
  alias_method unmemoized_name, name
17
19
 
18
20
  define_method name do |*args|
@@ -31,6 +33,9 @@ module Memorandum
31
33
 
32
34
  values[args]
33
35
  end
36
+
37
+ send access, name
38
+ send access, unmemoized_name
34
39
  end
35
40
 
36
41
  private
@@ -48,6 +53,15 @@ module Memorandum
48
53
  .gsub('?', MEMORANDUM_BOOL)
49
54
  end
50
55
 
56
+ def find_access method_name
57
+ case
58
+ when private_instance_methods.include?(method_name.to_sym) then :private
59
+ when protected_instance_methods.include?(method_name.to_sym) then :protected
60
+ when public_instance_methods.include?(method_name.to_sym) then :public
61
+ else :unknown
62
+ end
63
+ end
64
+
51
65
  module InstanceMethods
52
66
  def memorandum_fetch name, default
53
67
  instance_variable_get(name) || instance_variable_set(name, default)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memorandum
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Lude