dato 0.7.16 → 0.7.17
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/CHANGELOG.md +11 -11
- data/lib/dato/api_client.rb +4 -3
- data/lib/dato/json_api_serializer.rb +10 -4
- data/lib/dato/local/field_type/file.rb +29 -2
- data/lib/dato/upload/create_upload_path.rb +1 -1
- data/lib/dato/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe8a9078fb6f9d6b37f6d9e371dbfcd417b2be9d2108395ad742a37b1f361262
|
4
|
+
data.tar.gz: 3466ff70f311f4c7208ff37ce20c2b2753cfd9eac05ac912cc42412748be3244
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23adcec27891f974552ee201cddc28b982579f849ffbaaaf88c4fad678460ce10effec7a52a65a4cd548253f79bfbe22c98b6f78caf8c95fb6dba3005b4eab3d
|
7
|
+
data.tar.gz: 32aea1391ce6f54ab64af0de2ec95619b7a3ece9644dfa98ed0b6bcefa819de797ea3b6b87741235b561a73aab952643cb9ecf47e7fae97cc9d323700f60360e
|
data/CHANGELOG.md
CHANGED
@@ -38,40 +38,40 @@ Find more info [on the documentation](https://www.datocms.com/docs/content-manag
|
|
38
38
|
|
39
39
|
# 0.7.11 (not released)
|
40
40
|
|
41
|
-
|
42
|
-
|
41
|
+
* Updated specs cassettes after `appeareance -> appearance` typo fix
|
42
|
+
* Some style changes
|
43
43
|
|
44
44
|
# 0.7.10
|
45
45
|
|
46
|
-
|
46
|
+
* Fixed SEO title retrieval. Now it fallbacks to default SEO title is item title is blank
|
47
47
|
|
48
48
|
# 0.7.9
|
49
49
|
|
50
|
-
|
50
|
+
* Added new attributes to uploads
|
51
51
|
|
52
52
|
# 0.7.0
|
53
53
|
|
54
|
-
|
54
|
+
* Real-time events are now much more granular and the gem avoids downloading all the content every time a change occurs
|
55
55
|
|
56
56
|
# 0.6.18
|
57
57
|
|
58
|
-
|
58
|
+
* Fixed regression where you could no longer access items' item type
|
59
59
|
|
60
60
|
# 0.6.15
|
61
61
|
|
62
|
-
|
62
|
+
* Handle `429 Too Many Requests` responses from API
|
63
63
|
|
64
64
|
# 0.6.12
|
65
65
|
|
66
|
-
|
66
|
+
* Allow empty responses from server
|
67
67
|
|
68
68
|
# 0.6.10
|
69
69
|
|
70
|
-
|
70
|
+
* Introduced `.meta` on `Dato::Local::Item` to fetch all meta information about the records
|
71
71
|
|
72
72
|
# 0.6.5
|
73
73
|
|
74
|
-
|
74
|
+
* The `.seo_meta_tags` method now generates fallback titles based on the model field title
|
75
75
|
|
76
76
|
# v0.6.2
|
77
77
|
|
@@ -79,7 +79,7 @@ Moved `json_schema` as runtime dependency
|
|
79
79
|
|
80
80
|
# v0.6.1
|
81
81
|
|
82
|
-
The big change is that the methods the client makes available are
|
82
|
+
The big change is that the methods the client makes available are generated at runtime based on the [JSON Schema of our CMA](https://www.datocms.com/content-management-api/). This means any new API endpoint — or changes to existing ones — will instantly be reflected to the client, without the need to upgrade to the latest client version.
|
83
83
|
|
84
84
|
We also added a new `deserialize_response` option to every call, that you can use if you want to retrieve the exact payload the DatoCMS returns:
|
85
85
|
|
data/lib/dato/api_client.rb
CHANGED
@@ -100,10 +100,11 @@ module Dato
|
|
100
100
|
sleep(1)
|
101
101
|
request(*args)
|
102
102
|
else
|
103
|
+
# puts body.inspect
|
104
|
+
# puts '===='
|
105
|
+
# puts error.message
|
106
|
+
# puts '===='
|
103
107
|
error = ApiError.new(e.response)
|
104
|
-
puts '===='
|
105
|
-
puts error.message
|
106
|
-
puts '===='
|
107
108
|
raise error
|
108
109
|
end
|
109
110
|
end
|
@@ -23,8 +23,10 @@ module Dato
|
|
23
23
|
data[:type] = type
|
24
24
|
data[:attributes] = serialized_attributes(resource)
|
25
25
|
|
26
|
-
|
27
|
-
|
26
|
+
serialized_relationships = serialized_relationships(resource)
|
27
|
+
|
28
|
+
if serialized_relationships
|
29
|
+
data[:relationships] = serialized_relationships
|
28
30
|
end
|
29
31
|
|
30
32
|
{ data: data }
|
@@ -82,7 +84,7 @@ module Dato
|
|
82
84
|
end
|
83
85
|
end
|
84
86
|
|
85
|
-
result
|
87
|
+
result.empty? ? nil : result
|
86
88
|
end
|
87
89
|
|
88
90
|
def attributes(resource)
|
@@ -110,7 +112,11 @@ module Dato
|
|
110
112
|
end
|
111
113
|
|
112
114
|
def required_relationships
|
113
|
-
|
115
|
+
if link.schema.properties['data'].required.include?("relationships")
|
116
|
+
(link_relationships.required || []).map(&:to_sym)
|
117
|
+
else
|
118
|
+
[]
|
119
|
+
end
|
114
120
|
end
|
115
121
|
|
116
122
|
def link_attributes
|
@@ -18,6 +18,7 @@ module Dato
|
|
18
18
|
v[:alt],
|
19
19
|
v[:title],
|
20
20
|
v[:custom_data],
|
21
|
+
v[:focal_point],
|
21
22
|
repo.site.entity.imgix_host
|
22
23
|
)
|
23
24
|
end
|
@@ -29,12 +30,14 @@ module Dato
|
|
29
30
|
alt,
|
30
31
|
title,
|
31
32
|
custom_data,
|
33
|
+
focal_point,
|
32
34
|
imgix_host
|
33
35
|
)
|
34
36
|
@upload = upload
|
35
37
|
@alt = alt
|
36
38
|
@title = title
|
37
39
|
@custom_data = custom_data
|
40
|
+
@focal_point = focal_point
|
38
41
|
@imgix_host = imgix_host
|
39
42
|
end
|
40
43
|
|
@@ -100,6 +103,12 @@ module Dato
|
|
100
103
|
@custom_data.merge(default_metadata.fetch('custom_data', {}))
|
101
104
|
end
|
102
105
|
|
106
|
+
def focal_point
|
107
|
+
default_metadata = @upload.default_field_metadata.deep_stringify_keys
|
108
|
+
.fetch(I18n.locale.to_s, {})
|
109
|
+
@focal_point || default_metadata['focal_point']
|
110
|
+
end
|
111
|
+
|
103
112
|
def tags
|
104
113
|
@upload.tags
|
105
114
|
end
|
@@ -216,8 +225,25 @@ module Dato
|
|
216
225
|
).path(path)
|
217
226
|
end
|
218
227
|
|
219
|
-
def url(
|
220
|
-
|
228
|
+
def url(query = {})
|
229
|
+
query.deep_stringify_keys!
|
230
|
+
|
231
|
+
if focal_point &&
|
232
|
+
query["fit"] == "crop" &&
|
233
|
+
(query["h"] || query["height"]) &&
|
234
|
+
(query["w"] || query["width"]) &&
|
235
|
+
[nil, "focalpoint"].include?(query["crop"]) &&
|
236
|
+
query["fp-x"].nil? &&
|
237
|
+
query["fp-y"].nil?
|
238
|
+
|
239
|
+
query.merge!(
|
240
|
+
"crop" => "focalpoint",
|
241
|
+
"fp-x" => focal_point[:x],
|
242
|
+
"fp-y" => focal_point[:y],
|
243
|
+
)
|
244
|
+
end
|
245
|
+
|
246
|
+
file.to_url(query)
|
221
247
|
end
|
222
248
|
|
223
249
|
def lqip_data_url(opts = {})
|
@@ -241,6 +267,7 @@ module Dato
|
|
241
267
|
alt: alt,
|
242
268
|
title: title,
|
243
269
|
custom_data: custom_data,
|
270
|
+
focal_point: focal_point,
|
244
271
|
url: url,
|
245
272
|
copyright: copyright,
|
246
273
|
tags: tags,
|
data/lib/dato/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dato
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Verna
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -464,7 +464,7 @@ homepage: https://github.com/datocms/ruby-datocms-client
|
|
464
464
|
licenses:
|
465
465
|
- MIT
|
466
466
|
metadata: {}
|
467
|
-
post_install_message:
|
467
|
+
post_install_message:
|
468
468
|
rdoc_options: []
|
469
469
|
require_paths:
|
470
470
|
- lib
|
@@ -479,8 +479,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
479
479
|
- !ruby/object:Gem::Version
|
480
480
|
version: '0'
|
481
481
|
requirements: []
|
482
|
-
|
483
|
-
|
482
|
+
rubyforge_project:
|
483
|
+
rubygems_version: 2.7.6
|
484
|
+
signing_key:
|
484
485
|
specification_version: 4
|
485
486
|
summary: Ruby client for DatoCMS API
|
486
487
|
test_files: []
|