faraday_middleware 0.8.8 → 0.9.0
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.
- data/Gemfile +1 -1
 - data/Rakefile +5 -3
 - data/lib/faraday_middleware.rb +5 -1
 - data/lib/faraday_middleware/request/method_override.rb +51 -0
 - data/lib/faraday_middleware/response/follow_redirects.rb +8 -2
 - data/lib/faraday_middleware/version.rb +1 -1
 - data/spec/caching_test.rb +1 -1
 - data/spec/chunked_spec.rb +15 -15
 - data/spec/encode_json_spec.rb +13 -13
 - data/spec/follow_redirects_spec.rb +59 -46
 - data/spec/helper.rb +3 -0
 - data/spec/mashify_spec.rb +30 -30
 - data/spec/method_override_spec.rb +92 -0
 - data/spec/oauth2_spec.rb +18 -18
 - data/spec/oauth_spec.rb +19 -19
 - data/spec/parse_dates_spec.rb +14 -17
 - data/spec/parse_json_spec.rb +24 -24
 - data/spec/parse_marshal_spec.rb +3 -3
 - data/spec/parse_xml_spec.rb +13 -13
 - data/spec/parse_yaml_spec.rb +10 -10
 - data/spec/rashify_spec.rb +22 -22
 - metadata +5 -2
 
    
        data/spec/parse_json_spec.rb
    CHANGED
    
    | 
         @@ -4,17 +4,17 @@ require 'faraday_middleware/response/parse_json' 
     | 
|
| 
       4 
4 
     | 
    
         
             
            describe FaradayMiddleware::ParseJson, :type => :response do
         
     | 
| 
       5 
5 
     | 
    
         
             
              context "no type matching" do
         
     | 
| 
       6 
6 
     | 
    
         
             
                it "doesn't change nil body" do
         
     | 
| 
       7 
     | 
    
         
            -
                  process(nil).body. 
     | 
| 
      
 7 
     | 
    
         
            +
                  expect(process(nil).body).to be_nil
         
     | 
| 
       8 
8 
     | 
    
         
             
                end
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                it "nullifies empty body" do
         
     | 
| 
       11 
     | 
    
         
            -
                  process('').body. 
     | 
| 
      
 11 
     | 
    
         
            +
                  expect(process('').body).to be_nil
         
     | 
| 
       12 
12 
     | 
    
         
             
                end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                it "parses json body" do
         
     | 
| 
       15 
15 
     | 
    
         
             
                  response = process('{"a":1}')
         
     | 
| 
       16 
     | 
    
         
            -
                  response.body. 
     | 
| 
       17 
     | 
    
         
            -
                  response.env[:raw_body]. 
     | 
| 
      
 16 
     | 
    
         
            +
                  expect(response.body).to eq('a' => 1)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  expect(response.env[:raw_body]).to be_nil
         
     | 
| 
       18 
18 
     | 
    
         
             
                end
         
     | 
| 
       19 
19 
     | 
    
         
             
              end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
         @@ -23,13 +23,13 @@ describe FaradayMiddleware::ParseJson, :type => :response do 
     | 
|
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                it "parses json body" do
         
     | 
| 
       25 
25 
     | 
    
         
             
                  response = process('{"a":1}')
         
     | 
| 
       26 
     | 
    
         
            -
                  response.body. 
     | 
| 
       27 
     | 
    
         
            -
                  response.env[:raw_body]. 
     | 
| 
      
 26 
     | 
    
         
            +
                  expect(response.body).to eq('a' => 1)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  expect(response.env[:raw_body]).to eq('{"a":1}')
         
     | 
| 
       28 
28 
     | 
    
         
             
                end
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                it "can opt out of preserving raw" do
         
     | 
| 
       31 
31 
     | 
    
         
             
                  response = process('{"a":1}', nil, :preserve_raw => false)
         
     | 
| 
       32 
     | 
    
         
            -
                  response.env[:raw_body]. 
     | 
| 
      
 32 
     | 
    
         
            +
                  expect(response.env[:raw_body]).to be_nil
         
     | 
| 
       33 
33 
     | 
    
         
             
                end
         
     | 
| 
       34 
34 
     | 
    
         
             
              end
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
         @@ -38,12 +38,12 @@ describe FaradayMiddleware::ParseJson, :type => :response do 
     | 
|
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
                it "parses json body of correct type" do
         
     | 
| 
       40 
40 
     | 
    
         
             
                  response = process('{"a":1}', 'application/x-json')
         
     | 
| 
       41 
     | 
    
         
            -
                  response.body. 
     | 
| 
      
 41 
     | 
    
         
            +
                  expect(response.body).to eq('a' => 1)
         
     | 
| 
       42 
42 
     | 
    
         
             
                end
         
     | 
| 
       43 
43 
     | 
    
         | 
| 
       44 
44 
     | 
    
         
             
                it "ignores json body of incorrect type" do
         
     | 
| 
       45 
45 
     | 
    
         
             
                  response = process('{"a":1}', 'text/json-xml')
         
     | 
| 
       46 
     | 
    
         
            -
                  response.body. 
     | 
| 
      
 46 
     | 
    
         
            +
                  expect(response.body).to eq('{"a":1}')
         
     | 
| 
       47 
47 
     | 
    
         
             
                end
         
     | 
| 
       48 
48 
     | 
    
         
             
              end
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
         @@ -51,18 +51,18 @@ describe FaradayMiddleware::ParseJson, :type => :response do 
     | 
|
| 
       51 
51 
     | 
    
         
             
                let(:options) { {:content_type => %w[a/b c/d]} }
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
       53 
53 
     | 
    
         
             
                it "parses json body of correct type" do
         
     | 
| 
       54 
     | 
    
         
            -
                  process('{"a":1}', 'a/b').body. 
     | 
| 
       55 
     | 
    
         
            -
                  process('{"a":1}', 'c/d').body. 
     | 
| 
      
 54 
     | 
    
         
            +
                  expect(process('{"a":1}', 'a/b').body).to be_a(Hash)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  expect(process('{"a":1}', 'c/d').body).to be_a(Hash)
         
     | 
| 
       56 
56 
     | 
    
         
             
                end
         
     | 
| 
       57 
57 
     | 
    
         | 
| 
       58 
58 
     | 
    
         
             
                it "ignores json body of incorrect type" do
         
     | 
| 
       59 
     | 
    
         
            -
                  process('{"a":1}', 'a/d').body. 
     | 
| 
      
 59 
     | 
    
         
            +
                  expect(process('{"a":1}', 'a/d').body).not_to be_a(Hash)
         
     | 
| 
       60 
60 
     | 
    
         
             
                end
         
     | 
| 
       61 
61 
     | 
    
         
             
              end
         
     | 
| 
       62 
62 
     | 
    
         | 
| 
       63 
63 
     | 
    
         
             
              it "chokes on invalid json" do
         
     | 
| 
       64 
64 
     | 
    
         
             
                ['{!', '"a"', 'true', 'null', '1'].each do |data|
         
     | 
| 
       65 
     | 
    
         
            -
                  expect 
     | 
| 
      
 65 
     | 
    
         
            +
                  expect{ process(data) }.to raise_error(Faraday::Error::ParsingError)
         
     | 
| 
       66 
66 
     | 
    
         
             
                end
         
     | 
| 
       67 
67 
     | 
    
         
             
              end
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
         @@ -76,37 +76,37 @@ describe FaradayMiddleware::ParseJson, :type => :response do 
     | 
|
| 
       76 
76 
     | 
    
         | 
| 
       77 
77 
     | 
    
         
             
                it "ignores completely incompatible type" do
         
     | 
| 
       78 
78 
     | 
    
         
             
                  response = process('{"a":1}', 'application/xml')
         
     | 
| 
       79 
     | 
    
         
            -
                  response.body. 
     | 
| 
      
 79 
     | 
    
         
            +
                  expect(response.body).to eq('{"a":1}')
         
     | 
| 
       80 
80 
     | 
    
         
             
                end
         
     | 
| 
       81 
81 
     | 
    
         | 
| 
       82 
82 
     | 
    
         
             
                it "ignores compatible type with bad data" do
         
     | 
| 
       83 
83 
     | 
    
         
             
                  response = process('var a = 1', 'text/javascript')
         
     | 
| 
       84 
     | 
    
         
            -
                  response.body. 
     | 
| 
       85 
     | 
    
         
            -
                  response['content-type']. 
     | 
| 
      
 84 
     | 
    
         
            +
                  expect(response.body).to eq('var a = 1')
         
     | 
| 
      
 85 
     | 
    
         
            +
                  expect(response['content-type']).to eq('text/javascript')
         
     | 
| 
       86 
86 
     | 
    
         
             
                end
         
     | 
| 
       87 
87 
     | 
    
         | 
| 
       88 
88 
     | 
    
         
             
                it "corrects compatible type and data" do
         
     | 
| 
       89 
89 
     | 
    
         
             
                  response = process('{"a":1}', 'text/javascript')
         
     | 
| 
       90 
     | 
    
         
            -
                  response.body. 
     | 
| 
       91 
     | 
    
         
            -
                  response['content-type']. 
     | 
| 
      
 90 
     | 
    
         
            +
                  expect(response.body).to be_a(Hash)
         
     | 
| 
      
 91 
     | 
    
         
            +
                  expect(response['content-type']).to eq('application/json')
         
     | 
| 
       92 
92 
     | 
    
         
             
                end
         
     | 
| 
       93 
93 
     | 
    
         | 
| 
       94 
94 
     | 
    
         
             
                it "corrects compatible type even when data starts with whitespace" do
         
     | 
| 
       95 
95 
     | 
    
         
             
                  response = process(%( \r\n\t{"a":1}), 'text/javascript')
         
     | 
| 
       96 
     | 
    
         
            -
                  response.body. 
     | 
| 
       97 
     | 
    
         
            -
                  response['content-type']. 
     | 
| 
      
 96 
     | 
    
         
            +
                  expect(response.body).to be_a(Hash)
         
     | 
| 
      
 97 
     | 
    
         
            +
                  expect(response['content-type']).to eq('application/json')
         
     | 
| 
       98 
98 
     | 
    
         
             
                end
         
     | 
| 
       99 
99 
     | 
    
         
             
              end
         
     | 
| 
       100 
100 
     | 
    
         | 
| 
       101 
101 
     | 
    
         
             
              context "HEAD responses" do
         
     | 
| 
       102 
     | 
    
         
            -
                it " 
     | 
| 
      
 102 
     | 
    
         
            +
                it "nullifies the body if it's only one space" do
         
     | 
| 
       103 
103 
     | 
    
         
             
                  response = process(' ')
         
     | 
| 
       104 
     | 
    
         
            -
                  response.body. 
     | 
| 
      
 104 
     | 
    
         
            +
                  expect(response.body).to be_nil
         
     | 
| 
       105 
105 
     | 
    
         
             
                end
         
     | 
| 
       106 
106 
     | 
    
         | 
| 
       107 
     | 
    
         
            -
                it " 
     | 
| 
      
 107 
     | 
    
         
            +
                it "nullifies the body if it's two spaces" do
         
     | 
| 
       108 
108 
     | 
    
         
             
                  response = process(' ')
         
     | 
| 
       109 
     | 
    
         
            -
                  response.body. 
     | 
| 
      
 109 
     | 
    
         
            +
                  expect(response.body).to be_nil
         
     | 
| 
       110 
110 
     | 
    
         
             
                end
         
     | 
| 
       111 
111 
     | 
    
         
             
              end
         
     | 
| 
       112 
112 
     | 
    
         
             
            end
         
     | 
    
        data/spec/parse_marshal_spec.rb
    CHANGED
    
    | 
         @@ -3,14 +3,14 @@ require 'faraday_middleware/response/parse_marshal' 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            describe FaradayMiddleware::ParseMarshal, :type => :response do
         
     | 
| 
       5 
5 
     | 
    
         
             
              it "restores a marshaled dump" do
         
     | 
| 
       6 
     | 
    
         
            -
                process(Marshal.dump(:a => 1)).body. 
     | 
| 
      
 6 
     | 
    
         
            +
                expect(process(Marshal.dump(:a => 1)).body).to be_eql(:a => 1)
         
     | 
| 
       7 
7 
     | 
    
         
             
              end
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
              it "nulifies blank response" do
         
     | 
| 
       10 
     | 
    
         
            -
                process('').body. 
     | 
| 
      
 10 
     | 
    
         
            +
                expect(process('').body).to be_nil
         
     | 
| 
       11 
11 
     | 
    
         
             
              end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
              it "chokes on invalid content" do
         
     | 
| 
       14 
     | 
    
         
            -
                expect 
     | 
| 
      
 14 
     | 
    
         
            +
                expect{ process('abc') }.to raise_error(Faraday::Error::ParsingError)
         
     | 
| 
       15 
15 
     | 
    
         
             
              end
         
     | 
| 
       16 
16 
     | 
    
         
             
            end
         
     | 
    
        data/spec/parse_xml_spec.rb
    CHANGED
    
    | 
         @@ -7,17 +7,17 @@ describe FaradayMiddleware::ParseXml, :type => :response do 
     | 
|
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
              context "no type matching" do
         
     | 
| 
       9 
9 
     | 
    
         
             
                it "doesn't change nil body" do
         
     | 
| 
       10 
     | 
    
         
            -
                  process(nil).body. 
     | 
| 
      
 10 
     | 
    
         
            +
                  expect(process(nil).body).to be_nil
         
     | 
| 
       11 
11 
     | 
    
         
             
                end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                it "turns empty body into empty hash" do
         
     | 
| 
       14 
     | 
    
         
            -
                  process('').body. 
     | 
| 
      
 14 
     | 
    
         
            +
                  expect(process('').body).to be_eql({})
         
     | 
| 
       15 
15 
     | 
    
         
             
                end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
                it "parses xml body" do
         
     | 
| 
       18 
18 
     | 
    
         
             
                  response = process(xml)
         
     | 
| 
       19 
     | 
    
         
            -
                  response.body. 
     | 
| 
       20 
     | 
    
         
            -
                  response.env[:raw_body]. 
     | 
| 
      
 19 
     | 
    
         
            +
                  expect(response.body).to eq(user)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  expect(response.env[:raw_body]).to be_nil
         
     | 
| 
       21 
21 
     | 
    
         
             
                end
         
     | 
| 
       22 
22 
     | 
    
         
             
              end
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
         @@ -26,13 +26,13 @@ describe FaradayMiddleware::ParseXml, :type => :response do 
     | 
|
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
                it "parses xml body" do
         
     | 
| 
       28 
28 
     | 
    
         
             
                  response = process(xml)
         
     | 
| 
       29 
     | 
    
         
            -
                  response.body. 
     | 
| 
       30 
     | 
    
         
            -
                  response.env[:raw_body]. 
     | 
| 
      
 29 
     | 
    
         
            +
                  expect(response.body).to eq(user)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  expect(response.env[:raw_body]).to eq(xml)
         
     | 
| 
       31 
31 
     | 
    
         
             
                end
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                it "can opt out of preserving raw" do
         
     | 
| 
       34 
34 
     | 
    
         
             
                  response = process(xml, nil, :preserve_raw => false)
         
     | 
| 
       35 
     | 
    
         
            -
                  response.env[:raw_body]. 
     | 
| 
      
 35 
     | 
    
         
            +
                  expect(response.env[:raw_body]).to be_nil
         
     | 
| 
       36 
36 
     | 
    
         
             
                end
         
     | 
| 
       37 
37 
     | 
    
         
             
              end
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
         @@ -41,12 +41,12 @@ describe FaradayMiddleware::ParseXml, :type => :response do 
     | 
|
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
                it "parses xml body of correct type" do
         
     | 
| 
       43 
43 
     | 
    
         
             
                  response = process(xml, 'application/xml')
         
     | 
| 
       44 
     | 
    
         
            -
                  response.body. 
     | 
| 
      
 44 
     | 
    
         
            +
                  expect(response.body).to eq(user)
         
     | 
| 
       45 
45 
     | 
    
         
             
                end
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
                it "ignores xml body of incorrect type" do
         
     | 
| 
       48 
48 
     | 
    
         
             
                  response = process(xml, 'text/html')
         
     | 
| 
       49 
     | 
    
         
            -
                  response.body. 
     | 
| 
      
 49 
     | 
    
         
            +
                  expect(response.body).to eq(xml)
         
     | 
| 
       50 
50 
     | 
    
         
             
                end
         
     | 
| 
       51 
51 
     | 
    
         
             
              end
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
         @@ -54,18 +54,18 @@ describe FaradayMiddleware::ParseXml, :type => :response do 
     | 
|
| 
       54 
54 
     | 
    
         
             
                let(:options) { {:content_type => %w[a/b c/d]} }
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
       56 
56 
     | 
    
         
             
                it "parses xml body of correct type" do
         
     | 
| 
       57 
     | 
    
         
            -
                  process(xml, 'a/b').body. 
     | 
| 
       58 
     | 
    
         
            -
                  process(xml, 'c/d').body. 
     | 
| 
      
 57 
     | 
    
         
            +
                  expect(process(xml, 'a/b').body).to be_a(Hash)
         
     | 
| 
      
 58 
     | 
    
         
            +
                  expect(process(xml, 'c/d').body).to be_a(Hash)
         
     | 
| 
       59 
59 
     | 
    
         
             
                end
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
61 
     | 
    
         
             
                it "ignores xml body of incorrect type" do
         
     | 
| 
       62 
     | 
    
         
            -
                  process(xml, 'a/d').body. 
     | 
| 
      
 62 
     | 
    
         
            +
                  expect(process(xml, 'a/d').body).not_to be_a(Hash)
         
     | 
| 
       63 
63 
     | 
    
         
             
                end
         
     | 
| 
       64 
64 
     | 
    
         
             
              end
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
66 
     | 
    
         
             
              it "chokes on invalid xml" do
         
     | 
| 
       67 
67 
     | 
    
         
             
                ['{!', '"a"', 'true', 'null', '1'].each do |data|
         
     | 
| 
       68 
     | 
    
         
            -
                  expect 
     | 
| 
      
 68 
     | 
    
         
            +
                  expect{ process(data) }.to raise_error(Faraday::Error::ParsingError)
         
     | 
| 
       69 
69 
     | 
    
         
             
                end
         
     | 
| 
       70 
70 
     | 
    
         
             
              end
         
     | 
| 
       71 
71 
     | 
    
         
             
            end
         
     | 
    
        data/spec/parse_yaml_spec.rb
    CHANGED
    
    | 
         @@ -4,17 +4,17 @@ require 'faraday_middleware/response/parse_yaml' 
     | 
|
| 
       4 
4 
     | 
    
         
             
            describe FaradayMiddleware::ParseYaml, :type => :response do
         
     | 
| 
       5 
5 
     | 
    
         
             
              context "no type matching" do
         
     | 
| 
       6 
6 
     | 
    
         
             
                it "doesn't change nil body" do
         
     | 
| 
       7 
     | 
    
         
            -
                  process(nil).body. 
     | 
| 
      
 7 
     | 
    
         
            +
                  expect(process(nil).body).to be_nil
         
     | 
| 
       8 
8 
     | 
    
         
             
                end
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                it "returns false for empty body" do
         
     | 
| 
       11 
     | 
    
         
            -
                  process('').body. 
     | 
| 
      
 11 
     | 
    
         
            +
                  expect(process('').body).to be_false
         
     | 
| 
       12 
12 
     | 
    
         
             
                end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                it "parses yaml body" do
         
     | 
| 
       15 
15 
     | 
    
         
             
                  response = process('a: 1')
         
     | 
| 
       16 
     | 
    
         
            -
                  response.body. 
     | 
| 
       17 
     | 
    
         
            -
                  response.env[:raw_body]. 
     | 
| 
      
 16 
     | 
    
         
            +
                  expect(response.body).to eq('a' => 1)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  expect(response.env[:raw_body]).to be_nil
         
     | 
| 
       18 
18 
     | 
    
         
             
                end
         
     | 
| 
       19 
19 
     | 
    
         
             
              end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
         @@ -23,13 +23,13 @@ describe FaradayMiddleware::ParseYaml, :type => :response do 
     | 
|
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                it "parses yaml body" do
         
     | 
| 
       25 
25 
     | 
    
         
             
                  response = process('a: 1')
         
     | 
| 
       26 
     | 
    
         
            -
                  response.body. 
     | 
| 
       27 
     | 
    
         
            -
                  response.env[:raw_body]. 
     | 
| 
      
 26 
     | 
    
         
            +
                  expect(response.body).to eq('a' => 1)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  expect(response.env[:raw_body]).to eq('a: 1')
         
     | 
| 
       28 
28 
     | 
    
         
             
                end
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                it "can opt out of preserving raw" do
         
     | 
| 
       31 
31 
     | 
    
         
             
                  response = process('a: 1', nil, :preserve_raw => false)
         
     | 
| 
       32 
     | 
    
         
            -
                  response.env[:raw_body]. 
     | 
| 
      
 32 
     | 
    
         
            +
                  expect(response.env[:raw_body]).to be_nil
         
     | 
| 
       33 
33 
     | 
    
         
             
                end
         
     | 
| 
       34 
34 
     | 
    
         
             
              end
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
         @@ -38,16 +38,16 @@ describe FaradayMiddleware::ParseYaml, :type => :response do 
     | 
|
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
                it "parses json body of correct type" do
         
     | 
| 
       40 
40 
     | 
    
         
             
                  response = process('a: 1', 'application/x-yaml')
         
     | 
| 
       41 
     | 
    
         
            -
                  response.body. 
     | 
| 
      
 41 
     | 
    
         
            +
                  expect(response.body).to eq('a' => 1)
         
     | 
| 
       42 
42 
     | 
    
         
             
                end
         
     | 
| 
       43 
43 
     | 
    
         | 
| 
       44 
44 
     | 
    
         
             
                it "ignores json body of incorrect type" do
         
     | 
| 
       45 
45 
     | 
    
         
             
                  response = process('a: 1', 'text/yaml-xml')
         
     | 
| 
       46 
     | 
    
         
            -
                  response.body. 
     | 
| 
      
 46 
     | 
    
         
            +
                  expect(response.body).to eq('a: 1')
         
     | 
| 
       47 
47 
     | 
    
         
             
                end
         
     | 
| 
       48 
48 
     | 
    
         
             
              end
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
50 
     | 
    
         
             
              it "chokes on invalid yaml" do
         
     | 
| 
       51 
     | 
    
         
            -
                expect 
     | 
| 
      
 51 
     | 
    
         
            +
                expect{ process('{!') }.to raise_error(Faraday::Error::ParsingError)
         
     | 
| 
       52 
52 
     | 
    
         
             
              end
         
     | 
| 
       53 
53 
     | 
    
         
             
            end
         
     | 
    
        data/spec/rashify_spec.rb
    CHANGED
    
    | 
         @@ -3,52 +3,52 @@ require 'faraday_middleware/response/rashify' 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            describe FaradayMiddleware::Rashify do
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
              context  
     | 
| 
      
 6 
     | 
    
         
            +
              context "when used" do
         
     | 
| 
       7 
7 
     | 
    
         
             
                let(:rashify) { described_class.new }
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
                it  
     | 
| 
      
 9 
     | 
    
         
            +
                it "creates a Hashie::Rash from the body" do
         
     | 
| 
       10 
10 
     | 
    
         
             
                  env = { :body => { "name" => "Erik Michaels-Ober", "username" => "sferik" } }
         
     | 
| 
       11 
11 
     | 
    
         
             
                  me  = rashify.on_complete(env)
         
     | 
| 
       12 
     | 
    
         
            -
                  me.class. 
     | 
| 
      
 12 
     | 
    
         
            +
                  expect(me.class).to eq(Hashie::Rash)
         
     | 
| 
       13 
13 
     | 
    
         
             
                end
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
                it  
     | 
| 
      
 15 
     | 
    
         
            +
                it "handles strings" do
         
     | 
| 
       16 
16 
     | 
    
         
             
                  env = { :body => "Most amazing string EVER" }
         
     | 
| 
       17 
17 
     | 
    
         
             
                  me  = rashify.on_complete(env)
         
     | 
| 
       18 
     | 
    
         
            -
                  me. 
     | 
| 
      
 18 
     | 
    
         
            +
                  expect(me).to eq("Most amazing string EVER")
         
     | 
| 
       19 
19 
     | 
    
         
             
                end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
                it  
     | 
| 
      
 21 
     | 
    
         
            +
                it "handles hashes and decamelcase the keys" do
         
     | 
| 
       22 
22 
     | 
    
         
             
                  env = { :body => { "name" => "Erik Michaels-Ober", "userName" => "sferik" } }
         
     | 
| 
       23 
23 
     | 
    
         
             
                  me  = rashify.on_complete(env)
         
     | 
| 
       24 
     | 
    
         
            -
                  me.name. 
     | 
| 
       25 
     | 
    
         
            -
                  me.user_name. 
     | 
| 
      
 24 
     | 
    
         
            +
                  expect(me.name).to eq('Erik Michaels-Ober')
         
     | 
| 
      
 25 
     | 
    
         
            +
                  expect(me.user_name).to eq('sferik')
         
     | 
| 
       26 
26 
     | 
    
         
             
                end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                it  
     | 
| 
      
 28 
     | 
    
         
            +
                it "handles arrays" do
         
     | 
| 
       29 
29 
     | 
    
         
             
                  env = { :body => [123, 456] }
         
     | 
| 
       30 
30 
     | 
    
         
             
                  values = rashify.on_complete(env)
         
     | 
| 
       31 
     | 
    
         
            -
                  values.first. 
     | 
| 
       32 
     | 
    
         
            -
                  values.last. 
     | 
| 
      
 31 
     | 
    
         
            +
                  expect(values.first).to eq(123)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  expect(values.last).to eq(456)
         
     | 
| 
       33 
33 
     | 
    
         
             
                end
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
                it  
     | 
| 
      
 35 
     | 
    
         
            +
                it "handles arrays of hashes" do
         
     | 
| 
       36 
36 
     | 
    
         
             
                  env = { :body => [{ "username" => "sferik" }, { "username" => "pengwynn" }] }
         
     | 
| 
       37 
37 
     | 
    
         
             
                  us  = rashify.on_complete(env)
         
     | 
| 
       38 
     | 
    
         
            -
                  us.first.username. 
     | 
| 
       39 
     | 
    
         
            -
                  us.last.username. 
     | 
| 
      
 38 
     | 
    
         
            +
                  expect(us.first.username).to eq('sferik')
         
     | 
| 
      
 39 
     | 
    
         
            +
                  expect(us.last.username).to eq('pengwynn')
         
     | 
| 
       40 
40 
     | 
    
         
             
                end
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
     | 
    
         
            -
                it  
     | 
| 
      
 42 
     | 
    
         
            +
                it "handles mixed arrays" do
         
     | 
| 
       43 
43 
     | 
    
         
             
                  env = { :body => [123, { "username" => "sferik" }, 456] }
         
     | 
| 
       44 
44 
     | 
    
         
             
                  values = rashify.on_complete(env)
         
     | 
| 
       45 
     | 
    
         
            -
                  values.first. 
     | 
| 
       46 
     | 
    
         
            -
                  values.last. 
     | 
| 
       47 
     | 
    
         
            -
                  values[1].username. 
     | 
| 
      
 45 
     | 
    
         
            +
                  expect(values.first).to eq(123)
         
     | 
| 
      
 46 
     | 
    
         
            +
                  expect(values.last).to eq(456)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  expect(values[1].username).to eq('sferik')
         
     | 
| 
       48 
48 
     | 
    
         
             
                end
         
     | 
| 
       49 
49 
     | 
    
         
             
              end
         
     | 
| 
       50 
50 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
              context  
     | 
| 
      
 51 
     | 
    
         
            +
              context "integration test" do
         
     | 
| 
       52 
52 
     | 
    
         
             
                let(:stubs) { Faraday::Adapter::Test::Stubs.new }
         
     | 
| 
       53 
53 
     | 
    
         
             
                let(:connection) do
         
     | 
| 
       54 
54 
     | 
    
         
             
                  Faraday::Connection.new do |builder|
         
     | 
| 
         @@ -59,14 +59,14 @@ describe FaradayMiddleware::Rashify do 
     | 
|
| 
       59 
59 
     | 
    
         | 
| 
       60 
60 
     | 
    
         
             
                # although it is not good practice to pass a hash as the body, if we add ParseJson
         
     | 
| 
       61 
61 
     | 
    
         
             
                # to the middleware stack we end up testing two middlewares instead of one
         
     | 
| 
       62 
     | 
    
         
            -
                it  
     | 
| 
      
 62 
     | 
    
         
            +
                it "creates a Hash from the body" do
         
     | 
| 
       63 
63 
     | 
    
         
             
                  stubs.get('/hash') {
         
     | 
| 
       64 
64 
     | 
    
         
             
                    data = { 'name' => 'Erik Michaels-Ober', 'username' => 'sferik' }
         
     | 
| 
       65 
65 
     | 
    
         
             
                    [200, {'content-type' => 'application/json; charset=utf-8'}, data]
         
     | 
| 
       66 
66 
     | 
    
         
             
                  }
         
     | 
| 
       67 
67 
     | 
    
         
             
                  me = connection.get('/hash').body
         
     | 
| 
       68 
     | 
    
         
            -
                  me.name. 
     | 
| 
       69 
     | 
    
         
            -
                  me.username. 
     | 
| 
      
 68 
     | 
    
         
            +
                  expect(me.name).to eq('Erik Michaels-Ober')
         
     | 
| 
      
 69 
     | 
    
         
            +
                  expect(me.username).to eq('sferik')
         
     | 
| 
       70 
70 
     | 
    
         
             
                end
         
     | 
| 
       71 
71 
     | 
    
         
             
              end
         
     | 
| 
       72 
72 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: faraday_middleware
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.9.0
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -10,7 +10,7 @@ authors: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date: 2012- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2012-10-26 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: faraday
         
     | 
| 
         @@ -170,6 +170,7 @@ files: 
     | 
|
| 
       170 
170 
     | 
    
         
             
            - lib/faraday_middleware/instrumentation.rb
         
     | 
| 
       171 
171 
     | 
    
         
             
            - lib/faraday_middleware/rack_compatible.rb
         
     | 
| 
       172 
172 
     | 
    
         
             
            - lib/faraday_middleware/request/encode_json.rb
         
     | 
| 
      
 173 
     | 
    
         
            +
            - lib/faraday_middleware/request/method_override.rb
         
     | 
| 
       173 
174 
     | 
    
         
             
            - lib/faraday_middleware/request/oauth.rb
         
     | 
| 
       174 
175 
     | 
    
         
             
            - lib/faraday_middleware/request/oauth2.rb
         
     | 
| 
       175 
176 
     | 
    
         
             
            - lib/faraday_middleware/response/caching.rb
         
     | 
| 
         @@ -190,6 +191,7 @@ files: 
     | 
|
| 
       190 
191 
     | 
    
         
             
            - spec/follow_redirects_spec.rb
         
     | 
| 
       191 
192 
     | 
    
         
             
            - spec/helper.rb
         
     | 
| 
       192 
193 
     | 
    
         
             
            - spec/mashify_spec.rb
         
     | 
| 
      
 194 
     | 
    
         
            +
            - spec/method_override_spec.rb
         
     | 
| 
       193 
195 
     | 
    
         
             
            - spec/oauth2_spec.rb
         
     | 
| 
       194 
196 
     | 
    
         
             
            - spec/oauth_spec.rb
         
     | 
| 
       195 
197 
     | 
    
         
             
            - spec/parse_dates_spec.rb
         
     | 
| 
         @@ -229,6 +231,7 @@ test_files: 
     | 
|
| 
       229 
231 
     | 
    
         
             
            - spec/follow_redirects_spec.rb
         
     | 
| 
       230 
232 
     | 
    
         
             
            - spec/helper.rb
         
     | 
| 
       231 
233 
     | 
    
         
             
            - spec/mashify_spec.rb
         
     | 
| 
      
 234 
     | 
    
         
            +
            - spec/method_override_spec.rb
         
     | 
| 
       232 
235 
     | 
    
         
             
            - spec/oauth2_spec.rb
         
     | 
| 
       233 
236 
     | 
    
         
             
            - spec/oauth_spec.rb
         
     | 
| 
       234 
237 
     | 
    
         
             
            - spec/parse_dates_spec.rb
         
     |