purple-client 0.1.5.2 → 0.1.6

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: 75b0112e7f0757f456ca2580565433282b7ed33ac1e5c0e1a5cde5dadcb25eb7
4
- data.tar.gz: e5738ee82c58c3ac8e5ae184f387045efbad92cecaf9102718f567516c75ddb9
3
+ metadata.gz: 3d7c34549894887ef34dc72c7f18f33f3f5304a0a569c031fccb835d09e68bf7
4
+ data.tar.gz: 40590441cf6fd76570c27f1afe5fbce885d35d2384e34b5d6e798580fbddeacc
5
5
  SHA512:
6
- metadata.gz: 8b343906b6609c8a0bc38de841353f97a5f1a4dba5cf6cc5e89eee1dfcc7f7a6d4b693a9d3cad02cfdccdf6393d8857fef5a880ff5afbbca91707c5bac57c385
7
- data.tar.gz: a3d193575c7eed275005303ef90a0fa6ac4512a04b2cbaf87d71310c1a877e4fafbfe647b8281edc1c184ccf164aca8db42648e7b110cba2c5852e51d028b4b8
6
+ metadata.gz: e85083d17e33a74e9ecbc1ea1c7bee1977fe15ef942baafb6f9d751be44d107b5eede568d41868b6a571433dbe061f96bce9c6f9c9788ccf6589b24e456a9bd8
7
+ data.tar.gz: 83b324460273f9edc99d8e95e0c914bc9944ce887938fe10ec404a6e8efe111222b93d48cfbee871017fbc5e082bc75a05026c4d21cce45123ca27f17ac5039a
data/README.md CHANGED
@@ -78,6 +78,27 @@ end
78
78
  ProfileClient.profile
79
79
  ```
80
80
 
81
+ ### Using custom headers
82
+
83
+ ```ruby
84
+ class CustomHeadersClient < Purple::Client
85
+ domain 'https://api.example.com'
86
+ authorization :custom_headers,
87
+ 'X-API-KEY' => 'your-api-key',
88
+ 'X-Secret' => 'your-api-secret'
89
+
90
+ path :widgets do
91
+ response :ok do
92
+ body :default
93
+ end
94
+ root_method :widgets
95
+ end
96
+ end
97
+
98
+ # Custom headers will be sent automatically
99
+ CustomHeadersClient.widgets
100
+ ```
101
+
81
102
  ### Nested paths
82
103
 
83
104
  ```ruby
@@ -0,0 +1,2 @@
1
+ class Purple::Boolean
2
+ end
data/lib/purple/client.rb CHANGED
@@ -5,6 +5,7 @@ require 'purple/request'
5
5
  require 'purple/requests/authorization'
6
6
  require 'purple/response'
7
7
  require 'purple/responses/body'
8
+ require 'purple/boolean'
8
9
  require_relative "version"
9
10
 
10
11
  module Purple
@@ -98,6 +98,8 @@ class Purple::Responses::Body
98
98
  "Missing field '#{key}' in response body. Body: #{object}"
99
99
  end
100
100
 
101
+ return if expected_type == Purple::Boolean && (object[key] == true || object[key] == false)
102
+
101
103
  return if object[key].is_a?(expected_type)
102
104
 
103
105
  raise BodyStructureMismatchError.new(key, expected_type, object[key], object)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Purple
4
- VERSION = "0.1.5.2"
4
+ VERSION = "0.1.6"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: purple-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5.2
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Kalashnikov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-07-07 00:00:00.000000000 Z
11
+ date: 2025-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-initializer
@@ -38,6 +38,7 @@ files:
38
38
  - LICENSE.txt
39
39
  - README.md
40
40
  - Rakefile
41
+ - lib/purple/boolean.rb
41
42
  - lib/purple/client.rb
42
43
  - lib/purple/path.rb
43
44
  - lib/purple/request.rb