lhc 7.1.0 → 7.2.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.
- checksums.yaml +4 -4
- data/README.md +33 -0
- data/lib/lhc/request.rb +6 -1
- data/lib/lhc/version.rb +1 -1
- data/spec/request/encoding_spec.rb +14 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7dd0e9ffa97a410938b008214a1169dd92baad1a
|
4
|
+
data.tar.gz: 0c3e70e1aed73f71ab15cc8956f268c95ee4961e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7ef93685b6321f92e3d211a15503b34f67acbaa6395ccf866f13b0ad1f03f14b42008a70e350950c124738ecd94e553f9aa0149026cac84b760287a18651be5
|
7
|
+
data.tar.gz: e348b6290e471eaec282c9cb883d129284029ea8644b4899fb5288f40c4c96ce24d03fb4c97ba30c1ded064df56945b2b77e96b212c2e24727b29ff606e395c4
|
data/README.md
CHANGED
@@ -98,6 +98,39 @@ Also consider setting the http header for content-type.
|
|
98
98
|
)
|
99
99
|
```
|
100
100
|
|
101
|
+
## Parameter
|
102
|
+
|
103
|
+
When using LHC, try to pass params via `params` option. It's not recommended to build a url and attach the parameter yourself:
|
104
|
+
|
105
|
+
DO
|
106
|
+
```ruby
|
107
|
+
LHC.get('http://local.ch', params: { q: 'Restaurant' })
|
108
|
+
```
|
109
|
+
|
110
|
+
DON'T
|
111
|
+
```ruby
|
112
|
+
LHC.get('http://local.ch?q=Restaurant')
|
113
|
+
```
|
114
|
+
|
115
|
+
## Encoding
|
116
|
+
|
117
|
+
LHC, by default, encodes urls:
|
118
|
+
|
119
|
+
```ruby
|
120
|
+
LHC.get('http://local.ch?q=some space')
|
121
|
+
# http://local.ch?q=some%20space
|
122
|
+
|
123
|
+
LHC.get('http://local.ch', params: { q: 'some space' })
|
124
|
+
# http://local.ch?q=some%20space
|
125
|
+
```
|
126
|
+
|
127
|
+
which can be disabled:
|
128
|
+
|
129
|
+
```ruby
|
130
|
+
LHC.get('http://local.ch?q=some space', url_encoding: false)
|
131
|
+
# http://local.ch?q=some space
|
132
|
+
```
|
133
|
+
|
101
134
|
## Configuration
|
102
135
|
|
103
136
|
You can configure global endpoints, placeholders and interceptors.
|
data/lib/lhc/request.rb
CHANGED
@@ -52,8 +52,13 @@ class LHC::Request
|
|
52
52
|
|
53
53
|
attr_accessor :iprocessor
|
54
54
|
|
55
|
+
def optionally_encoded_url(options)
|
56
|
+
return options[:url] unless options.fetch(:url_encoding, true)
|
57
|
+
encode_url(options[:url])
|
58
|
+
end
|
59
|
+
|
55
60
|
def create_request
|
56
|
-
request = Typhoeus::Request.new(
|
61
|
+
request = Typhoeus::Request.new(optionally_encoded_url(options), typhoeusize(options))
|
57
62
|
request.on_headers do
|
58
63
|
iprocessor.intercept(:after_request, self)
|
59
64
|
iprocessor.intercept(:before_response, self)
|
data/lib/lhc/version.rb
CHANGED
@@ -18,4 +18,18 @@ describe LHC::Request do
|
|
18
18
|
LHC.get(url, params: { name: 'My name is rabbit' })
|
19
19
|
end
|
20
20
|
end
|
21
|
+
|
22
|
+
context 'skip encoding' do
|
23
|
+
let(:url) { 'http://local.ch/api/search?names[]=seba&names[]=david' }
|
24
|
+
|
25
|
+
it 'does not encode if encoding is skipped' do
|
26
|
+
stub_request(:get, 'http://local.ch/api/search?names%5B%5D%3Dseba%26names%5B%5D%3Ddavid')
|
27
|
+
LHC.get('http://local.ch/api/search?names%5B%5D%3Dseba%26names%5B%5D%3Ddavid', url_encoding: false)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'does double encoding, if you really want to' do
|
31
|
+
stub_request(:get, 'http://local.ch/api/search?names%255B%255D%253Dseba%2526names%255B%255D%253Ddavid')
|
32
|
+
LHC.get('http://local.ch/api/search?names%5B%5D%3Dseba%26names%5B%5D%3Ddavid')
|
33
|
+
end
|
34
|
+
end
|
21
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lhc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- https://github.com/local-ch/lhc/contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|