lhc 11.0.2 → 11.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08a828482abe7ecd92b963be2f85a921d5d33c21386048c0de1dd5eddd7a0c5d'
4
- data.tar.gz: afbe59a64dbf4e6a772aa045c6717694fc45c99f08818eb3892cfc3df3d24607
3
+ metadata.gz: 0e87a43808e1303e4bc441b72031c3006d101d4f9193c207fa594cafab84a587
4
+ data.tar.gz: cb849adc725b31f9efed923aec3e40357362d87116603b8def485e2aca2bfe6b
5
5
  SHA512:
6
- metadata.gz: ca154508dfeab839682d6cc9babd7d9ac3fd194ff318f0132fd05399aea04dcd155c9cf77b679ae91be6fef0971b2c13de0c14673b7f90beff77ca13d8bc2a42
7
- data.tar.gz: e24477b6e9cc94aa1faa1c3b4e366d59b466df46c9abb4a914255316cd4a9b5eef192f70157df5c50c38422b738b6b384f692180cd415b7bfd19398d87b91fa3
6
+ metadata.gz: 02c5069682e8764bb485254089c141751c93bf28ba414d68d4386a64bdbf5fbad3ccbe8362d61cab3725d1b14619790e822b6312e5fd1978099742dcb5e6dd06
7
+ data.tar.gz: 882ac80b97b12e89088f420f1faf13cbc90c4ed89a14ba078025a42dc01449a29aaf49214d6ba2f7ffca5d29968336a23b62aabb9e679dfd343f92d6f7aab1ed
@@ -5,6 +5,10 @@ module LHC
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  module ClassMethods
8
+ def form
9
+ LHC::Formats::Form
10
+ end
11
+
8
12
  def json
9
13
  LHC::Formats::JSON
10
14
  end
data/lib/lhc/formats.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LHC::Formats
4
+ autoload :Form, 'lhc/formats/form'
4
5
  autoload :JSON, 'lhc/formats/json'
5
6
  autoload :Multipart, 'lhc/formats/multipart'
6
7
  autoload :Plain, 'lhc/formats/plain'
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LHC::Formats
4
+ class Form < LHC::Format
5
+ include LHC::BasicMethodsConcern
6
+
7
+ def self.request(options)
8
+ options[:format] = new
9
+ super(options)
10
+ end
11
+
12
+ def format_options(options)
13
+ options[:headers] ||= {}
14
+ no_content_type_header!(options)
15
+ options[:headers]['Content-Type'] = 'application/x-www-form-urlencoded'
16
+ options
17
+ end
18
+
19
+ def as_json(input)
20
+ parse(input)
21
+ end
22
+
23
+ def as_open_struct(input)
24
+ parse(input)
25
+ end
26
+
27
+ def to_body(input)
28
+ input
29
+ end
30
+
31
+ def to_s
32
+ 'form'
33
+ end
34
+
35
+ def to_sym
36
+ to_s.to_sym
37
+ end
38
+
39
+ private
40
+
41
+ def parse(input)
42
+ input
43
+ end
44
+ end
45
+ end
data/lib/lhc/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LHC
4
- VERSION ||= '11.0.2'
4
+ VERSION ||= '11.1.0'
5
5
  end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ describe LHC do
6
+ include ActionDispatch::TestProcess
7
+
8
+ context 'form' do
9
+ it 'formats requests to be application/x-www-form-urlencoded' do
10
+ stub = stub_request(:post, 'http://local.ch/')
11
+ .with(body: 'client_id=1234&client_secret=4567&grant_type=client_credentials')
12
+ .with(headers: { 'Content-Type': 'application/x-www-form-urlencoded' })
13
+ .to_return(status: 200)
14
+
15
+ LHC.form.post(
16
+ 'http://local.ch',
17
+ body: {
18
+ client_id: '1234',
19
+ client_secret: '4567',
20
+ grant_type: 'client_credentials'
21
+ }
22
+ )
23
+
24
+ expect(stub).to have_been_requested
25
+ end
26
+ end
27
+ end
@@ -10,7 +10,7 @@ describe LHC do
10
10
  let(:body) { { size: 2231 }.to_json }
11
11
  let(:location) { 'http://local.ch/uploads/image.jpg' }
12
12
 
13
- it 'leaves plains requests unformatted' do
13
+ it 'formats requests to be multipart/form-data' do
14
14
  stub_request(:post, 'http://local.ch/') do |request|
15
15
  raise 'Content-Type header wrong' unless request.headers['Content-Type'] == 'multipart/form-data'
16
16
  raise 'Body wrongly formatted' unless request.body.match(/file=%23%3CActionDispatch%3A%3AHttp%3A%3AUploadedFile%3A.*%3E&type=Image/)
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: 11.0.2
4
+ version: 11.1.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: 2020-02-10 00:00:00.000000000 Z
11
+ date: 2020-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -230,6 +230,7 @@ files:
230
230
  - lib/lhc/errors/unknown_error.rb
231
231
  - lib/lhc/format.rb
232
232
  - lib/lhc/formats.rb
233
+ - lib/lhc/formats/form.rb
233
234
  - lib/lhc/formats/json.rb
234
235
  - lib/lhc/formats/multipart.rb
235
236
  - lib/lhc/formats/plain.rb
@@ -316,6 +317,7 @@ files:
316
317
  - spec/error/response_spec.rb
317
318
  - spec/error/timeout_spec.rb
318
319
  - spec/error/to_s_spec.rb
320
+ - spec/formats/form_spec.rb
319
321
  - spec/formats/json_spec.rb
320
322
  - spec/formats/multipart_spec.rb
321
323
  - spec/formats/plain_spec.rb
@@ -465,6 +467,7 @@ test_files:
465
467
  - spec/error/response_spec.rb
466
468
  - spec/error/timeout_spec.rb
467
469
  - spec/error/to_s_spec.rb
470
+ - spec/formats/form_spec.rb
468
471
  - spec/formats/json_spec.rb
469
472
  - spec/formats/multipart_spec.rb
470
473
  - spec/formats/plain_spec.rb