flexirest 1.9.16 → 1.9.17

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
  SHA256:
3
- metadata.gz: 70788d1c6cfd0e3490c50e6eec78136eb5f6e1031dd6135e943ab7a1a0367db0
4
- data.tar.gz: ed5282f589dd2893fc16db20197d6109382887a6b3a5a936e2f04113c6ba70cf
3
+ metadata.gz: 50fe9393bbb548c2052ca5f971b7c406a9daf742d398fcd0681a917e03dd6247
4
+ data.tar.gz: b1dc3e1b1c97626ed7956f7a7ba31f4bd424d9a1a539645de8bbd456348eb814
5
5
  SHA512:
6
- metadata.gz: 21b69a5820a346cbdfded7e4f0c30e79f5ff10d4f2e272d59f0163070d1e4a729ebaf95d9fe7ccbb70fc15ba952bdee741bcbb994740b40e1882d7c6a0516ba3
7
- data.tar.gz: 57fc2b560629d9cf2521d4f06b3f0dcdca059a686a88f3fe7cc8ca2b4ac912bd1896074243c8a589d5989b4019acc8d0eac709dd95d1f2cd7885ac0523eac702
6
+ metadata.gz: 23ca59d17ad6df1bf15f8dc40bf4fd826132016d82de50a40824ac9d7d98858e92ab621bc8d0681bb61db950ae50853b3017bae86b8ae96ecccc1270a757c018
7
+ data.tar.gz: 60bae684f60df01e8419f97d870bb3412192c6e7c85ecff1abf578d6210bc8d336781e1f1bd1d4f05753b1cccd3a44923049dd43a76f55f5b3ee233807b75fbb
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.17
4
+
5
+ Feature:
6
+
7
+ - Methods can be specified as a symbol for generating fake data (thanks to Niall Duggan for the feature request).
8
+
3
9
  ## 1.9.16
4
10
 
5
11
  Bugfix:
@@ -16,6 +16,17 @@ class Person < Flexirest::Base
16
16
  end
17
17
  ```
18
18
 
19
+ Alternatively, you can specify a symbol as the `fake` parameter, and Flexirest will call that method to get a string JSON as if it was the request body:
20
+
21
+ ```ruby
22
+ class Person < Flexirest::Base
23
+ get :all, '/people', fake: :get_data
24
+
25
+ def get_data
26
+ {result: true}.to_json
27
+ end
28
+ end
29
+ ```
19
30
 
20
31
  -----
21
32
 
@@ -191,9 +191,18 @@ module Flexirest
191
191
  @body = nil
192
192
  prepare_params
193
193
  prepare_url
194
- if fake = @method[:options][:fake]
194
+ fake = @method[:options][:fake]
195
+ if fake.present?
195
196
  if fake.respond_to?(:call)
196
197
  fake = fake.call(self)
198
+ elsif @object.respond_to?(fake)
199
+ fake = @object.send(fake)
200
+ elsif @object.class.respond_to?(fake)
201
+ fake = @object.class.send(fake)
202
+ elsif @object.new.respond_to?(fake)
203
+ fake = @object.new.send(fake)
204
+ elsif @object.class.new.respond_to?(fake)
205
+ fake = @object.class.new.send(fake)
197
206
  end
198
207
  Flexirest::Logger.debug " \033[1;4;32m#{Flexirest.name}\033[0m #{@instrumentation_name} - Faked response found"
199
208
  content_type = @method[:options][:fake_content_type] || "application/json"
@@ -1,3 +1,3 @@
1
1
  module Flexirest
2
- VERSION = "1.9.16"
2
+ VERSION = "1.9.17"
3
3
  end
@@ -55,6 +55,7 @@ describe Flexirest::Request do
55
55
  get :hal, "/hal", fake:"{\"_links\":{\"child\": {\"href\": \"/child/1\"}, \"other\": {\"href\": \"/other/1\"}, \"cars\":[{\"href\": \"/car/1\", \"name\":\"car1\"}, {\"href\": \"/car/2\", \"name\":\"car2\"}, {\"href\": \"/car/not-embed\", \"name\":\"car_not_embed\"} ], \"lazy\": {\"href\": \"/lazy/load\"}, \"invalid\": [{\"href\": \"/invalid/1\"}]}, \"_embedded\":{\"other\":{\"name\":\"Jane\"},\"child\":{\"name\":\"Billy\"}, \"cars\":[{\"_links\": {\"self\": {\"href\": \"/car/1\"} }, \"make\": \"Bugatti\", \"model\": \"Veyron\"}, {\"_links\": {\"self\": {\"href\": \"/car/2\"} }, \"make\": \"Ferrari\", \"model\": \"F458 Italia\"} ], \"invalid\": [{\"present\":true, \"_links\": {} } ] } }", has_many:{other:ExampleOtherClient}
56
56
  get :fake_object, "/fake", fake:"{\"result\":true, \"list\":[1,2,3,{\"test\":true}], \"child\":{\"grandchild\":{\"test\":true}}}"
57
57
  get :fake_proc_object, "/fake", fake:->(request) { "{\"result\":#{request.get_params[:id]}}" }
58
+ get :fake_method, "/fake", fake: :generate_fake_data
58
59
  get :fake_array, "/fake", fake:"[1,2,3,{\"test\":true},null]"
59
60
  get :fake_proc_array, "/fake", fake:->(request) { "[{\"result\":#{request.get_params[:id]}},null]" }
60
61
  get :defaults, "/defaults", defaults:{overwrite:"no", persist:"yes"}
@@ -62,6 +63,10 @@ describe Flexirest::Request do
62
63
  patch :only_changed_1, "/changed1", only_changed: true
63
64
  patch :only_changed_2, "/changed2", only_changed: [:debug1, :debug2]
64
65
  patch :only_changed_3, "/changed3", only_changed: { debug1: false, debug2: true }
66
+
67
+ def generate_fake_data
68
+ "{\"result\":true, \"list\":[1,2,3,{\"test\":true}], \"child\":{\"grandchild\":{\"test\":true}}}"
69
+ end
65
70
  end
66
71
 
67
72
  class ExampleLoadBalancedClient < Flexirest::Base
@@ -576,6 +581,11 @@ describe Flexirest::Request do
576
581
  expect(object.result).to eq(1234)
577
582
  end
578
583
 
584
+ it "should parse JSON object from a fake response generated by method defined as a symbol" do
585
+ object = ExampleClient.fake_method id:1234
586
+ expect(object.result).to eq(true)
587
+ end
588
+
579
589
  it "should parse JSON array and return a nice result iterator for faked responses" do
580
590
  object = ExampleClient.fake_array debug:true
581
591
  expect(object).to be_instance_of(Flexirest::ResultIterator)
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.16
4
+ version: 1.9.17
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-07-03 00:00:00.000000000 Z
11
+ date: 2020-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler