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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3a819572ea7edadec962667cf45602118b745509ee33a86bbf440153340500f6
4
- data.tar.gz: 725faa38c3a44a8ccb1a79e33e194f3aed15d2d08778167a90d144950d85718a
3
+ metadata.gz: 68e7a5819b71d2ffd60f4424d3b06e92710404a1a83b5fb1770f36530fee537e
4
+ data.tar.gz: fbaa5d489d993948159108249b42eaec44a144163ea73285cff6c88c0cec1dd0
5
5
  SHA512:
6
- metadata.gz: 6b7145d6579f21bbd00dee972501f4251c60dea36f7e4c22eb4ea20ec640fe4e115b1ffc5da597354be807f2d844030a6ffa64a8712a660a543cb470f5801ddb
7
- data.tar.gz: 3d2bc74a8e66dee5e2873391a2a37a8768c063d5e36e17fca6dd5986129483ee7e2ba361335d4de65cd2c2b03070a8987e16eb6bae196dc89f9d5280f814c6ee
6
+ metadata.gz: 7951e751feca649d17457d9d95f18af296bac9a583ed5d3644edb9e926afcdd2187af0effec08723a580b3acadd9fbac3467bda3c90ef5863c417c14b1d9e22b
7
+ data.tar.gz: e09afaa53dcb1d775a634d453f3e3d9b015834a3d07e2ae3cfb2bedcb0cf9b37825da42e3cf8224f926c81eafd195d6b981700a2586c9e609bc9d37da331cf1f
@@ -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.9
12
- - 2.3.6
13
- - 2.4.3
14
- - 2.5.0
15
- - jruby-9.1.15.0
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
@@ -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
@@ -3,6 +3,7 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  group :development, :test do
6
+ gem 'bundler'
6
7
  gem 'rake'
7
8
  gem 'rspec', '~> 3.5'
8
9
  end
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
@@ -16,6 +16,4 @@ Gem::Specification.new do |gem|
16
16
  gem.extra_rdoc_files = %w[LICENSE README.md CONTRIBUTING.md]
17
17
 
18
18
  gem.required_ruby_version = '>= 2.0.0'
19
-
20
- gem.add_development_dependency('bundler', '~> 1.3', '>= 1.3.5')
21
19
  end
@@ -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
@@ -1,6 +1,6 @@
1
1
  module Dry
2
2
  class Equalizer < Module
3
3
  # Gem version
4
- VERSION = '0.2.1'.freeze
4
+ VERSION = '0.2.2'.freeze
5
5
  end # class Equalizer
6
6
  end
@@ -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.send(:include, subject)
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.send(:include, subject)
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.send(:include, subject)
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.1
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: 2018-04-26 00:00:00.000000000 Z
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
- rubyforge_project:
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