dry-equalizer 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|