paymos 1.0.3 → 1.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: 07e95b959a8e3b81836c2ddb4ff8067f0b0a2fee81927b3b48180dedcc0f53da
4
- data.tar.gz: 7bea4f3f5dd1c46441de4c194d8f2d441c7836a08d5f0a5abb498005c6a0cbb6
3
+ metadata.gz: 146014f3dd6f5514e89e62bafd2baa48393f498b9317a9c5678d4b02ccdd0014
4
+ data.tar.gz: 423d88e83bb54e36a133bd4864968ba25ac0ae0b043232a32fdad9e11cdb9f23
5
5
  SHA512:
6
- metadata.gz: 6d159d202b620729fffa3abab9a517d284a741c07e387ad5b9c569b8879f9279e8517ebaadcf04458870fda36d7d8db1dcf535b1a65b5ece2637d69562315ba1
7
- data.tar.gz: 50881a6b3e4153de0501b4f3500d168748623712d13fb1425ba694c86688f867280594047986bb347fdc35495b6d83bf01c4f9e7476d20681c8768850d2b370a
6
+ metadata.gz: c3408ac6853ee8b64d34c4188d497732697be564fd115b122bcd3da16a2b68993a994accb130b933bb88234c23ffce70ddc87bdcb40070a7970e6acb9b12f317
7
+ data.tar.gz: ed6467afabeb68ad1b23690e2c52a8cd9e668c33cfb114e1587b8f87809bd6403365679231d61abd8e3334832e3fa261f3c4e8e2bc5015829c0bca10958d609f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.1.0] - 2026-07-21
4
+
5
+ - feat(docs): make the developer surface consumable by LLM agents
6
+
7
+ ## [1.0.4] - 2026-07-19
8
+
9
+ - fix: align SDK problem details semantics
10
+
3
11
  ## [1.0.3] - 2026-07-12
4
12
 
5
13
  - fix(ruby-sdk): make user agent assertion version aware
data/lib/paymos/errors.rb CHANGED
@@ -26,20 +26,15 @@ module Paymos
26
26
  end
27
27
 
28
28
  def code
29
- first = errors.first
30
- value = first.is_a?(Hash) ? first['code'] : problem&.fetch('code', nil)
31
- value.to_s
29
+ problem&.fetch('code', nil).to_s
32
30
  end
33
31
 
34
32
  def field
35
- first = errors.first
36
- first.is_a?(Hash) ? first['field'] : problem&.fetch('field', nil)
33
+ problem&.fetch('field', nil)
37
34
  end
38
35
 
39
36
  def detail
40
37
  value = problem&.fetch('detail', nil)
41
- first = errors.first
42
- value ||= first['message'] if first.is_a?(Hash)
43
38
  value ||= code unless code.empty?
44
39
  value ||= problem&.fetch('title', nil)
45
40
  value ||= body unless body.empty?
@@ -60,10 +55,16 @@ module Paymos
60
55
 
61
56
  def parse_problem(value)
62
57
  parsed = value.empty? ? nil : JSON.parse(value)
63
- parsed.is_a?(Hash) ? parsed : nil
58
+ canonical_problem?(parsed) ? parsed : nil
64
59
  rescue JSON::ParserError
65
60
  nil
66
61
  end
62
+
63
+ def canonical_problem?(value)
64
+ value.is_a?(Hash) && value['type'].is_a?(String) && value['title'].is_a?(String) &&
65
+ value['status'].is_a?(Integer) && value['status'] == status &&
66
+ value['detail'].is_a?(String) && value['code'].is_a?(String)
67
+ end
67
68
  end
68
69
 
69
70
  class ValidationError < ApiError; end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Paymos
4
- VERSION = '1.0.3'
4
+ VERSION = '1.1.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paymos
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paymos Labs