pretty-api 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4bd1b6f06b9359270546fda79b7afea4e34789ebda0c9710dcd9e29843918e12
4
- data.tar.gz: 2245430d8a8742e742108239ba035f65bd63a79f21c99b355d3edfdd30492e4d
3
+ metadata.gz: 9668f43a29b655b7f053e2e225d8d5fd6cc7e40cf51f07d52604d9032056ccf3
4
+ data.tar.gz: 587fce31fb41a7c225dea094650750cf91f197f94f32c45d912e8bd730cfb825
5
5
  SHA512:
6
- metadata.gz: 354f2859bdffce8317f9dc1d14a539a5600e070dfc9f529b174e66c46cff88d3b5a5c84261a9b122bf905da71b3500dc4c3ec0bb46dc610b5831e80aa0a916b5
7
- data.tar.gz: 4a145833591f955c72c4a66e5492c186dc11381c936a2060a7004b05cf6bbaa6d102f76386b1e593ec95908fee6554ed3d88aa79d051a3f499160017dfd566c6
6
+ metadata.gz: 1ee8e896e7bb56156361b8e2f3ccfc1fb85409ffd37b447fcf325ebc80216f80dcaf75f5aede2c4eec4c739e924d034e07aa63833126ea5e938763b1d57b5dbe
7
+ data.tar.gz: eb77378853a03d88cfa769bde7be327cbc4bc7acd326f32b32ce06b01d0c025f09ae454aa934e9b59d2e29a823bcf3fb1598c16fded819c27633a8069e929b4e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.4.0] - 2024-06-04
4
+
5
+ - Add support for www-form-urlencoded / multipart format: Fix "No implicit conversion of String into Integer"
6
+
3
7
  ## [0.3.1] - 2024-06-01
4
8
 
5
9
  - Fix possible "Unitialized Constant" error when inferring association classes that are namespaced
data/README.md CHANGED
@@ -30,7 +30,7 @@ Exemple with an organization that has 2 services. Let's say we would like to upd
30
30
 
31
31
  ### With PrettyAPI
32
32
 
33
- You can omit `_attributes` from your attributes and you can omit everything that you would like to destroy as well.
33
+ You can omit `_attributes` from your attributes and you can omit `everything that you would like to destroy` as well.
34
34
 
35
35
  ```json
36
36
  {
@@ -60,6 +60,23 @@ More exemples
60
60
  }
61
61
  ```
62
62
 
63
+ Support baked for www-form-urlencoded / multipart format. Services will be converted internally to an array discarding
64
+ all superfluous indexes.
65
+
66
+ ```json
67
+ {
68
+ "organization": {
69
+ "id": 1,
70
+ "services": {
71
+ "0": {
72
+ "id": 2,
73
+ "name": "Service to update"
74
+ }
75
+ }
76
+ }
77
+ }
78
+ ```
79
+
63
80
  ## How it works
64
81
 
65
82
  Because Rails is a framework built on conventions over configurations, it is possible to use reflections on your
@@ -37,9 +37,14 @@ module PrettyApi
37
37
  end
38
38
 
39
39
  def parse_has_many_association(record, params, assoc_key, assoc_info)
40
+ # www-form-urlencoded / multipart-form-data
41
+ params[assoc_key] = params[assoc_key].values if params[assoc_key].is_a?(Hash)
42
+
40
43
  (params[assoc_key] || []).each do |p|
41
44
  assoc_primary_key = record.try(:class).try(:primary_key)
42
- assoc = record.try(assoc_key).try(:detect) { |r| r.try(assoc_primary_key) == p[assoc_primary_key] }
45
+ assoc = record.try(assoc_key).try(:detect) do |r|
46
+ r.try(assoc_primary_key) == p[assoc_primary_key]
47
+ end
43
48
  parse_nested_attributes(assoc, p, nested_tree[assoc_info[:model]])
44
49
  end
45
50
  end
@@ -1,3 +1,3 @@
1
1
  module PrettyApi
2
- VERSION = "0.3.1".freeze
2
+ VERSION = "0.4.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pretty-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James St-Pierre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-01 00:00:00.000000000 Z
11
+ date: 2024-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails