memorandum 2.0.0 → 2.1.0

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: db05935a7abbcdf42b06fbf39c64aa92a6223ffa
4
- data.tar.gz: bd6e3b59927552f5e4e7d72db22a33232bf3a165
3
+ metadata.gz: c77ed8d5aeacd512262cfb151e072aec4d627b99
4
+ data.tar.gz: 2a8208f28a00b268bc3113425e6e963dc0e7c8c0
5
5
  SHA512:
6
- metadata.gz: 1f32e317c27a652094ab920f6c35219823082ed50d912ea876be6ec04367283bf3fcd3ec2040dc824cde69c1ea2ab9d5820e7a9beb1882b61e3e0cdb51c952d5
7
- data.tar.gz: 374ff61df3dc49b80adb96b7dd3f343822452444d7e6f8065bca03ef4e347e536ce111f07be358224b6cf3e9e6a8d5b2a09588bf06ea19326303d8a54ef68a03
6
+ metadata.gz: 8bb498553bc570cf01ab1b5f7827cb1c1164c26914ff231ad5b14100447df748094b9de931f2a2cc67fbdb2a90beb0c949e3fbb6fc4a7ab60b769bc747961997
7
+ data.tar.gz: 58d9478464993bdefde98fd5266de5e7aeb9d427fd215b361a2dd6182fd4c683ef76247d242ba2aa4ca6544776c6281657e50dcdf8d7333e1a4787348aa719ee
data/lib/memorandum.rb CHANGED
@@ -1,5 +1,10 @@
1
+ require 'ice_nine'
2
+
1
3
  module Memorandum
2
- def memo name
4
+ def memo *arguments
5
+ name = arguments.pop
6
+ flags = arguments
7
+
3
8
  memoized_statuses = "@memoized_statuses_for_#{name}"
4
9
  memoized_values = "@memoized_values_for_#{name}"
5
10
  unmemoized_name = "unmemoized_#{name}"
@@ -14,9 +19,15 @@ module Memorandum
14
19
  || instance_variable_set(memoized_values, Hash[])
15
20
 
16
21
  unless statuses[args]
17
- values[args] = send unmemoized_name, *args
22
+ value = send unmemoized_name, *args
23
+
24
+ value = value.freeze if flags.include? :freeze
25
+ value = IceNine.deep_freeze value if flags.include? :deep_freeze
26
+
27
+ values[args] = value
18
28
  statuses[args] = true
19
29
  end
30
+
20
31
  values[args]
21
32
  end
22
33
  end
@@ -1,3 +1,3 @@
1
1
  module Memorandum
2
- VERSION = '2.0.0'.freeze
2
+ VERSION = '2.1.0'.freeze
3
3
  end
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.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Lude
@@ -10,6 +10,20 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2016-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ice_nine
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.11.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.11.2
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: byebug
15
29
  requirement: !ruby/object:Gem::Requirement