persistent_open_struct 0.0.2 → 0.0.3

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
  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