dry-equalizer 0.2.1 → 0.2.2
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 +4 -4
- data/.travis.yml +6 -9
- data/CHANGELOG.md +13 -0
- data/Gemfile +1 -0
- data/README.md +0 -1
- data/dry-equalizer.gemspec +0 -2
- data/lib/dry/equalizer.rb +6 -6
- data/lib/dry/equalizer/version.rb +1 -1
- data/spec/unit/equalizer/universal_spec.rb +27 -3
- metadata +4 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68e7a5819b71d2ffd60f4424d3b06e92710404a1a83b5fb1770f36530fee537e
|
4
|
+
data.tar.gz: fbaa5d489d993948159108249b42eaec44a144163ea73285cff6c88c0cec1dd0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7951e751feca649d17457d9d95f18af296bac9a583ed5d3644edb9e926afcdd2187af0effec08723a580b3acadd9fbac3467bda3c90ef5863c417c14b1d9e22b
|
7
|
+
data.tar.gz: e09afaa53dcb1d775a634d453f3e3d9b015834a3d07e2ae3cfb2bedcb0cf9b37825da42e3cf8224f926c81eafd195d6b981700a2586c9e609bc9d37da331cf1f
|
data/.travis.yml
CHANGED
@@ -1,18 +1,15 @@
|
|
1
1
|
language: ruby
|
2
2
|
cache: bundler
|
3
3
|
bundler_args: --without benchmarks tools
|
4
|
-
script:
|
5
|
-
- bundle exec rake
|
6
|
-
before_install:
|
7
|
-
- gem update --system
|
8
4
|
after_success:
|
9
5
|
- '[ -d coverage ] && bundle exec codeclimate-test-reporter'
|
10
6
|
rvm:
|
11
|
-
- 2.2.
|
12
|
-
- 2.3.
|
13
|
-
- 2.4.
|
14
|
-
- 2.5.
|
15
|
-
-
|
7
|
+
- 2.2.10
|
8
|
+
- 2.3.8
|
9
|
+
- 2.4.5
|
10
|
+
- 2.5.3
|
11
|
+
- 2.6.1
|
12
|
+
- jruby-9.2.6.0
|
16
13
|
env:
|
17
14
|
global:
|
18
15
|
- COVERAGE=true
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
# v0.2.2 2019-03-08
|
2
|
+
|
3
|
+
### Added
|
4
|
+
|
5
|
+
* Generation of `#to_s` and `#inspect` can be disabled with `inspect: false` (flash-gordon)
|
6
|
+
```ruby
|
7
|
+
class User
|
8
|
+
include Dry::Equalizer(:id, :name, :age, inspect: false)
|
9
|
+
end
|
10
|
+
```
|
11
|
+
|
12
|
+
[Compare v0.2.1...v0.2.2](https://github.com/dry-rb/dry-equalizer/compare/v0.2.1...v0.2.2)
|
13
|
+
|
1
14
|
# v0.2.1 2018-04-26
|
2
15
|
|
3
16
|
### Fixed
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -9,7 +9,6 @@ Module to define equality, equivalence and inspection methods
|
|
9
9
|
|
10
10
|
[gem]: https://rubygems.org/gems/dry-equalizer
|
11
11
|
[travis]: https://travis-ci.org/dry-rb/dry-equalizer
|
12
|
-
[gemnasium]: https://gemnasium.com/dry-rb/dry-equalizer
|
13
12
|
[codeclimate]: https://codeclimate.com/github/dry-rb/dry-equalizer
|
14
13
|
|
15
14
|
Examples
|
data/dry-equalizer.gemspec
CHANGED
data/lib/dry/equalizer.rb
CHANGED
@@ -2,8 +2,8 @@ module Dry
|
|
2
2
|
# Build an equalizer module for the inclusion in other class
|
3
3
|
#
|
4
4
|
# @api public
|
5
|
-
def self.Equalizer(*keys)
|
6
|
-
Dry::Equalizer.new(*keys)
|
5
|
+
def self.Equalizer(*keys, **options)
|
6
|
+
Dry::Equalizer.new(*keys, **options)
|
7
7
|
end
|
8
8
|
|
9
9
|
# Define equality, equivalence and inspection methods
|
@@ -18,9 +18,9 @@ module Dry
|
|
18
18
|
# @return [undefined]
|
19
19
|
#
|
20
20
|
# @api private
|
21
|
-
def initialize(*keys)
|
21
|
+
def initialize(*keys, inspect: true)
|
22
22
|
@keys = keys.uniq
|
23
|
-
define_methods
|
23
|
+
define_methods(inspect: inspect)
|
24
24
|
freeze
|
25
25
|
end
|
26
26
|
|
@@ -44,10 +44,10 @@ module Dry
|
|
44
44
|
# @return [undefined]
|
45
45
|
#
|
46
46
|
# @api private
|
47
|
-
def define_methods
|
47
|
+
def define_methods(inspect: true)
|
48
48
|
define_cmp_method
|
49
49
|
define_hash_method
|
50
|
-
define_inspect_method
|
50
|
+
define_inspect_method if inspect
|
51
51
|
end
|
52
52
|
|
53
53
|
# Define an #cmp? method based on the instance's values identified by #keys
|
@@ -10,7 +10,7 @@ RSpec.describe Dry::Equalizer do
|
|
10
10
|
before do
|
11
11
|
# specify the class #name method
|
12
12
|
allow(klass).to receive(:name).and_return(name)
|
13
|
-
klass.
|
13
|
+
klass.include(subject)
|
14
14
|
end
|
15
15
|
|
16
16
|
let(:instance) { klass.new }
|
@@ -92,7 +92,7 @@ RSpec.describe Dry::Equalizer do
|
|
92
92
|
before do
|
93
93
|
# specify the class #inspect method
|
94
94
|
allow(klass).to receive_messages(name: nil, inspect: name)
|
95
|
-
klass.
|
95
|
+
klass.include(subject)
|
96
96
|
end
|
97
97
|
|
98
98
|
it { should be_instance_of(described_class) }
|
@@ -176,7 +176,7 @@ RSpec.describe Dry::Equalizer do
|
|
176
176
|
before do
|
177
177
|
# specify the class #inspect method
|
178
178
|
allow(klass).to receive_messages(name: nil, inspect: name)
|
179
|
-
klass.
|
179
|
+
klass.include(subject)
|
180
180
|
end
|
181
181
|
|
182
182
|
it { should be_instance_of(described_class) }
|
@@ -190,4 +190,28 @@ RSpec.describe Dry::Equalizer do
|
|
190
190
|
end
|
191
191
|
end
|
192
192
|
end
|
193
|
+
|
194
|
+
context 'with options' do
|
195
|
+
context 'w/o inspect' do
|
196
|
+
subject { Dry::Equalizer(*keys, inspect: false) }
|
197
|
+
|
198
|
+
let(:keys) { %i[firstname lastname].freeze }
|
199
|
+
let(:firstname) { 'John' }
|
200
|
+
let(:lastname) { 'Doe' }
|
201
|
+
let(:instance) { klass.new(firstname, lastname) }
|
202
|
+
|
203
|
+
let(:klass) do
|
204
|
+
::Struct.new(:firstname, :lastname)
|
205
|
+
end
|
206
|
+
|
207
|
+
before { klass.include(subject) }
|
208
|
+
|
209
|
+
describe '#inspect' do
|
210
|
+
it 'returns the default string' do
|
211
|
+
expect(instance.inspect).to eql('#<struct firstname="John", lastname="Doe">')
|
212
|
+
expect(instance.to_s).to eql('#<struct firstname="John", lastname="Doe">')
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
216
|
+
end
|
193
217
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-equalizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Kubb
|
@@ -9,28 +9,8 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: bundler
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - "~>"
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '1.3'
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 1.3.5
|
24
|
-
type: :development
|
25
|
-
prerelease: false
|
26
|
-
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
requirements:
|
28
|
-
- - "~>"
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: '1.3'
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 1.3.5
|
12
|
+
date: 2019-03-09 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
34
14
|
description: Module to define equality, equivalence and inspection methods
|
35
15
|
email:
|
36
16
|
- dan.kubb@gmail.com
|
@@ -82,8 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
62
|
- !ruby/object:Gem::Version
|
83
63
|
version: '0'
|
84
64
|
requirements: []
|
85
|
-
|
86
|
-
rubygems_version: 2.7.4
|
65
|
+
rubygems_version: 3.0.3
|
87
66
|
signing_key:
|
88
67
|
specification_version: 4
|
89
68
|
summary: Module to define equality, equivalence and inspection methods
|