memery 1.3.0 → 1.4.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
  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: []