persistent_open_struct 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c56926b84113f349bff3d7626376aa08f3bacc67
4
- data.tar.gz: 52d2e51a904300c09ddff7cd66500a3986772c1a
3
+ metadata.gz: f6c41e9e236bb66901a4391b2e3faff934b08a87
4
+ data.tar.gz: 34f5b6e46d8832b0647fe74cfb51682311924acd
5
5
  SHA512:
6
- metadata.gz: c572c33cf67151da6da095d47c55d758bc49ffc21db1bdda311518629f7ac2e12eabc9383e3a0f309b059d603a9371ef748d16acbe0de4bebd9af96238a97c61
7
- data.tar.gz: bb0dc99765a194859a37ed1e8e220250a9891013257a64d93b8eb1a7b64b2a033410f220d7725b709e8b409a935810706ffce356b0cf2a7bc4abe6575e7c4f4b
6
+ metadata.gz: 3e844c2385b245cfe29cc4575f4e675e71478e47d877312238b2e71a174eb7faa49dd184e14b452bee4e0a6ef530ef366e0fae66b9b6c6501c46f355dcbf9d34
7
+ data.tar.gz: 53b8efa1f9ac4cbf4a1c63abe496898afff1e6783663ac7064d9f3363bcd7aeffa0498145354fcdf7cce24bf6489be3a0994dedbf3f5dc3a6e85db95bed65df6
@@ -119,12 +119,12 @@ class PersistentOpenStruct
119
119
  protected :table
120
120
 
121
121
  def ==(other)
122
- return false unless other.kind_of?(OpenStruct)
122
+ return false unless other.class == self.class
123
123
  @table == other.table
124
124
  end
125
125
 
126
126
  def eql?(other)
127
- return false unless other.kind_of?(OpenStruct)
127
+ return false unless other.class == self.class
128
128
  @table.eql?(other.table)
129
129
  end
130
130
 
@@ -1,5 +1,5 @@
1
1
  require 'ostruct'
2
2
 
3
- class PersistentOpenStruct < OpenStruct
4
- VERSION = "0.0.2"
3
+ class PersistentOpenStruct
4
+ VERSION = "0.0.3"
5
5
  end
@@ -28,6 +28,17 @@ class PersistentOpenStructTest < Minitest::Test
28
28
  refute_equal(o1, o2)
29
29
  end
30
30
 
31
+ def test_equality_of_subclasses
32
+ pos_class = Class.new(PersistentOpenStruct)
33
+ o1 = pos_class.new(foo: :bar)
34
+
35
+ pos_class2 = Class.new(pos_class)
36
+ o2 = pos_class2.new(foo: :bar)
37
+
38
+ assert_equal(o1, o1.dup)
39
+ refute_equal(o1, o2)
40
+ end
41
+
31
42
  def test_inspect
32
43
  foo = PersistentOpenStruct.new
33
44
  assert_equal("#<PersistentOpenStruct>", foo.inspect)
@@ -109,10 +120,12 @@ class PersistentOpenStructTest < Minitest::Test
109
120
  def test_eql_and_hash
110
121
  os1 = PersistentOpenStruct.new age: 70
111
122
  os2 = PersistentOpenStruct.new age: 70.0
123
+ os3 = Class.new(PersistentOpenStruct).new age: 70
112
124
  assert_equal os1, os2
113
125
  assert_equal false, os1.eql?(os2)
114
126
  refute_equal os1.hash, os2.hash
115
- assert_equal true, os1.eql?(os1.dup)
127
+ assert os1.eql?(os1.dup)
128
+ refute os1.eql?(os3)
116
129
  assert_equal os1.hash, os1.dup.hash
117
130
  end
118
131
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: persistent_open_struct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - amcaplan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-04 00:00:00.000000000 Z
11
+ date: 2016-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  version: '0'
120
120
  requirements: []
121
121
  rubyforge_project:
122
- rubygems_version: 2.5.1
122
+ rubygems_version: 2.2.2
123
123
  signing_key:
124
124
  specification_version: 4
125
125
  summary: A variant of OpenStruct that persists defined methods