memorandum 2.0.0 → 2.1.0

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