faraday-cookie_jar 0.0.2 → 0.0.7
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 +7 -0
- data/CHANGELOG.md +25 -2
- data/README.md +2 -1
- data/Rakefile +4 -0
- data/faraday-cookie_jar.gemspec +3 -3
- data/lib/faraday/cookie_jar.rb +19 -8
- data/lib/faraday/cookie_jar/version.rb +1 -1
- data/spec/faraday-cookie_jar/cookie_jar_spec.rb +29 -4
- data/spec/support/fake_app.rb +4 -0
- metadata +29 -46
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6518c4004a5c37f4781930223b709a9331c28f09d78926a99caf6d6d2d7a7231
|
4
|
+
data.tar.gz: e07f34c4acfd740cad6668390a22b5a02fcae9ce70b15d7498b66a11ab1425ea
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6397a74a2f902fbcaaffa2637aa14950f228d9154a6fc0fcdcdd6a843f39b285dec03cb2ab479d348b92ffe50c36bf101261725c0ed196f22425aa6eeec336f4
|
7
|
+
data.tar.gz: 5f81657bcc13538f3686041e90f77571a38f66a4d8893f630422bbd3d0c90c838673277ccd575bb371f1e0c5b0a4f14e82ca4ca0afdb448492241720121a5377
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,31 @@
|
|
1
|
+
## 0.0.7 Tue Sep 1 20:25:00 PDT 2020
|
2
|
+
|
3
|
+
- Avoid loading Faraday by assuming Faraday registry API (chesterbr)
|
4
|
+
- To support change above, require Faraday 0.8 as a minimum (chesterbr)
|
5
|
+
|
6
|
+
## 0.0.6 Tue Jan 21 16:34:35 PST 2014
|
7
|
+
|
8
|
+
- Support Faraday 0.9 registry API (cameron-martin)
|
9
|
+
- Support specifying CookieJar in configuration (cameron-martin)
|
10
|
+
|
11
|
+
## 0.0.5 Mon Jan 20 21:53:13 PST 2014
|
12
|
+
|
13
|
+
- Lock faraday dependency to < 0.9.0 for now
|
14
|
+
- Ability to add extra cookies in addition to the ones in Cookie Jar (nanjingboy)
|
15
|
+
|
16
|
+
## 0.0.4 Mon Aug 12 23:11:46 PDT 2013
|
17
|
+
|
18
|
+
- Fix a crash when there's no valid response header #3
|
19
|
+
|
20
|
+
## 0.0.3 Sun Apr 21 08:14:32 CST 2013
|
21
|
+
|
22
|
+
- Switch to http-cookie gem (knu) #2
|
23
|
+
|
1
24
|
## 0.0.2
|
2
25
|
|
3
26
|
- Repackaging
|
4
|
-
- Typo in README
|
27
|
+
- Typo in README (tmaesaka) #1
|
5
28
|
|
6
29
|
## 0.0.1
|
7
30
|
|
8
|
-
- Initial release
|
31
|
+
- Initial release
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@ Faraday middleware to manage client-side cookies
|
|
4
4
|
|
5
5
|
## Description
|
6
6
|
|
7
|
-
This gem is a piece of Faraday middleware that adds client-side Cookies management, using [
|
7
|
+
This gem is a piece of Faraday middleware that adds client-side Cookies management, using [http-cookie gem](https://github.com/sparklemotion/http-cookie).
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
@@ -27,6 +27,7 @@ require 'faraday-cookie_jar'
|
|
27
27
|
|
28
28
|
conn = Faraday.new(:url => "http://example.com") do |builder|
|
29
29
|
builder.use :cookie_jar
|
30
|
+
builder.adapter Faraday.default_adapter
|
30
31
|
end
|
31
32
|
|
32
33
|
conn.get "/foo" # gets cookie
|
data/Rakefile
CHANGED
data/faraday-cookie_jar.gemspec
CHANGED
@@ -18,12 +18,12 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "faraday", ">= 0.
|
22
|
-
spec.add_dependency "
|
21
|
+
spec.add_dependency "faraday", ">= 0.8.0"
|
22
|
+
spec.add_dependency "http-cookie", "~> 1.0.0"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
25
25
|
spec.add_development_dependency "rake"
|
26
|
-
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "rspec", "~> 3.2"
|
27
27
|
spec.add_development_dependency "sinatra"
|
28
28
|
spec.add_development_dependency "sham_rack"
|
29
29
|
end
|
data/lib/faraday/cookie_jar.rb
CHANGED
@@ -1,26 +1,37 @@
|
|
1
1
|
require "faraday"
|
2
|
-
require "
|
2
|
+
require "http/cookie_jar"
|
3
3
|
|
4
4
|
module Faraday
|
5
5
|
class CookieJar < Faraday::Middleware
|
6
6
|
def initialize(app, options = {})
|
7
7
|
super(app)
|
8
|
-
@jar = ::CookieJar
|
8
|
+
@jar = options[:jar] || HTTP::CookieJar.new
|
9
9
|
end
|
10
10
|
|
11
11
|
def call(env)
|
12
|
-
|
13
|
-
unless
|
14
|
-
|
12
|
+
cookies = @jar.cookies(env[:url])
|
13
|
+
unless cookies.empty?
|
14
|
+
cookie_value = HTTP::Cookie.cookie_value(cookies)
|
15
|
+
if env[:request_headers]["Cookie"]
|
16
|
+
unless env[:request_headers]["Cookie"] == cookie_value
|
17
|
+
env[:request_headers]["Cookie"] = cookie_value + ';' + env[:request_headers]["Cookie"]
|
18
|
+
end
|
19
|
+
else
|
20
|
+
env[:request_headers]["Cookie"] = cookie_value
|
21
|
+
end
|
15
22
|
end
|
16
23
|
|
17
24
|
@app.call(env).on_complete do |res|
|
18
|
-
|
25
|
+
if res[:response_headers]
|
26
|
+
if set_cookie = res[:response_headers]["Set-Cookie"]
|
27
|
+
@jar.parse(set_cookie, env[:url])
|
28
|
+
end
|
29
|
+
end
|
19
30
|
end
|
20
31
|
end
|
21
32
|
end
|
22
33
|
end
|
23
34
|
|
24
|
-
if Faraday.respond_to? :register_middleware
|
25
|
-
Faraday.register_middleware :cookie_jar =>
|
35
|
+
if Faraday::Middleware.respond_to? :register_middleware
|
36
|
+
Faraday::Middleware.register_middleware :cookie_jar => Faraday::CookieJar
|
26
37
|
end
|
@@ -2,6 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Faraday::CookieJar do
|
4
4
|
let(:conn) { Faraday.new(:url => 'http://faraday.example.com') }
|
5
|
+
let(:cookie_jar) { HTTP::CookieJar.new }
|
5
6
|
|
6
7
|
before do
|
7
8
|
conn.use :cookie_jar
|
@@ -10,19 +11,43 @@ describe Faraday::CookieJar do
|
|
10
11
|
|
11
12
|
it 'get default cookie' do
|
12
13
|
conn.get('/default')
|
13
|
-
conn.get('/dump').body.
|
14
|
+
expect(conn.get('/dump').body).to eq('foo=bar')
|
14
15
|
end
|
15
16
|
|
16
17
|
it 'does not send cookies to wrong path' do
|
17
18
|
conn.get('/path')
|
18
|
-
conn.get('/dump').body.
|
19
|
+
expect(conn.get('/dump').body).to_not eq('foo=bar')
|
19
20
|
end
|
20
21
|
|
21
22
|
it 'expires cookie' do
|
22
23
|
conn.get('/expires')
|
23
|
-
conn.get('/dump').body.
|
24
|
+
expect(conn.get('/dump').body).to eq('foo=bar')
|
24
25
|
sleep 2
|
25
|
-
conn.get('/dump').body.
|
26
|
+
expect(conn.get('/dump').body).to_not eq('foo=bar')
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'fills an injected cookie jar' do
|
30
|
+
|
31
|
+
conn_with_jar = Faraday.new(:url => 'http://faraday.example.com') do |conn|
|
32
|
+
conn.use :cookie_jar, jar: cookie_jar
|
33
|
+
conn.adapter :net_http # for sham_rock
|
34
|
+
end
|
35
|
+
|
36
|
+
conn_with_jar.get('/default')
|
37
|
+
|
38
|
+
expect(cookie_jar.empty?).to be false
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'multiple cookies' do
|
43
|
+
conn.get('/default')
|
44
|
+
|
45
|
+
response = conn.send('get') do |request|
|
46
|
+
request.url '/multiple_cookies'
|
47
|
+
request.headers.merge!({:Cookie => 'language=english'})
|
48
|
+
end
|
49
|
+
|
50
|
+
expect(response.body).to eq('foo=bar;language=english')
|
26
51
|
end
|
27
52
|
end
|
28
53
|
|
data/spec/support/fake_app.rb
CHANGED
metadata
CHANGED
@@ -1,126 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday-cookie_jar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.7
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Tatsuhiko Miyagawa
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2020-09-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: faraday
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
19
|
+
version: 0.8.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
26
|
+
version: 0.8.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
28
|
+
name: http-cookie
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
33
|
+
version: 1.0.0
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
40
|
+
version: 1.0.0
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: bundler
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- - ~>
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '1.3'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- - ~>
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '1.3'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rspec
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - "~>"
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
75
|
+
version: '3.2'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - "~>"
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version: '
|
82
|
+
version: '3.2'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: sinatra
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ">="
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: sham_rack
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
description: Cookie jar middleware for Faraday
|
@@ -130,7 +115,7 @@ executables: []
|
|
130
115
|
extensions: []
|
131
116
|
extra_rdoc_files: []
|
132
117
|
files:
|
133
|
-
- .gitignore
|
118
|
+
- ".gitignore"
|
134
119
|
- CHANGELOG.md
|
135
120
|
- Gemfile
|
136
121
|
- LICENSE.txt
|
@@ -146,27 +131,25 @@ files:
|
|
146
131
|
homepage: https://github.com/miyagawa/faraday-cookie_jar
|
147
132
|
licenses:
|
148
133
|
- MIT
|
134
|
+
metadata: {}
|
149
135
|
post_install_message:
|
150
136
|
rdoc_options: []
|
151
137
|
require_paths:
|
152
138
|
- lib
|
153
139
|
required_ruby_version: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
140
|
requirements:
|
156
|
-
- -
|
141
|
+
- - ">="
|
157
142
|
- !ruby/object:Gem::Version
|
158
143
|
version: '0'
|
159
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
|
-
none: false
|
161
145
|
requirements:
|
162
|
-
- -
|
146
|
+
- - ">="
|
163
147
|
- !ruby/object:Gem::Version
|
164
148
|
version: '0'
|
165
149
|
requirements: []
|
166
|
-
|
167
|
-
rubygems_version: 1.8.23
|
150
|
+
rubygems_version: 3.0.3
|
168
151
|
signing_key:
|
169
|
-
specification_version:
|
152
|
+
specification_version: 4
|
170
153
|
summary: Manages client-side cookie jar for Faraday HTTP client
|
171
154
|
test_files:
|
172
155
|
- spec/faraday-cookie_jar/cookie_jar_spec.rb
|