flexirest 1.9.15 → 1.9.16

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: 9109fa6e8a984fd09fc43604d7908893d1039c5f36ddbf610f39886ec2ca051d
4
- data.tar.gz: dbcb5e768a3562effe9f2169f85e2ccb9f26c4de5cb4d176e243dbe6fbe35e9a
3
+ metadata.gz: 70788d1c6cfd0e3490c50e6eec78136eb5f6e1031dd6135e943ab7a1a0367db0
4
+ data.tar.gz: ed5282f589dd2893fc16db20197d6109382887a6b3a5a936e2f04113c6ba70cf
5
5
  SHA512:
6
- metadata.gz: 81c0b923e2463e633bbf6485a8e32ea1ea6bc4988f028ffcb4fb662b8e8000d1d6e8b8c7004317805eeebb4245fb50fc6b2f91dee3ab75f0f2b20370b0013e3d
7
- data.tar.gz: a2f56d7e3c5af7e72c4ae63b98984705e548c9ff626d677347786b4c35750058400458cddeee3ff5e602e2b8df57b46caba4650270620b7fd332247ff7712c0c
6
+ metadata.gz: 21b69a5820a346cbdfded7e4f0c30e79f5ff10d4f2e272d59f0163070d1e4a729ebaf95d9fe7ccbb70fc15ba952bdee741bcbb994740b40e1882d7c6a0516ba3
7
+ data.tar.gz: 57fc2b560629d9cf2521d4f06b3f0dcdca059a686a88f3fe7cc8ca2b4ac912bd1896074243c8a589d5989b4019acc8d0eac709dd95d1f2cd7885ac0523eac702
@@ -1,5 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 2.7.0
3
4
  - 2.6.0
4
5
  - 2.5.0
5
- - 2.4.0
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.16
4
+
5
+ Bugfix:
6
+
7
+ - Cached responses were always returning as `dirty?`/`changed?` (thanks to AKRathore for the bug report).
8
+
3
9
  ## 1.9.15
4
10
 
5
11
  Bugfix:
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency "simplecov"
37
37
  spec.add_development_dependency "simplecov-rcov"
38
38
  spec.add_development_dependency 'coveralls'
39
- spec.add_development_dependency "api-auth", ">= 1.3.1"
39
+ spec.add_development_dependency "api-auth", ">= 1.3.1", "< 2.4"
40
40
  spec.add_development_dependency 'typhoeus'
41
41
  spec.add_development_dependency 'activemodel'
42
42
 
@@ -41,6 +41,7 @@ module Flexirest
41
41
  def _copy_from(result)
42
42
  @attributes = result._attributes
43
43
  @_status = result._status
44
+ _clean!
44
45
  end
45
46
 
46
47
  def dirty?
@@ -110,9 +110,12 @@ module Flexirest
110
110
  if @result.is_a?(Array)
111
111
  ri = ResultIterator.new(self)
112
112
  ri.items = @result.map{|i| @class_name.constantize.new(i)}
113
+ ri._clean!
113
114
  ri
114
115
  else
115
- @class_name.constantize.new(@result)
116
+ obj = @class_name.constantize.new(@result)
117
+ obj._clean!
118
+ obj
116
119
  end
117
120
  end
118
121
  end
@@ -15,6 +15,10 @@ module Flexirest
15
15
  @items << item
16
16
  end
17
17
 
18
+ def _clean!
19
+ @items.map(&:_clean!)
20
+ end
21
+
18
22
  def size
19
23
  @items.size
20
24
  end
@@ -1,3 +1,3 @@
1
1
  module Flexirest
2
- VERSION = "1.9.15"
2
+ VERSION = "1.9.16"
3
3
  end
@@ -178,6 +178,13 @@ describe Flexirest::BaseWithoutValidation do
178
178
  expect(client).to be_dirty
179
179
  end
180
180
 
181
+ it "should not mark a freshly retrieved object as changed" do
182
+ expect_any_instance_of(Flexirest::Connection).to receive(:get).with('/find/1', anything).and_return(::FaradayResponseMock.new(OpenStruct.new(status:200, response_headers:{}, body:"{\"first_name\":\"Billy\"}")))
183
+ client = AlteringClientExample.find(id: 1)
184
+ expect(client).to_not be_changed
185
+ expect(client.changes).to eq({})
186
+ end
187
+
181
188
  it 'should respond_to? attributes defined in the response' do
182
189
  client = EmptyExample.new(hello: "World")
183
190
  expect(client.respond_to?(:hello)).to be_truthy
@@ -184,6 +184,18 @@ describe Flexirest::Caching do
184
184
  expect(ret.first_name).to eq("Johnny")
185
185
  end
186
186
 
187
+ it "cache read objects shouldn't be marked as changed" do
188
+ cached_response = Flexirest::CachedResponse.new(
189
+ status:200,
190
+ result:@cached_object,
191
+ expires:Time.now + 30)
192
+ expect_any_instance_of(CachingExampleCacheStore5).to receive(:read).once.with("Person:/").and_return(Marshal.dump(cached_response))
193
+ expect_any_instance_of(Flexirest::Connection).not_to receive(:get)
194
+ ret = Person.all
195
+ expect(ret).to_not be_changed
196
+ expect(ret.changes).to eq({})
197
+ end
198
+
187
199
  it "should read from the cache store and restore to the same object" do
188
200
  cached_response = Flexirest::CachedResponse.new(
189
201
  status:200,
@@ -66,12 +66,12 @@ class FaradayResponseMock < ::Flexirest::FaradayResponseProxy
66
66
  @finished = false
67
67
  end
68
68
 
69
- def on_complete
69
+ def on_complete(&block)
70
70
  if @auto_resolve
71
71
  @finished = true
72
72
  yield(@response)
73
73
  else
74
- @callback = Proc.new
74
+ @callback = block
75
75
  end
76
76
  end
77
77
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flexirest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.15
4
+ version: 1.9.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Jeffries
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-18 00:00:00.000000000 Z
11
+ date: 2020-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -129,6 +129,9 @@ dependencies:
129
129
  - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: 1.3.1
132
+ - - "<"
133
+ - !ruby/object:Gem::Version
134
+ version: '2.4'
132
135
  type: :development
133
136
  prerelease: false
134
137
  version_requirements: !ruby/object:Gem::Requirement
@@ -136,6 +139,9 @@ dependencies:
136
139
  - - ">="
137
140
  - !ruby/object:Gem::Version
138
141
  version: 1.3.1
142
+ - - "<"
143
+ - !ruby/object:Gem::Version
144
+ version: '2.4'
139
145
  - !ruby/object:Gem::Dependency
140
146
  name: typhoeus
141
147
  requirement: !ruby/object:Gem::Requirement