smart_types 0.7.0 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +3 -2
- data/README.md +18 -0
- data/lib/smart_core/types/primitive/factory/runtime_type_builder.rb +2 -1
- data/lib/smart_core/types/version.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 272f5a15bb76008e456d87ad711a534518fa746369c3c64b8915f09265f75fea
|
4
|
+
data.tar.gz: 53ccc4912ec1577133ccfbe678dba4741a85c5a8521b72f2fca396823c31797d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bb710c2e0f11a8a267a2663fcb9ad75b60352d306b17a8bebad812013531ea1ee7fac4996bc342be245ac09939d862ca0f2dc2a4c26dfd5c9aa064ea41b270f
|
7
|
+
data.tar.gz: a2d03bcc580625b3af5ffe9535cd5b26e972b4d4b6189d71aceaa09c48f527cb2310c8aa68238803093357dee4f8b43817d3b95ddd5c912bd11dc9a6da2bbdf8
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
# Changelog
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
+
# [0.7.1] - 2022-08-31
|
5
|
+
### Fixed
|
6
|
+
- (**TruffelRuby** fix) Fixed `NoMethodError: private method 'initialize_clone'` failing on type object duplication and cloning (`#dup` and `#clone`).
|
7
|
+
`TruffleRuby` implementation makes `initialize_clone` method private by default even if your manually defined method is implicitly public.
|
8
|
+
To fix this we should explicitly define our method as a public method (`public def initialize_clone`).
|
9
|
+
```
|
10
|
+
NoMethodError: private method `initialize_clone' called for SmartCore::Types::Primitive::Factory::RuntimeTypeBuilder:Module
|
11
|
+
```
|
12
|
+
|
4
13
|
# [0.7.0] - 2021-11-22
|
5
14
|
### Added
|
6
15
|
- Added Github Actions CI;
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
smart_types (0.7.
|
4
|
+
smart_types (0.7.1)
|
5
5
|
smart_engine (~> 0.11)
|
6
6
|
|
7
7
|
GEM
|
@@ -83,13 +83,14 @@ GEM
|
|
83
83
|
simplecov-html (0.12.3)
|
84
84
|
simplecov-lcov (0.8.0)
|
85
85
|
simplecov_json_formatter (0.1.2)
|
86
|
-
smart_engine (0.
|
86
|
+
smart_engine (0.12.0)
|
87
87
|
tzinfo (2.0.4)
|
88
88
|
concurrent-ruby (~> 1.0)
|
89
89
|
unicode-display_width (1.7.0)
|
90
90
|
zeitwerk (2.4.2)
|
91
91
|
|
92
92
|
PLATFORMS
|
93
|
+
arm64-darwin-21
|
93
94
|
x86_64-darwin-19
|
94
95
|
x86_64-darwin-20
|
95
96
|
x86_64-darwin-21
|
data/README.md
CHANGED
@@ -443,6 +443,22 @@ SmartCore::Types::Value::Class.cast(123)
|
|
443
443
|
|
444
444
|
- type refinements:
|
445
445
|
|
446
|
+
```ruby
|
447
|
+
SmartCore::Types.configure do |config|
|
448
|
+
config.warn_on_type_refinements = true # false by default
|
449
|
+
end
|
450
|
+
```
|
451
|
+
|
452
|
+
```ruby
|
453
|
+
SmartCore::Types::Value.refine(:Time) do |type|
|
454
|
+
# new type definition
|
455
|
+
end
|
456
|
+
|
457
|
+
SmartCore::Types::Value::Time.refine do |type|
|
458
|
+
# new type definition
|
459
|
+
end
|
460
|
+
```
|
461
|
+
|
446
462
|
```ruby
|
447
463
|
SmartCore::Types::Value::Time.refine_checker do |value, original_checker|
|
448
464
|
# new type checker
|
@@ -505,6 +521,8 @@ SmartCore::Types::Protocol::Enumerable
|
|
505
521
|
SmartCore::Types::Protocol::Comparable
|
506
522
|
SmartCore::Types::Protocol::Forwardable
|
507
523
|
SmartCore::Types::Protocol::Callable
|
524
|
+
SmartCore::Types::Behavior::Truthy
|
525
|
+
SmartCore::Types::Behavior::Falsy
|
508
526
|
```
|
509
527
|
|
510
528
|
- `#sum` alias for `|` and `#mult` alias for `&` (with a support for type name definition and other API);
|
@@ -28,8 +28,9 @@ module SmartCore::Types::Primitive::Factory::RuntimeTypeBuilder
|
|
28
28
|
#
|
29
29
|
# @api private
|
30
30
|
# @since 0.3.0
|
31
|
+
# @version 0.7.1
|
31
32
|
# rubocop:disable Metrics/AbcSize, Layout/LineLength
|
32
|
-
def initialize_clone(new_instance, cloneable_instance)
|
33
|
+
public def initialize_clone(new_instance, cloneable_instance)
|
33
34
|
name_clone = cloneable_instance.instance_variable_get(:@name)
|
34
35
|
category_clone = cloneable_instance.instance_variable_get(:@category)
|
35
36
|
validator_clone = cloneable_instance.instance_variable_get(:@validator).___copy_for___(new_instance)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_types
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rustam Ibragimov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: smart_engine
|
@@ -239,7 +239,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
239
239
|
- !ruby/object:Gem::Version
|
240
240
|
version: '0'
|
241
241
|
requirements: []
|
242
|
-
rubygems_version: 3.
|
242
|
+
rubygems_version: 3.3.11
|
243
243
|
signing_key:
|
244
244
|
specification_version: 4
|
245
245
|
summary: Full-featured type system for any ruby project.
|