smart_engine 0.6.0 → 0.11.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: 5b137be2c542d4c01e946932a38f2de479072d1161b554371be67a2e05a7ecc7
4
- data.tar.gz: 2330b494ac201a1f41ee289a3dcd68acf326686c734b05c9b3e40980bf41c980
3
+ metadata.gz: '087b1dbf9ee51ac25529cffbb42796a6fcf9fefe5a6450dd55b422f731f24ea5'
4
+ data.tar.gz: 4ec414dbbf3f033a2051a8f88b9b9304f0741f8b7330d65238dcd4a6b95e4f5f
5
5
  SHA512:
6
- metadata.gz: 654494695f3f41c544a8aab9eaf65a2f682fb41252dcfcadbd02df058ffb9668ad3885a30176b80625058fbef0f4d343a679818a63d7d379d6ef54a4ccb16847
7
- data.tar.gz: 2179458ced3a67eb97649ed057943a4c1ad80df3ebda18f416ed7f3f350e8b5f75dfc111d442e57a920b9f1039e74fa3b99be74d4b76f7418caf2880a22e264f
6
+ metadata.gz: 0ed532ab1c5d773bdc8b9a2156f70d41b8b68725e812a5a89c5f2576c8595e60c081756dc6427cfe5f53c758cb094078c994aa614c76b3e057f99e87ed0a7e3d
7
+ data.tar.gz: 3748b43ed40a12b4d65e32b85a87d9ff790791c1987962b2377751a2e6a66d9a877b33dd450b8d2aadaad192d03f3183d272b555236afac538b86ee149d4376f
@@ -5,7 +5,8 @@ inherit_gem:
5
5
  - lib/rubocop.rspec.yml
6
6
 
7
7
  AllCops:
8
- TargetRubyVersion: 2.7.1
8
+ TargetRubyVersion: 2.7.2
9
+ NewCops: enable
9
10
  Include:
10
11
  - lib/**/*.rb
11
12
  - spec/**/*.rb
@@ -13,3 +14,7 @@ AllCops:
13
14
  - Rakefile
14
15
  - smart_engine.gemspec
15
16
  - bin/console
17
+
18
+ # NOTE: for better representativeness of test examples
19
+ RSpec/DescribedClass:
20
+ Enabled: false
@@ -1,6 +1,39 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## [0.11.0] - 2021-01-17
5
+ ### Added
6
+ - Support for *Ruby@3*;
7
+
8
+ ## [0.10.0] - 2020-12-22
9
+ ### Added
10
+ - Support for `#hash` and `#instance_of?` for `SmartCore::Ext::BasicObjectAsObject` refinement;
11
+
12
+ ## [0.9.0] - 2020-12-20
13
+ ### Added
14
+ - New type of utilities: *Extensions* (`SmartCore::Ext`);
15
+ - New extension: `SmartCore::Ext::BasicObjectAsObject` refinement:
16
+ - `using SmartCore::Ext::BasicObjectAsObject` provides native support for:
17
+ - `BasicObject#is_a?`;
18
+ - `BasicObject#kind_of?`;
19
+ - `BasicObject#freeze`;
20
+ - `BasicObject#frozen?`;
21
+
22
+ ### Changed
23
+ - Updated development dependencies;
24
+ - Support for *Ruby@2.4* has ended;
25
+
26
+ ### Fixed
27
+ - `SmartCore::Engine::Frozener` can not be used with rubies lower than `@2.7`;
28
+
29
+ ## [0.8.0] - 2020-07-25
30
+ ### Added
31
+ - Any object frozener (`SmartCore::Engine::Frozener`, `SmartCore::Engine::Frozener::Mixin`);
32
+
33
+ ## [0.7.0] - 2020-07-03
34
+ ### Added
35
+ - Atomic threadsafe value container (`SmartCore::Engine::Atom`);
36
+
4
37
  ## [0.6.0] - 2020-05-03
5
38
  ### Added
6
39
  - Inline rescue pipe (`SmartCore::Engine::RescueExt.inline_rescue_pipe`);
@@ -1,96 +1,102 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- smart_engine (0.6.0)
4
+ smart_engine (0.11.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- activesupport (6.0.2.2)
9
+ activesupport (6.1.1)
10
10
  concurrent-ruby (~> 1.0, >= 1.0.2)
11
- i18n (>= 0.7, < 2)
12
- minitest (~> 5.1)
13
- tzinfo (~> 1.1)
14
- zeitwerk (~> 2.2)
15
- armitage-rubocop (0.82.0.2)
16
- rubocop (= 0.82.0)
17
- rubocop-performance (= 1.5.2)
18
- rubocop-rails (= 2.5.2)
11
+ i18n (>= 1.6, < 2)
12
+ minitest (>= 5.1)
13
+ tzinfo (~> 2.0)
14
+ zeitwerk (~> 2.3)
15
+ armitage-rubocop (1.7.0.1)
16
+ rubocop (= 1.7.0)
17
+ rubocop-performance (= 1.9.1)
18
+ rubocop-rails (= 2.9.1)
19
19
  rubocop-rake (= 0.5.1)
20
- rubocop-rspec (= 1.39.0)
21
- ast (2.4.0)
22
- coderay (1.1.2)
23
- concurrent-ruby (1.1.6)
24
- diff-lcs (1.3)
25
- docile (1.3.2)
26
- i18n (1.8.2)
20
+ rubocop-rspec (= 2.1.0)
21
+ ast (2.4.1)
22
+ coderay (1.1.3)
23
+ concurrent-ruby (1.1.7)
24
+ diff-lcs (1.4.4)
25
+ docile (1.3.5)
26
+ i18n (1.8.7)
27
27
  concurrent-ruby (~> 1.0)
28
- jaro_winkler (1.5.4)
29
28
  method_source (1.0.0)
30
- minitest (5.14.0)
31
- parallel (1.19.1)
32
- parser (2.7.1.2)
33
- ast (~> 2.4.0)
29
+ minitest (5.14.3)
30
+ parallel (1.20.1)
31
+ parser (3.0.0.0)
32
+ ast (~> 2.4.1)
34
33
  pry (0.13.1)
35
34
  coderay (~> 1.1)
36
35
  method_source (~> 1.0)
37
- rack (2.2.2)
36
+ rack (2.2.3)
38
37
  rainbow (3.0.0)
39
- rake (13.0.1)
38
+ rake (13.0.3)
39
+ regexp_parser (2.0.3)
40
40
  rexml (3.2.4)
41
- rspec (3.9.0)
42
- rspec-core (~> 3.9.0)
43
- rspec-expectations (~> 3.9.0)
44
- rspec-mocks (~> 3.9.0)
45
- rspec-core (3.9.2)
46
- rspec-support (~> 3.9.3)
47
- rspec-expectations (3.9.1)
41
+ rspec (3.10.0)
42
+ rspec-core (~> 3.10.0)
43
+ rspec-expectations (~> 3.10.0)
44
+ rspec-mocks (~> 3.10.0)
45
+ rspec-core (3.10.1)
46
+ rspec-support (~> 3.10.0)
47
+ rspec-expectations (3.10.1)
48
48
  diff-lcs (>= 1.2.0, < 2.0)
49
- rspec-support (~> 3.9.0)
50
- rspec-mocks (3.9.1)
49
+ rspec-support (~> 3.10.0)
50
+ rspec-mocks (3.10.1)
51
51
  diff-lcs (>= 1.2.0, < 2.0)
52
- rspec-support (~> 3.9.0)
53
- rspec-support (3.9.3)
54
- rubocop (0.82.0)
55
- jaro_winkler (~> 1.5.1)
52
+ rspec-support (~> 3.10.0)
53
+ rspec-support (3.10.1)
54
+ rubocop (1.7.0)
56
55
  parallel (~> 1.10)
57
- parser (>= 2.7.0.1)
56
+ parser (>= 2.7.1.5)
58
57
  rainbow (>= 2.2.2, < 4.0)
58
+ regexp_parser (>= 1.8, < 3.0)
59
59
  rexml
60
+ rubocop-ast (>= 1.2.0, < 2.0)
60
61
  ruby-progressbar (~> 1.7)
61
62
  unicode-display_width (>= 1.4.0, < 2.0)
62
- rubocop-performance (1.5.2)
63
- rubocop (>= 0.71.0)
64
- rubocop-rails (2.5.2)
65
- activesupport
63
+ rubocop-ast (1.4.0)
64
+ parser (>= 2.7.1.5)
65
+ rubocop-performance (1.9.1)
66
+ rubocop (>= 0.90.0, < 2.0)
67
+ rubocop-ast (>= 0.4.0)
68
+ rubocop-rails (2.9.1)
69
+ activesupport (>= 4.2.0)
66
70
  rack (>= 1.1)
67
- rubocop (>= 0.72.0)
71
+ rubocop (>= 0.90.0, < 2.0)
68
72
  rubocop-rake (0.5.1)
69
73
  rubocop
70
- rubocop-rspec (1.39.0)
71
- rubocop (>= 0.68.1)
72
- ruby-progressbar (1.10.1)
73
- simplecov (0.18.5)
74
+ rubocop-rspec (2.1.0)
75
+ rubocop (~> 1.0)
76
+ rubocop-ast (>= 1.1.0)
77
+ ruby-progressbar (1.11.0)
78
+ simplecov (0.21.2)
74
79
  docile (~> 1.1)
75
80
  simplecov-html (~> 0.11)
76
- simplecov-html (0.12.2)
77
- thread_safe (0.3.6)
78
- tzinfo (1.2.7)
79
- thread_safe (~> 0.1)
81
+ simplecov_json_formatter (~> 0.1)
82
+ simplecov-html (0.12.3)
83
+ simplecov_json_formatter (0.1.2)
84
+ tzinfo (2.0.4)
85
+ concurrent-ruby (~> 1.0)
80
86
  unicode-display_width (1.7.0)
81
- zeitwerk (2.3.0)
87
+ zeitwerk (2.4.2)
82
88
 
83
89
  PLATFORMS
84
90
  ruby
85
91
 
86
92
  DEPENDENCIES
87
- armitage-rubocop (~> 0.82)
88
- bundler (~> 2.1)
93
+ armitage-rubocop (~> 1.7)
94
+ bundler (~> 2.2)
89
95
  pry (~> 0.13)
90
96
  rake (~> 13.0)
91
- rspec (~> 3.9)
92
- simplecov (~> 0.18)
97
+ rspec (~> 3.10)
98
+ simplecov (~> 0.21)
93
99
  smart_engine!
94
100
 
95
101
  BUNDLED WITH
96
- 2.1.4
102
+ 2.2.3
data/README.md CHANGED
@@ -24,7 +24,11 @@ require 'smart_core'
24
24
 
25
25
  - [Global set of error types](#global-set-of-error-types)
26
26
  - [Simple reentrant lock](#simple-reentrant-lock)
27
+ - [Atomic thread-safe value container](#atomic-thread-safe-value-container)
28
+ - [Any Object Frozener](#any-object-frozener) (classic c-level `frozen?`/`freeze`)
29
+ - [Basic Object Refinements](#basic-object-refinements) (`SmartCore::Ext::BasicObjectAsObject`)
27
30
  - [Inline rescue pipe](#inline-rescue-pipe)
31
+ - [Roadmap](#roadmap)
28
32
 
29
33
  ---
30
34
 
@@ -47,6 +51,96 @@ lock.synchronize { your_code }
47
51
 
48
52
  ---
49
53
 
54
+ ### Atomic thread-safe value container
55
+
56
+ ```ruby
57
+ atom = SmartCore::Engine::Atom.new # initial value - nil
58
+ atom.value # => nil
59
+ # --- or ---
60
+ atom = SmartCore::Engine::Atom.new(7) # initial value - 7
61
+ atom.value # => 7
62
+
63
+ # set new value (thread-safely)
64
+ atom.swap { |original_value| original_value * 2 }
65
+ atom.value # => 14
66
+ ```
67
+
68
+ ---
69
+
70
+ ### Any Object Frozener
71
+
72
+ - works with any type of ruby objects (event with `BasicObject`);
73
+ - uses classic Ruby C-level `frozen?`/`freeze` functionality;
74
+
75
+ ```ruby
76
+ # as a singleton
77
+
78
+ object = BasicObject.new
79
+ SmartCore::Engine::Frozener.frozen?(object) # => false
80
+
81
+ SmartCore::Engine::Frozener.freeze(object)
82
+ SmartCore::Engine::Frozener.frozen?(object) # => true
83
+ ```
84
+
85
+ ```ruby
86
+ # as a mixin
87
+
88
+ class EmptyObject < BasicObject
89
+ include SmartCore::Engine::Frozener::Mixin
90
+ end
91
+
92
+ object = EmptyObject.new
93
+
94
+ object.frozen? # => false
95
+ object.freeze
96
+ object.frozen? # => true
97
+ ```
98
+
99
+ ---
100
+
101
+ ### Basic Object Refinements
102
+
103
+ Ruby's `BasicObject` class does not have some fundamental (extremely important for instrumenting) methods:
104
+
105
+ - `is_a?` / `kind_of?`
106
+ - `instance_of?`
107
+ - `freeze` / `frozen?`
108
+ - `hash`
109
+ - `nil?`
110
+
111
+ `SmartCore::Ext::BasicObjectAsObject` refinement solves this problem (by Ruby's internal API without any manualy-emulated behavior).
112
+
113
+ ```ruby
114
+ # without refinement:
115
+ basic_obj = ::BasicObject.new
116
+
117
+ basic_obj.is_a?(::BasicObject) # raises ::NoMethodError
118
+ basic_obj.kind_of?(::BasicObject) # raises ::NoMethodError
119
+ basic_obj.instance_of?(::BasicObject) # rasies ::NoMethodError
120
+ basic_obj.freeze # raises ::NoMethodError
121
+ basic_obj.frozen? # raises ::NoMethodError
122
+ ```
123
+
124
+ ```ruby
125
+ # with refinement:
126
+ using SmartCore::Ext::BasicObjectAsObject
127
+
128
+ basic_obj = ::BasicObject.new
129
+
130
+ basic_obj.is_a?(::BasicObject) # => true
131
+ basic_obj.kind_of?(::BasicObject) # => true
132
+ basic_obj.instance_of?(::BasicObject) # => true
133
+ basic_obj.instance_of?(::Object) # => false
134
+ basic_obj.is_a?(::Integer) # => false
135
+ basic_obj.kind_of?(::Integer) # => false
136
+
137
+ basic_obj.frozen? # => false
138
+ basic_obj.freeze # => self
139
+ basic_obj.frozen? # => true
140
+ ```
141
+
142
+ ---
143
+
50
144
  ### Inline rescue pipe
51
145
 
52
146
  - works with an array of proc objects;
@@ -93,6 +187,12 @@ end
93
187
 
94
188
  ---
95
189
 
190
+ ## Roadmap
191
+
192
+ - thread-safety for BasicObject extensions;
193
+
194
+ ---
195
+
96
196
  ## Contributing
97
197
 
98
198
  - Fork it ( https://github.com/smart-rb/smart_engine )
@@ -5,4 +5,5 @@
5
5
  module SmartCore
6
6
  require_relative 'smart_core/errors'
7
7
  require_relative 'smart_core/engine'
8
+ require_relative 'smart_core/ext'
8
9
  end
@@ -6,4 +6,6 @@ module SmartCore::Engine
6
6
  require_relative 'engine/version'
7
7
  require_relative 'engine/lock'
8
8
  require_relative 'engine/rescue_ext'
9
+ require_relative 'engine/atom'
10
+ require_relative 'engine/frozener'
9
11
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.7.0
5
+ class SmartCore::Engine::Atom
6
+ # @param initial_value [Any]
7
+ # @return [void]
8
+ #
9
+ # @api private
10
+ # @since 0.7.0
11
+ def initialize(initial_value = nil)
12
+ @value = initial_value
13
+ @barrier = SmartCore::Engine::Lock.new
14
+ end
15
+
16
+ # @return [Any]
17
+ #
18
+ # @api public
19
+ # @since 0.7.0
20
+ def value
21
+ with_barrier { @value }
22
+ end
23
+
24
+ # @param block [Block]
25
+ # @return [Any]
26
+ #
27
+ # @api public
28
+ # @since 0.7.0
29
+ def swap(&block)
30
+ with_barrier { @value = yield(@value) }
31
+ end
32
+
33
+ private
34
+
35
+ # @param block [Block]
36
+ # @return [Any]
37
+ #
38
+ # @api private
39
+ # @since 0.1.0
40
+ def with_barrier(&block)
41
+ @barrier.synchronize(&block)
42
+ end
43
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api private
4
+ # @since 0.9.0
5
+ module SmartCore::Engine::Ext
6
+ require_relative 'ext/basic_object_as_object'
7
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.8.0
5
+ # @version 0.9.0
6
+ module SmartCore::Engine::Frozener
7
+ # @api public
8
+ # @since 0.8.0
9
+ module Mixin
10
+ # @return [self]
11
+ #
12
+ # @api public
13
+ # @since 0.8.0
14
+ def freeze
15
+ SmartCore::Engine::Frozener.freeze(self)
16
+ end
17
+
18
+ # @return [Boolean]
19
+ #
20
+ # @api public
21
+ # @since 0.8.0
22
+ def frozen?
23
+ SmartCore::Engine::Frozener.frozen?(self)
24
+ end
25
+ end
26
+
27
+ # @return [UnboundMethod]
28
+ #
29
+ # @api private
30
+ # @since 0.8.0
31
+ FROZENER = Object.new.method(:freeze).unbind.tap(&:freeze)
32
+
33
+ # @return [UnboundMethod]
34
+ #
35
+ # @api private
36
+ # @since 0.8.0
37
+ FROZEN_CHECK = Object.new.method(:frozen?).unbind.tap(&:freeze)
38
+
39
+ class << self
40
+ # @param object [Any]
41
+ # @return [object]
42
+ #
43
+ # @api public
44
+ # @since 0.8.0
45
+ # @version 0.9.0
46
+ def freeze(object)
47
+ FROZENER.bind(object).call
48
+ end
49
+
50
+ # @param object [Any]
51
+ # @return [Boolean]
52
+ #
53
+ # @api public
54
+ # @since 0.8.0
55
+ # @version 0.9.0
56
+ def frozen?(object)
57
+ FROZEN_CHECK.bind(object).call
58
+ end
59
+ end
60
+ end
@@ -6,7 +6,7 @@ module SmartCore
6
6
  #
7
7
  # @api public
8
8
  # @since 0.1.0
9
- # @version 0.6.0
10
- VERSION = '0.6.0'
9
+ # @version 0.11.0
10
+ VERSION = '0.11.0'
11
11
  end
12
12
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api private
4
+ # @since 0.9.0
5
+ module SmartCore::Ext
6
+ require_relative 'ext/basic_object_as_object'
7
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @api public
4
+ # @since 0.9.0
5
+ # @version 0.10.0
6
+ module SmartCore::Ext::BasicObjectAsObject
7
+ refine BasicObject do
8
+ _m_obj = ::Object.new
9
+
10
+ _is_a = _m_obj.method(:is_a?).unbind.tap(&:freeze)
11
+ _freeze = _m_obj.method(:freeze).unbind.tap(&:freeze)
12
+ _frozen = _m_obj.method(:frozen?).unbind.tap(&:freeze)
13
+ _hash = _m_obj.method(:hash).unbind.tap(&:freeze)
14
+ _nil = _m_obj.method(:nil?).unbind.tap(&:freeze)
15
+ _instance_of = _m_obj.method(:instance_of?).unbind.tap(&:freeze)
16
+
17
+ # @note Object#is_a? behavior copy
18
+ # @param klass [Class]
19
+ # @return [Boolean]
20
+ #
21
+ # @api public
22
+ # @since 0.9.0
23
+ define_method(:is_a?) do |klass|
24
+ _is_a.bind(self).call(klass)
25
+ end
26
+ alias_method :kind_of?, :is_a?
27
+
28
+ # @note Object#freeze behavior copy
29
+ # @return [self]
30
+ #
31
+ # @api public
32
+ # @since 0.9.0
33
+ define_method(:freeze) do
34
+ _freeze.bind(self).call
35
+ end
36
+
37
+ # @note Object#frozen? behavior copy
38
+ # @return [Boolean]
39
+ #
40
+ # @api public
41
+ # @since 0.9.0
42
+ define_method(:frozen?) do
43
+ _frozen.bind(self).call
44
+ end
45
+
46
+ # @return [Integer]
47
+ #
48
+ # @api public
49
+ # @since 0.10.0
50
+ define_method(:hash) do
51
+ _hash.bind(self).call
52
+ end
53
+
54
+ # @return [Boolean]
55
+ #
56
+ # @api public
57
+ # @since 0.10.0
58
+ define_method(:nil?) do
59
+ _nil.bind(self).call
60
+ end
61
+
62
+ # @return [Boolean]
63
+ #
64
+ # @api public
65
+ # @since 0.1.0
66
+ define_method(:instance_of?) do |klass|
67
+ _instance_of.bind(self).call(klass)
68
+ end
69
+ end
70
+ end
@@ -34,10 +34,10 @@ Gem::Specification.new do |spec|
34
34
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
35
35
  spec.require_paths = ['lib']
36
36
 
37
- spec.add_development_dependency 'bundler', '~> 2.1'
37
+ spec.add_development_dependency 'bundler', '~> 2.2'
38
38
  spec.add_development_dependency 'rake', '~> 13.0'
39
- spec.add_development_dependency 'rspec', '~> 3.9'
40
- spec.add_development_dependency 'armitage-rubocop', '~> 0.82'
41
- spec.add_development_dependency 'simplecov', '~> 0.18'
39
+ spec.add_development_dependency 'rspec', '~> 3.10'
40
+ spec.add_development_dependency 'armitage-rubocop', '~> 1.7'
41
+ spec.add_development_dependency 'simplecov', '~> 0.21'
42
42
  spec.add_development_dependency 'pry', '~> 0.13'
43
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rustam Ibragimov
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-03 00:00:00.000000000 Z
11
+ date: 2021-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.1'
19
+ version: '2.2'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.1'
26
+ version: '2.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,42 +44,42 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.9'
47
+ version: '3.10'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.9'
54
+ version: '3.10'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: armitage-rubocop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.82'
61
+ version: '1.7'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.82'
68
+ version: '1.7'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.18'
75
+ version: '0.21'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.18'
82
+ version: '0.21'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -107,7 +107,6 @@ files:
107
107
  - ".gitignore"
108
108
  - ".rspec"
109
109
  - ".rubocop.yml"
110
- - ".travis.yml"
111
110
  - CHANGELOG.md
112
111
  - CODE_OF_CONDUCT.md
113
112
  - Gemfile
@@ -119,10 +118,15 @@ files:
119
118
  - bin/setup
120
119
  - lib/smart_core.rb
121
120
  - lib/smart_core/engine.rb
121
+ - lib/smart_core/engine/atom.rb
122
+ - lib/smart_core/engine/ext.rb
123
+ - lib/smart_core/engine/frozener.rb
122
124
  - lib/smart_core/engine/lock.rb
123
125
  - lib/smart_core/engine/rescue_ext.rb
124
126
  - lib/smart_core/engine/version.rb
125
127
  - lib/smart_core/errors.rb
128
+ - lib/smart_core/ext.rb
129
+ - lib/smart_core/ext/basic_object_as_object.rb
126
130
  - smart_engine.gemspec
127
131
  homepage: https://github.com/smart-rb/smart_engine
128
132
  licenses:
@@ -131,7 +135,7 @@ metadata:
131
135
  homepage_uri: https://github.com/smart-rb/smart_engine
132
136
  source_code_uri: https://github.com/smart-rb/smart_engine
133
137
  changelog_uri: https://github.com/smart-rb/smart_engine/blob/master/CHANGELOG.md
134
- post_install_message:
138
+ post_install_message:
135
139
  rdoc_options: []
136
140
  require_paths:
137
141
  - lib
@@ -146,8 +150,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
150
  - !ruby/object:Gem::Version
147
151
  version: '0'
148
152
  requirements: []
149
- rubygems_version: 3.1.2
150
- signing_key:
153
+ rubygems_version: 3.2.3
154
+ signing_key:
151
155
  specification_version: 4
152
156
  summary: SmartCore Engine - a generic subset of SmartCore's functionality.
153
157
  test_files: []
@@ -1,21 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- before_install: gem install bundler
5
- os: linux
6
- dist: xenial
7
- script:
8
- - bundle exec rake rubocop
9
- - bundle exec rake rspec
10
- jobs:
11
- fast_finish: true
12
- include:
13
- - rvm: 2.4.10
14
- - rvm: 2.5.8
15
- - rvm: 2.6.6
16
- - rvm: 2.7.1
17
- - rvm: ruby-head
18
- - rvm: jruby-head
19
- allow_failures:
20
- - rvm: ruby-head
21
- - rvm: jruby-head