kontent-delivery-sdk-ruby 2.0.16 → 2.0.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +31 -18
- data/lib/delivery/responses/response_base.rb +2 -2
- data/lib/delivery/tests/generic/items/empty_rich_text.json +24 -0
- data/lib/delivery/tests/generic/items/rich_text_complex_tables.json +81 -0
- data/lib/delivery/tests/generic/items/where_does_coffee_come_from_.json +1 -1
- data/lib/delivery/version.rb +1 -1
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f75c228e2b2a9c4fabf5971b8610e8659fcafa31ebb603bb77918bd1ba314db
|
4
|
+
data.tar.gz: 16048be6a0cc5e3749f090ef93b40e9b0899f18f576b1333e34cf93d05417f5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bdace49434ca1bcbcb6947af19649696380290402df204650e165e984ba9d9b2901f3eee3f79ee7b1dc9198f6b17a2356fd52e0a48befb2c3aded4c0b08164d1
|
7
|
+
data.tar.gz: e7067f01848f4de3ce01bcbd55fac0aafd2973e3b41013cd237bab00d9a2401e7698fdc91d69878767aaa7cbd7d4f7eb39c66a1bb89359d2433720e4965c11b2
|
data/README.md
CHANGED
@@ -23,7 +23,7 @@ class ApplicationController < ActionController::Base
|
|
23
23
|
PROJECT_ID = '<your-project-id>'.freeze
|
24
24
|
```
|
25
25
|
|
26
|
-
If you don't have the sample project installed in Kentico Kontent, you can generate a new project
|
26
|
+
If you don't have the sample project installed in Kentico Kontent, you can [generate a new sample project](https://docs.kontent.ai/tutorials/set-up-projects/manage-projects/managing-projects#a-creating-a-sample-project). Save the file, then open a terminal in the `/dancing_goat` directory and run the following commands:
|
27
27
|
|
28
28
|
```
|
29
29
|
bundle install
|
@@ -63,14 +63,14 @@ delivery_client = KK::DeliveryClient.new project_id: '<your-project-id>'
|
|
63
63
|
|
64
64
|
### Previewing unpublished content
|
65
65
|
|
66
|
-
To enable
|
66
|
+
To [enable preview](https://docs.kontent.ai/tutorials/develop-apps/get-content/configuring-preview-for-content-items "See how to configure your app and Kontent project to enable content preview"), pass the Preview API Key to the constructor:
|
67
67
|
|
68
68
|
```ruby
|
69
69
|
delivery_client = Kentico::Kontent::Delivery::DeliveryClient.new project_id: '<your-project-id>',
|
70
70
|
preview_key: '<your-preview-key>'
|
71
71
|
```
|
72
72
|
|
73
|
-
This enables preview, but you can toggle preview at any time by setting the `use_preview` attribute of DeliveryClient which is
|
73
|
+
This enables preview, but you can toggle preview at any time by setting the `use_preview` attribute of `DeliveryClient` which is propagated to all queries created by the client, _or_ per-query by setting its `use_preview` attribute:
|
74
74
|
|
75
75
|
```ruby
|
76
76
|
# For all queries created by client
|
@@ -86,14 +86,14 @@ end
|
|
86
86
|
|
87
87
|
### Making secure requests
|
88
88
|
|
89
|
-
If you've [secured access](https://
|
89
|
+
If you've [secured access](https://docs.kontent.ai/tutorials/develop-apps/get-content/securing-public-access "See how to enable secured access for your Kontent project") to your project, you need to provide the `DeliveryClient` with either the primary or secondary key:
|
90
90
|
|
91
91
|
```ruby
|
92
92
|
Kentico::Kontent::Delivery::DeliveryClient.new project_id: '<your-project-id>',
|
93
93
|
secure_key: '<your-secure-key>'
|
94
94
|
```
|
95
95
|
|
96
|
-
You can then request
|
96
|
+
You can then securely request published content in your project. Be sure to not expose the key if the file(s) it appears in are publicly available.
|
97
97
|
|
98
98
|
### Retry policy
|
99
99
|
|
@@ -137,7 +137,7 @@ response = delivery_client.items.execute
|
|
137
137
|
|
138
138
|
### Filtering
|
139
139
|
|
140
|
-
You can use [filtering](https://
|
140
|
+
You can use [filtering](https://docs.kontent.ai/reference/delivery-api#tag/Filtering-content "See content filtering options in Delivery API") to retrieve particular items. The filtering methods are applied directly to a string and the available methods are:
|
141
141
|
|
142
142
|
|Method|Example|REST equivalent|
|
143
143
|
|--|--|--|
|
@@ -171,12 +171,12 @@ The `.item` and `.items` methods return a `Kentico::Kontent::Delivery::DeliveryQ
|
|
171
171
|
|
172
172
|
|Method|Example|REST equivalent
|
173
173
|
|--|--|--|
|
174
|
-
|[order_by](https://
|
175
|
-
|[skip](https://
|
176
|
-
|[limit](https://
|
177
|
-
|[elements](https://
|
178
|
-
|[depth](https://
|
179
|
-
|[language](https://
|
174
|
+
|[order_by](https://docs.kontent.ai/reference/delivery-api#operation/list-content-items "order_by")|`order_by 'system.last_modified' '[desc]'`|?order=system.last_modified[desc]
|
175
|
+
|[skip](https://docs.kontent.ai/reference/delivery-api#operation/list-content-items "skip")|`skip 5`|?skip=5
|
176
|
+
|[limit](https://docs.kontent.ai/reference/delivery-api#operation/list-content-items "limit")|`limit 5`|?limit=5
|
177
|
+
|[elements](https://docs.kontent.ai/reference/delivery-api#tag/Projection "elements")|`elements %w[price product_name image]`|?elements=price,product_name,image
|
178
|
+
|[depth](https://docs.kontent.ai/reference/delivery-api#tag/Linked-content-and-components/linked-content-depth "depth")|`depth 0`|?depth=0
|
179
|
+
|[language](https://docs.kontent.ai/tutorials/set-up-projects/set-up-languages/localization-in-kentico-kontent#a-understanding-language-fallbacks "language")|`language 'en'`|?language=en
|
180
180
|
|
181
181
|
For example:
|
182
182
|
|
@@ -224,7 +224,7 @@ price = response.item.elements.price.value
|
|
224
224
|
|
225
225
|
### Requesting the latest content
|
226
226
|
|
227
|
-
Kentico caches content using Fastly, so requests made to Kentico Kontent may not be up-to-date. In some cases, such as when reacting to [webhook](https://
|
227
|
+
Kentico caches content using Fastly, so requests made to Kentico Kontent may not be up-to-date. In some cases, such as when reacting to [webhook](https://docs.kontent.ai/tutorials/develop-apps/integrate/using-webhooks-for-automatic-updates) notifications, you might want to request the latest content from your Kentico Kontent project.
|
228
228
|
|
229
229
|
You can check the headers of the response for the **X-Stale-Content** header to check if the response was served from cache:
|
230
230
|
|
@@ -294,7 +294,7 @@ end
|
|
294
294
|
|
295
295
|
### Pagination
|
296
296
|
|
297
|
-
The `DeliveryItemListingResponse` also contains a `pagination` attribute to access the [paging](https://
|
297
|
+
The `DeliveryItemListingResponse` also contains a `pagination` attribute to access the [paging](https://docs.kontent.ai/reference/delivery-api#operation/list-content-items "paging") data for the Delivery query. This object contains the following attributes:
|
298
298
|
|
299
299
|
- **skip**
|
300
300
|
- **limit**
|
@@ -320,7 +320,7 @@ delivery_client.items
|
|
320
320
|
|
321
321
|
Use the `items_feed` method to retrieve a dynamically paginated list of content items in your project. The result will have a `more_results?` method which indicates that more items can be retrieved from the feed, using the `next_result` method.
|
322
322
|
|
323
|
-
This method accepts all [filtering](
|
323
|
+
This method accepts all [filtering](#filtering) and [parameters](https://github.com/Kentico/kontent-delivery-sdk-ruby#parameters) except _depth_, _skip_, and _limit_. You can read more about the /items-feed endpoint in the [Kontent documentation](https://docs.kontent.ai/reference/delivery-api#operation/enumerate-content-items)
|
324
324
|
|
325
325
|
Below is an example that will load all content items of a project into a single array:
|
326
326
|
|
@@ -407,7 +407,7 @@ end
|
|
407
407
|
|
408
408
|
## Retrieving content type elements
|
409
409
|
|
410
|
-
Kentico Kontent provides an [endpoint](https://
|
410
|
+
Kentico Kontent provides an [endpoint](https://docs.kontent.ai/reference/delivery-api#operation/retrieve-a-content-element) for obtaining details about a specific element of a content type. In the Ruby SDK, you can use the `.element` method:
|
411
411
|
|
412
412
|
```ruby
|
413
413
|
delivery_client.element('brewer', 'product_status').execute do |response|
|
@@ -417,7 +417,7 @@ end
|
|
417
417
|
|
418
418
|
This returns a `Kentico::Kontent::Delivery::Responses::DeliveryElementResponse` where the `element` attribute is a dynamic OStruct representation of the JSON response. This means that you can access any property of the element by simply typing the name as in the above example.
|
419
419
|
|
420
|
-
The element will always contain __codename__, __type__, and __name__, but multiple choice elements will also contain __options__ and taxonomy elements will contain __taxonomy_group__. The Ruby SDK fully supports obtaining [custom elements](https://
|
420
|
+
The element will always contain __codename__, __type__, and __name__, but multiple choice elements will also contain __options__ and taxonomy elements will contain __taxonomy_group__. The Ruby SDK fully supports obtaining [custom elements](https://docs.kontent.ai/reference/custom-elements-js-api) using this approach and any other methods.
|
421
421
|
|
422
422
|
## Resolving links
|
423
423
|
|
@@ -521,9 +521,22 @@ delivery_client.items
|
|
521
521
|
.with_inline_content_item_resolver MyItemResolver.new
|
522
522
|
```
|
523
523
|
|
524
|
+
To resolve inline content in elements, you must call `get_string` similar to content item links:
|
525
|
+
|
526
|
+
```ruby
|
527
|
+
item_resolver = Kentico::Kontent::Delivery::Resolvers::InlineContentItemResolver.new(lambda do |item|
|
528
|
+
return "<div>$#{item.elements.price.value}</div>" if item.system.type.eql? 'brewer'
|
529
|
+
end)
|
530
|
+
delivery_client = Kentico::Kontent::Delivery::DeliveryClient.new project_id: PROJECT_ID,
|
531
|
+
inline_content_item_resolver: item_resolver
|
532
|
+
delivery_client.item('our_brewers').execute do |response|
|
533
|
+
text = response.item.get_string 'body_copy'
|
534
|
+
end
|
535
|
+
```
|
536
|
+
|
524
537
|
## Image transformation
|
525
538
|
|
526
|
-
When you've obtained the URL for an asset, you can use our [Image Transformation API](https://
|
539
|
+
When you've obtained the URL for an asset, you can use our [Image Transformation API](https://docs.kontent.ai/reference/image-transformation) to make on-the-fly modifications to the image. To do this, use the static `.transform` method of `Kentico::Kontent::Delivery::Builders::ImageTransformationBuilder`, then call the transformation methods. When you're done, call the `.url` method to get the new URL:
|
527
540
|
|
528
541
|
```ruby
|
529
542
|
url = response.item.get_assets('teaser_image').first.url
|
@@ -15,9 +15,9 @@ module Kentico
|
|
15
15
|
# * *Args*:
|
16
16
|
# - *http_code* (+integer+) The status code returned by the REST request
|
17
17
|
# - *message* (+string+) An informative message about the response, visible when calling +to_s+
|
18
|
-
# - *headers* (+hash+) The headers of the REST response
|
18
|
+
# - *headers* (+hash+) _optional_ The headers of the REST response
|
19
19
|
# - *json* (+string+) _optional_ The complete, unmodified JSON response from the server
|
20
|
-
def initialize(http_code, message, headers, json = '')
|
20
|
+
def initialize(http_code, message, headers = {}, json = '')
|
21
21
|
self.http_code = http_code
|
22
22
|
self.message = message
|
23
23
|
self.headers = headers
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"item": {
|
3
|
+
"system": {
|
4
|
+
"id": "00000000-0000-0000-0000-000000000001",
|
5
|
+
"name": "Fake item 1",
|
6
|
+
"codename": "empty_rich_text",
|
7
|
+
"language": "en-US",
|
8
|
+
"type": "fake_type_1",
|
9
|
+
"sitemap_locations": [],
|
10
|
+
"last_modified": "2018-01-01T00:00:00.0000000Z"
|
11
|
+
},
|
12
|
+
"elements": {
|
13
|
+
"body_copy": {
|
14
|
+
"type": "rich_text",
|
15
|
+
"name": "Body Copy",
|
16
|
+
"images": {},
|
17
|
+
"links": {},
|
18
|
+
"modular_content": [],
|
19
|
+
"value": ""
|
20
|
+
}
|
21
|
+
}
|
22
|
+
},
|
23
|
+
"modular_content": {}
|
24
|
+
}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
{
|
2
|
+
"item": {
|
3
|
+
"system": {
|
4
|
+
"id": "4ffc70ea-62f6-4726-a5bf-39896d7c91c4",
|
5
|
+
"name": "TEST tables",
|
6
|
+
"codename": "rich_text_complex_tables",
|
7
|
+
"language": "en-US",
|
8
|
+
"type": "simple_rich_text",
|
9
|
+
"sitemap_locations": [],
|
10
|
+
"last_modified": "2020-03-16T17:49:42.7165723Z"
|
11
|
+
},
|
12
|
+
"elements": {
|
13
|
+
"rich_text": {
|
14
|
+
"type": "rich_text",
|
15
|
+
"name": "Rich text",
|
16
|
+
"images": {
|
17
|
+
"bf509e0d-d9ed-4925-968e-29a1f6a561c4": {
|
18
|
+
"image_id": "bf509e0d-d9ed-4925-968e-29a1f6a561c4",
|
19
|
+
"description": null,
|
20
|
+
"url": "https://qa-assets-us-01.global.ssl.fastly.net:443/34aaa010-a788-0004-ce89-a1c49a062a65/625c11f0-9783-47d3-b80e-2afafb8862e3/pikachu.jpg",
|
21
|
+
"width": 945,
|
22
|
+
"height": 819
|
23
|
+
},
|
24
|
+
"a0c1b647-e0b1-478a-b7bd-8df80b55e9f7": {
|
25
|
+
"image_id": "a0c1b647-e0b1-478a-b7bd-8df80b55e9f7",
|
26
|
+
"description": null,
|
27
|
+
"url": "https://qa-assets-us-01.global.ssl.fastly.net:443/34aaa010-a788-0004-ce89-a1c49a062a65/d74603bb-2109-4d45-885d-ff15c6ed9582/likeaboss.jpg",
|
28
|
+
"width": 1280,
|
29
|
+
"height": 720
|
30
|
+
}
|
31
|
+
},
|
32
|
+
"links": {
|
33
|
+
"5e1997a2-9f9b-43ba-92f3-3cb36409d811": {
|
34
|
+
"codename": "paper_filters_for_chemex",
|
35
|
+
"type": "accessory",
|
36
|
+
"url_slug": "paper-filters-for-chemex"
|
37
|
+
},
|
38
|
+
"4ffc70ea-62f6-4726-a5bf-39896d7c91c4": {
|
39
|
+
"codename": "test_tables",
|
40
|
+
"type": "simple_rich_text",
|
41
|
+
"url_slug": ""
|
42
|
+
},
|
43
|
+
"3120ec15-a4a2-47ec-8ccd-c85ac8ac5ba5": {
|
44
|
+
"codename": "which_brewing_fits_you_",
|
45
|
+
"type": "article",
|
46
|
+
"url_slug": "which-brewing-fits-you"
|
47
|
+
}
|
48
|
+
},
|
49
|
+
"modular_content": [],
|
50
|
+
"value": "<p>Hello world</p>\n<figure data-asset-id=\"bf509e0d-d9ed-4925-968e-29a1f6a561c4\" data-image-id=\"bf509e0d-d9ed-4925-968e-29a1f6a561c4\"><img src=\"https://qa-assets-us-01.global.ssl.fastly.net:443/34aaa010-a788-0004-ce89-a1c49a062a65/625c11f0-9783-47d3-b80e-2afafb8862e3/pikachu.jpg\" data-asset-id=\"bf509e0d-d9ed-4925-968e-29a1f6a561c4\" data-image-id=\"bf509e0d-d9ed-4925-968e-29a1f6a561c4\" alt=\"\"></figure>\n<p>Hello <a data-item-id=\"3ce384e6-ba4b-49c4-993a-ae4ee1e0a1cc\" href=\"\">world</a></p>\n<p><a data-item-id=\"5e1997a2-9f9b-43ba-92f3-3cb36409d811\" href=\"\">Hello </a>world</p>\n<table><tbody>\n <tr><td><h1>Beautiful table on steroids</h1>\n<h2>Which was changed BTW</h2>\n<p>Supports</p>\n<ul>\n <li>Lists</li>\n <li><strong>Formatting</strong></li>\n <li>Images\n <ol>\n <li>Yes, <a data-item-id=\"4ffc70ea-62f6-4726-a5bf-39896d7c91c4\" href=\"\">totally</a></li>\n <li>Really</li>\n <li><a data-item-id=\"3120ec15-a4a2-47ec-8ccd-c85ac8ac5ba5\" href=\"\">Wanna </a>see?</li>\n </ol>\n </li>\n</ul>\n<figure data-asset-id=\"a0c1b647-e0b1-478a-b7bd-8df80b55e9f7\" data-image-id=\"a0c1b647-e0b1-478a-b7bd-8df80b55e9f7\"><img src=\"https://qa-assets-us-01.global.ssl.fastly.net:443/34aaa010-a788-0004-ce89-a1c49a062a65/d74603bb-2109-4d45-885d-ff15c6ed9582/likeaboss.jpg\" data-asset-id=\"a0c1b647-e0b1-478a-b7bd-8df80b55e9f7\" data-image-id=\"a0c1b647-e0b1-478a-b7bd-8df80b55e9f7\" alt=\"\"></figure>\n<p><em>Thanks for watching!</em></p>\n</td><td>with</td><td>some</td></tr>\n <tr><td>text</td><td>in</td><td>various</td></tr>\n <tr><td>table</td><td>cells</td><td>!</td></tr>\n</tbody></table>\n<p>z</p>\n<p>dd</p>\n<table><tbody>\n <tr><td>d</td><td>f</td><td>g</td></tr>\n <tr><td>g</td><td>g</td><td>gg</td></tr>\n <tr><td>g</td><td>g</td><td>g</td></tr>\n</tbody></table>\n<p>x</p>"
|
51
|
+
},
|
52
|
+
"rich_text_2": {
|
53
|
+
"type": "rich_text",
|
54
|
+
"name": "Rich text 2",
|
55
|
+
"images": {},
|
56
|
+
"links": {},
|
57
|
+
"modular_content": [],
|
58
|
+
"value": "<p><br></p>"
|
59
|
+
},
|
60
|
+
"simple_text": {
|
61
|
+
"type": "text",
|
62
|
+
"name": "Simple text",
|
63
|
+
"value": ""
|
64
|
+
},
|
65
|
+
"second_rich_text": {
|
66
|
+
"type": "rich_text",
|
67
|
+
"name": "Second rich text",
|
68
|
+
"images": {},
|
69
|
+
"links": {},
|
70
|
+
"modular_content": [],
|
71
|
+
"value": "<p><br></p>"
|
72
|
+
},
|
73
|
+
"ultimate_answer_to_life_universe_and_everything": {
|
74
|
+
"type": "number",
|
75
|
+
"name": "Ultimate answer to life universe and everything",
|
76
|
+
"value": null
|
77
|
+
}
|
78
|
+
}
|
79
|
+
},
|
80
|
+
"modular_content": {}
|
81
|
+
}
|
@@ -50,7 +50,7 @@
|
|
50
50
|
"modular_content": [
|
51
51
|
"aeropress"
|
52
52
|
],
|
53
|
-
"value": "<p>The history of coffee is patchy and full of myth and hearsay.</p>\n<object type=\"application/kenticocloud\" data-type=\"item\" data-rel=\"link\" data-codename=\"aeropress\"></object>\n<p><br></p>\n<p>One of the most popular story goes that Kaldi, an Ethiopian goatherd, saw his goats eating coffee berries and as a result becoming elated. So, Kaldi then tried them himself and thus discovered the potential of coffee. And that's where we got our name - Dancing Goat.</p>\n<p>Although it's far more likely that uses for coffee were developed over time and were discovered by people tasting various parts of the cherry, the old fables do add a bit of romance and are very cute.</p>\n<p>Coffee requires a warm climate and lots of moisture, so it is produced within a belt extending around the world between the Tropic of Cancer and the Tropic of Capricorn.</p>\n<p>Coffee grows on trees that flower and produce fleshy red fruit (orange or yellow is also possible) called a drupe though it is popularly referred to as the ‘berry’ or ‘cherry’. What we refer to as coffee beans are actually seeds, which are produced in the centre of the drupe, often in pairs. After harvesting, the flesh of the drupe is washed or dried and the ‘beans’ extracted.</p>\n<p>Coffee beans vary in their shape, size, color as well as flavor depending on the region and conditions in which they were grown. The difference of aromas and flavors between various regional varietals is as vast as the regions they grow in. Just like the teas and wines of the world, and even more so. It is always worth trying new varietals that may stimulate your taste buds in a different way.</p>\n<p>The two major species of coffee are <em>Coffea arabica</em> and <em>Coffea canephora</em> (also called <em>Coffea robusta</em>).</p>\n<p>Arabica is believed to be the first species of coffee to have been cultivated.</p>\n<p>It requires more care during cultivation and is considered to produce better coffee than robusta. Arabica plants grow at high altitudes of around 1,000 to 2,000 meters, approximately 3,200 to 6,500 ft, above sea level in regions across South and Central America as well as Africa. Arabica is costlier to grow as it produces lower yields than Robusta despite requiring more labor. Despite all that, it is considered superior to robusta. The high demand and lower availability drives the price high. Arabica is the species most associated with specialty (sometimes referred to as gourmet) coffees.</p>\n<p>The only place where Arabica coffee grows indigenously is Ethiopia. It is the birthplace of coffee and also the only place in which it truly grows wild. All countries that produce Arabica coffees have transplanted plant stock directly from Ethiopia or from other countries that had already done so.</p>"
|
53
|
+
"value": "<p><object type=\"application/kenticocloud\" data-type=\"item\" data-rel=\"link\" data-codename=\"aeropress\"></object>The history of coffee is patchy and full of myth and hearsay.</p>\n<object type=\"application/kenticocloud\" data-type=\"item\" data-rel=\"link\" data-codename=\"aeropress\"></object>\n<p><br></p>\n<p>One of the most popular story goes that Kaldi, an Ethiopian goatherd, saw his goats eating coffee berries and as a result becoming elated. So, Kaldi then tried them himself and thus discovered the potential of coffee. And that's where we got our name - Dancing Goat.</p>\n<p>Although it's far more likely that uses for coffee were developed over time and were discovered by people tasting various parts of the cherry, the old fables do add a bit of romance and are very cute.</p>\n<p>Coffee requires a warm climate and lots of moisture, so it is produced within a belt extending around the world between the Tropic of Cancer and the Tropic of Capricorn.</p>\n<p>Coffee grows on trees that flower and produce fleshy red fruit (orange or yellow is also possible) called a drupe though it is popularly referred to as the ‘berry’ or ‘cherry’. What we refer to as coffee beans are actually seeds, which are produced in the centre of the drupe, often in pairs. After harvesting, the flesh of the drupe is washed or dried and the ‘beans’ extracted.</p>\n<p>Coffee beans vary in their shape, size, color as well as flavor depending on the region and conditions in which they were grown. The difference of aromas and flavors between various regional varietals is as vast as the regions they grow in. Just like the teas and wines of the world, and even more so. It is always worth trying new varietals that may stimulate your taste buds in a different way.</p>\n<p>The two major species of coffee are <em>Coffea arabica</em> and <em>Coffea canephora</em> (also called <em>Coffea robusta</em>).</p>\n<p>Arabica is believed to be the first species of coffee to have been cultivated.</p>\n<p>It requires more care during cultivation and is considered to produce better coffee than robusta. Arabica plants grow at high altitudes of around 1,000 to 2,000 meters, approximately 3,200 to 6,500 ft, above sea level in regions across South and Central America as well as Africa. Arabica is costlier to grow as it produces lower yields than Robusta despite requiring more labor. Despite all that, it is considered superior to robusta. The high demand and lower availability drives the price high. Arabica is the species most associated with specialty (sometimes referred to as gourmet) coffees.</p>\n<p>The only place where Arabica coffee grows indigenously is Ethiopia. It is the birthplace of coffee and also the only place in which it truly grows wild. All countries that produce Arabica coffees have transplanted plant stock directly from Ethiopia or from other countries that had already done so.</p>"
|
54
54
|
},
|
55
55
|
"related_articles": {
|
56
56
|
"type": "modular_content",
|
data/lib/delivery/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kontent-delivery-sdk-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Dugre
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -98,26 +98,26 @@ dependencies:
|
|
98
98
|
requirements:
|
99
99
|
- - "~>"
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: '3.
|
101
|
+
version: '3.8'
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
105
|
requirements:
|
106
106
|
- - "~>"
|
107
107
|
- !ruby/object:Gem::Version
|
108
|
-
version: '3.
|
108
|
+
version: '3.8'
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
110
|
name: simplecov
|
111
111
|
requirement: !ruby/object:Gem::Requirement
|
112
112
|
requirements:
|
113
|
-
- - "
|
113
|
+
- - "~>"
|
114
114
|
- !ruby/object:Gem::Version
|
115
115
|
version: 0.18.5
|
116
116
|
type: :development
|
117
117
|
prerelease: false
|
118
118
|
version_requirements: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
|
-
- - "
|
120
|
+
- - "~>"
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: 0.18.5
|
123
123
|
description: Kentico Kontent Delivery SDK for Ruby
|
@@ -166,6 +166,8 @@ files:
|
|
166
166
|
- lib/delivery/tests/generic/items/about_us.json
|
167
167
|
- lib/delivery/tests/generic/items/aeropress_filters.json
|
168
168
|
- lib/delivery/tests/generic/items/coffee_processing_techniques.json
|
169
|
+
- lib/delivery/tests/generic/items/empty_rich_text.json
|
170
|
+
- lib/delivery/tests/generic/items/rich_text_complex_tables.json
|
169
171
|
- lib/delivery/tests/generic/items/where_does_coffee_come_from_.json
|
170
172
|
- lib/delivery/tests/generic/taxonomies.json
|
171
173
|
- lib/delivery/tests/generic/types.json
|
@@ -198,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
200
|
- !ruby/object:Gem::Version
|
199
201
|
version: '0'
|
200
202
|
requirements: []
|
201
|
-
rubygems_version: 3.1.
|
203
|
+
rubygems_version: 3.1.4
|
202
204
|
signing_key:
|
203
205
|
specification_version: 4
|
204
206
|
summary: Kentico Kontent Delivery SDK for Ruby
|