ivo 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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ivo.rb +20 -0
  3. data/lib/ivo/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db2f84f5996ab921791d1a4d49a381297475afd3
4
- data.tar.gz: 6a2de9056694069b7ca97aa497eaff47c49da8b2
3
+ metadata.gz: 6fdc9a620759edc3eff979f744d48905bd09cbdd
4
+ data.tar.gz: a1c49a1b8a160c74d6ad8ab65e6f0a37a859a8dc
5
5
  SHA512:
6
- metadata.gz: ea2571208cf60a10976771a2ee7798065066b445705a103d2583664f12c08eacbe92a7893cda2cd54d2f87054d8c4cf71ad5ce84c1737849deef37df43a2a209
7
- data.tar.gz: dee330ab9f327396b26729e69fb24d7e9243e0317dd9b647f3288a88cbec1824403097a80b0bc5ef30cc482a8885adb042a828b5c8d6aaa9c2da646471d80f81
6
+ metadata.gz: 8bbbbeeeba4fec23c70e9d62ec6a23e33ced06c3eb125be401ef963722fa4f33ff0f1d164a1b2d6287e10bb52dd2efecf92f0bd21217277444c0eb305a6e01e0
7
+ data.tar.gz: b16247f008a7239b823b4bef7a353ce74a88b575093f83668c3e7c61888db68d61213a43bf0dd22603b5948a91f23a3eff3bbba671a8090cdb681addc0a1fa69
data/lib/ivo.rb CHANGED
@@ -12,6 +12,14 @@ module Ivo
12
12
  # @b = b
13
13
  instance_variable_assignments = attrs.map { |attr| "@#{attr} = #{attr}" }.join "\n"
14
14
 
15
+ equality_check = begin
16
+ checks = ['self.class == other.class']
17
+ checks = attrs.each { checks << "#{attr} == other.#{attr}" }
18
+ checks.join ' && '
19
+ end
20
+
21
+ hash = attrs.map { |attr| "#{attr}.hash" }.join ' ^ '
22
+
15
23
  code = <<~RUBY
16
24
  def self.with(#{keyword_args})
17
25
  new #{attrs.join ', '}
@@ -21,6 +29,18 @@ module Ivo
21
29
  #{instance_variable_assignments}
22
30
  freeze
23
31
  end
32
+
33
+ def ==(other)
34
+ #{equality_check}
35
+ end
36
+
37
+ def eql?(other)
38
+ self == other
39
+ end
40
+
41
+ def hash
42
+ #{hash}
43
+ end
24
44
  RUBY
25
45
 
26
46
  Class.new do
@@ -1,3 +1,3 @@
1
1
  module Ivo
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ivo
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
  - Austin Schneider
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-30 00:00:00.000000000 Z
11
+ date: 2017-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler