memery 1.3.0 → 1.4.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
  SHA256:
3
- metadata.gz: 826d0bdf9b559052298b1d6fcd11b22c302533e35037f21213680f80d019528b
4
- data.tar.gz: b953dc19e1d6743f4d12e088b2efad526dac3a92b4eaa9d2ee0aeb5e641b358b
3
+ metadata.gz: 9deb1312add2edf331f0e4b5ff2b196c95f7de899d6ae15ee01e9d4e43fca950
4
+ data.tar.gz: f228b03ab8ed0a286075a13f045a53337780c75d4eb9b015b285dfc3c48c3913
5
5
  SHA512:
6
- metadata.gz: 741369cf1d8fb3cf743d19d7415cb96ede62ddb71419882089dd41cf19b461d06cb1dbd08b8c2358fd29e70f6637d34dba8fcc999ae6ea94b8a2adc623c2bac3
7
- data.tar.gz: f7a8f6829fdf1b4b4a3f674ea5d9394c27230589ad7ccd4d4e61471261915fa81db4cc75ae6048daa068dba50864dc59109e25c8b2e00d48d54c24eddcc640ae
6
+ metadata.gz: 8da63cbd319881210877b295f5791132ae80848758954e4ea0615baaf82bcee5fa06c5b93b4dd9a524af7efabad749a65caf428680673e7f68dea625fc806bf7
7
+ data.tar.gz: 57806aadb6b7bd61520d068e1c3244836dc6c89c4ce550f8881adfee7eea139b6a07e5dddc4d5de072917693dd34596b49db5114716c9f0dc792023879d69c38
data/.travis.yml CHANGED
@@ -3,10 +3,10 @@ language: ruby
3
3
  sudo: false
4
4
 
5
5
  rvm:
6
- - 2.4
7
6
  - 2.5
8
7
  - 2.6
9
8
  - 2.7
9
+ - 3.0
10
10
  - ruby-head
11
11
 
12
12
  before_install: gem install bundler
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.4.0] - 2021-03-15
4
+ ### Fixed
5
+ - Fix compatibility with `ActiveSupport::Concern`. ([@tycooon] and [@AlexWayfer]) [#26]
6
+
3
7
  ## [1.3.0] - 2020-02-10
4
8
  ### Added
5
9
  - Allow memoization after including module with Memery. ([@AlexWayfer]) [#23]
@@ -54,3 +58,4 @@
54
58
  [#22]: https://github.com/tycooon/memery/pull/22
55
59
  [#23]: https://github.com/tycooon/memery/pull/23
56
60
  [#25]: https://github.com/tycooon/memery/pull/25
61
+ [#26]: https://github.com/tycooon/memery/pull/26
data/Gemfile.lock CHANGED
@@ -1,89 +1,121 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- memery (1.3.0)
4
+ memery (1.4.0)
5
5
  ruby2_keywords (~> 0.0.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- ast (2.4.0)
11
- benchmark-ips (2.7.2)
10
+ activesupport (6.1.3)
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ i18n (>= 1.6, < 2)
13
+ minitest (>= 5.1)
14
+ tzinfo (~> 2.0)
15
+ zeitwerk (~> 2.3)
16
+ ast (2.4.2)
17
+ benchmark-ips (2.8.4)
12
18
  benchmark-memory (0.1.2)
13
19
  memory_profiler (~> 0.9)
14
- coderay (1.1.2)
15
- coveralls (0.8.23)
16
- json (>= 1.8, < 3)
17
- simplecov (~> 0.16.1)
18
- term-ansicolor (~> 1.3)
19
- thor (>= 0.19.4, < 2.0)
20
- tins (~> 1.6)
21
- diff-lcs (1.3)
22
- docile (1.3.2)
23
- jaro_winkler (1.5.4)
24
- json (2.3.0)
20
+ coderay (1.1.3)
21
+ concurrent-ruby (1.1.8)
22
+ coveralls (0.7.2)
23
+ multi_json (~> 1.3)
24
+ rest-client (= 1.6.7)
25
+ simplecov (>= 0.7)
26
+ term-ansicolor (= 1.2.2)
27
+ thor (= 0.18.1)
28
+ diff-lcs (1.4.4)
29
+ docile (1.3.5)
30
+ i18n (1.8.9)
31
+ concurrent-ruby (~> 1.0)
25
32
  memory_profiler (0.9.14)
26
- method_source (0.9.2)
27
- parallel (1.19.1)
28
- parser (2.7.0.2)
29
- ast (~> 2.4.0)
30
- pry (0.12.2)
31
- coderay (~> 1.1.0)
32
- method_source (~> 0.9.0)
33
- rack (2.1.1)
33
+ method_source (1.0.0)
34
+ mime-types (3.3.1)
35
+ mime-types-data (~> 3.2015)
36
+ mime-types-data (3.2021.0225)
37
+ minitest (5.14.4)
38
+ multi_json (1.15.0)
39
+ parallel (1.20.1)
40
+ parser (3.0.0.0)
41
+ ast (~> 2.4.1)
42
+ pry (0.14.0)
43
+ coderay (~> 1.1)
44
+ method_source (~> 1.0)
45
+ rack (2.2.3)
34
46
  rainbow (3.0.0)
35
- rake (13.0.1)
36
- rspec (3.9.0)
37
- rspec-core (~> 3.9.0)
38
- rspec-expectations (~> 3.9.0)
39
- rspec-mocks (~> 3.9.0)
40
- rspec-core (3.9.1)
41
- rspec-support (~> 3.9.1)
42
- rspec-expectations (3.9.0)
47
+ rake (13.0.3)
48
+ regexp_parser (2.1.1)
49
+ rest-client (1.6.7)
50
+ mime-types (>= 1.16)
51
+ rexml (3.2.4)
52
+ rspec (3.10.0)
53
+ rspec-core (~> 3.10.0)
54
+ rspec-expectations (~> 3.10.0)
55
+ rspec-mocks (~> 3.10.0)
56
+ rspec-core (3.10.1)
57
+ rspec-support (~> 3.10.0)
58
+ rspec-expectations (3.10.1)
43
59
  diff-lcs (>= 1.2.0, < 2.0)
44
- rspec-support (~> 3.9.0)
45
- rspec-mocks (3.9.1)
60
+ rspec-support (~> 3.10.0)
61
+ rspec-mocks (3.10.2)
46
62
  diff-lcs (>= 1.2.0, < 2.0)
47
- rspec-support (~> 3.9.0)
48
- rspec-support (3.9.2)
49
- rubocop (0.79.0)
50
- jaro_winkler (~> 1.5.1)
63
+ rspec-support (~> 3.10.0)
64
+ rspec-support (3.10.2)
65
+ rubocop (1.11.0)
51
66
  parallel (~> 1.10)
52
- parser (>= 2.7.0.1)
67
+ parser (>= 3.0.0.0)
53
68
  rainbow (>= 2.2.2, < 4.0)
69
+ regexp_parser (>= 1.8, < 3.0)
70
+ rexml
71
+ rubocop-ast (>= 1.2.0, < 2.0)
54
72
  ruby-progressbar (~> 1.7)
55
- unicode-display_width (>= 1.4.0, < 1.7)
56
- rubocop-config-umbrellio (0.79.0.68)
57
- rubocop (= 0.79.0)
58
- rubocop-performance (= 1.5.2)
59
- rubocop-rails (= 2.4.1)
60
- rubocop-rspec (= 1.37.1)
61
- rubocop-performance (1.5.2)
62
- rubocop (>= 0.71.0)
63
- rubocop-rails (2.4.1)
73
+ unicode-display_width (>= 1.4.0, < 3.0)
74
+ rubocop-ast (1.4.1)
75
+ parser (>= 2.7.1.5)
76
+ rubocop-config-umbrellio (1.11.0.40)
77
+ rubocop (= 1.11.0)
78
+ rubocop-performance (= 1.10.0)
79
+ rubocop-rails (= 2.9.1)
80
+ rubocop-rake (= 0.5.1)
81
+ rubocop-rspec (= 2.2.0)
82
+ rubocop-sequel (= 0.2.0)
83
+ rubocop-performance (1.10.0)
84
+ rubocop (>= 0.90.0, < 2.0)
85
+ rubocop-ast (>= 0.4.0)
86
+ rubocop-rails (2.9.1)
87
+ activesupport (>= 4.2.0)
64
88
  rack (>= 1.1)
65
- rubocop (>= 0.72.0)
66
- rubocop-rspec (1.37.1)
67
- rubocop (>= 0.68.1)
68
- ruby-progressbar (1.10.1)
69
- ruby2_keywords (0.0.2)
70
- simplecov (0.16.1)
89
+ rubocop (>= 0.90.0, < 2.0)
90
+ rubocop-rake (0.5.1)
91
+ rubocop
92
+ rubocop-rspec (2.2.0)
93
+ rubocop (~> 1.0)
94
+ rubocop-ast (>= 1.1.0)
95
+ rubocop-sequel (0.2.0)
96
+ rubocop (~> 1.0)
97
+ ruby-progressbar (1.11.0)
98
+ ruby2_keywords (0.0.4)
99
+ simplecov (0.21.2)
71
100
  docile (~> 1.1)
72
- json (>= 1.8, < 3)
73
- simplecov-html (~> 0.10.0)
74
- simplecov-html (0.10.2)
75
- sync (0.5.0)
76
- term-ansicolor (1.7.1)
77
- tins (~> 1.0)
78
- thor (1.0.1)
79
- tins (1.24.0)
80
- sync
81
- unicode-display_width (1.6.1)
101
+ simplecov-html (~> 0.11)
102
+ simplecov_json_formatter (~> 0.1)
103
+ simplecov-html (0.12.3)
104
+ simplecov_json_formatter (0.1.2)
105
+ term-ansicolor (1.2.2)
106
+ tins (~> 0.8)
107
+ thor (0.18.1)
108
+ tins (0.13.2)
109
+ tzinfo (2.0.4)
110
+ concurrent-ruby (~> 1.0)
111
+ unicode-display_width (2.0.0)
112
+ zeitwerk (2.4.2)
82
113
 
83
114
  PLATFORMS
84
115
  ruby
85
116
 
86
117
  DEPENDENCIES
118
+ activesupport
87
119
  benchmark-ips
88
120
  benchmark-memory
89
121
  bundler
@@ -96,4 +128,4 @@ DEPENDENCIES
96
128
  simplecov
97
129
 
98
130
  BUNDLED WITH
99
- 2.1.2
131
+ 2.2.11
data/lib/memery.rb CHANGED
@@ -11,11 +11,24 @@ module Memery
11
11
  end
12
12
  end
13
13
 
14
+ OUR_BLOCK = lambda do
15
+ extend(ClassMethods)
16
+ include(InstanceMethods)
17
+ extend ModuleMethods if instance_of?(Module)
18
+ end
19
+
20
+ private_constant :OUR_BLOCK
21
+
14
22
  module ModuleMethods
15
- def included(base)
16
- base.extend(ClassMethods)
17
- base.include(InstanceMethods)
18
- base.extend ModuleMethods if base.instance_of?(Module)
23
+ def included(base = nil, &block)
24
+ if base.nil? && block
25
+ super do
26
+ instance_exec(&block)
27
+ instance_exec(&OUR_BLOCK)
28
+ end
29
+ else
30
+ base.instance_exec(&OUR_BLOCK)
31
+ end
19
32
  end
20
33
  end
21
34
 
@@ -32,16 +45,14 @@ module Memery
32
45
  return false unless defined?(@_memery_module)
33
46
 
34
47
  @_memery_module.method_defined?(method_name) ||
35
- @_memery_module.private_method_defined?(method_name)
48
+ @_memery_module.private_method_defined?(method_name)
36
49
  end
37
50
 
38
51
  private
39
52
 
40
53
  def prepend_memery_module!
41
54
  return if defined?(@_memery_module)
42
- @_memery_module = Module.new do
43
- extend MemoizationModule
44
- end
55
+ @_memery_module = Module.new { extend MemoizationModule }
45
56
  prepend @_memery_module
46
57
  end
47
58
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Memery
4
- VERSION = "1.3.0"
4
+ VERSION = "1.4.0"
5
5
  end
data/memery.gemspec CHANGED
@@ -5,6 +5,8 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require "memery/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
+ spec.required_ruby_version = ">= 2.5.0"
9
+
8
10
  spec.name = "memery"
9
11
  spec.version = Memery::VERSION
10
12
  spec.authors = ["Yuri Smirnov"]
@@ -22,6 +24,7 @@ Gem::Specification.new do |spec|
22
24
 
23
25
  spec.add_runtime_dependency "ruby2_keywords", "~> 0.0.2"
24
26
 
27
+ spec.add_development_dependency "activesupport"
25
28
  spec.add_development_dependency "benchmark-ips"
26
29
  spec.add_development_dependency "benchmark-memory"
27
30
  spec.add_development_dependency "bundler"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memery
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuri Smirnov
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-10 00:00:00.000000000 Z
11
+ date: 2021-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby2_keywords
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.0.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: benchmark-ips
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -176,7 +190,7 @@ homepage: https://github.com/tycooon/memery
176
190
  licenses:
177
191
  - MIT
178
192
  metadata: {}
179
- post_install_message:
193
+ post_install_message:
180
194
  rdoc_options: []
181
195
  require_paths:
182
196
  - lib
@@ -184,15 +198,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - ">="
186
200
  - !ruby/object:Gem::Version
187
- version: '0'
201
+ version: 2.5.0
188
202
  required_rubygems_version: !ruby/object:Gem::Requirement
189
203
  requirements:
190
204
  - - ">="
191
205
  - !ruby/object:Gem::Version
192
206
  version: '0'
193
207
  requirements: []
194
- rubygems_version: 3.1.2
195
- signing_key:
208
+ rubygems_version: 3.2.14
209
+ signing_key:
196
210
  specification_version: 4
197
211
  summary: A gem for memoization.
198
212
  test_files: []