ivo 0.2.1 → 0.2.2

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