prismic.io 1.4.2 → 1.4.3

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
  SHA1:
3
- metadata.gz: 397ea2cd56addd7eb0044a8fc9fef772df40f174
4
- data.tar.gz: fe7638bd984fb3162ecb9c9e3b6383f23d0458a7
3
+ metadata.gz: fe3fbf71a36faca94508e34025888f01161bde97
4
+ data.tar.gz: af1281ebfc68219a92b15e4ca0092f16ade38dcd
5
5
  SHA512:
6
- metadata.gz: a075bc85ebda03d3c35c6afd0136f6b8c4d82b86aae1a3a1371a200069bdbecaf0baf5a67b4f5e33fc50dd31937d030697122d5c083c99f1e937636b3252fca6
7
- data.tar.gz: b74c4f82f34faf7e3186ad518840135a04a7a4254564c10b4813edcb5dfd045348a3ba8bdb2f05eff1d040edf3a2af7d5798d569901a56c183dda171f3f90e2a
6
+ metadata.gz: 885abba55dbd68875a34e736a63c81e077dca50507264978b66535e595661bedfc25a7ade19e96412ed29b5177a202284d5b93aacec128c2b9efd180dac95eb8
7
+ data.tar.gz: 0134fc549d395befc527dc8f6ba5b73cd792d2a907329b61bb0b2a6b003753417d911846a6585305e7cf232d1bec6275fd20bfef07d9bb70b978ba9b583b254d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- prismic.io (1.4.2)
4
+ prismic.io (1.4.3)
5
5
  hashery (~> 2.1.1)
6
6
 
7
7
  GEM
@@ -44,3 +44,6 @@ DEPENDENCIES
44
44
  rspec (~> 2.14)
45
45
  simplecov (~> 0.7)
46
46
  yajl-ruby
47
+
48
+ BUNDLED WITH
49
+ 1.13.5
data/README.md CHANGED
@@ -38,45 +38,23 @@ gem 'prismic.io', require: 'prismic'
38
38
 
39
39
  The quickstart is not available for Ruby yet, but if you understand Javascript you can easily adapt the code.
40
40
 
41
- #### Specific Ruby kit syntax
42
-
43
- Thanks to Ruby's syntax, this kit contains some mild differences and syntastic sugar over [the "Kits and helpers" section of our API documentation](https://developers.prismic.io/documentation/UjBe8bGIJ3EKtgBZ/api-documentation#kits-and-helpers) in general (which you should read first). They are listed here:
44
-
45
- * When calling the API, a faster way to pass the `ref`: directly as a parameter of the `submit` method (no need to use the `ref` method then): `api.form("everything").submit(@ref)`.
46
- * Accessing type-dependent fields from a `document` is done through the `[]` operator (rather than a `get()` method). Printing the HTML version of a field therefore looks like `document["title_user_friendly"].as_html(link_resolver(@ref))`.
47
- * Two of the fields in the `DocumentLink` object (the one used to write your `link_resolver` method, for instance) were renamed to fit Ruby's best practice: `doc.type` is in fact `doc.link_type`, and `doc.isBroken` is in fact `doc.broken?`.
48
- * You don't need to pass a `ctx` object in `as_html()`, you can use the `Prismic.link_resolver` static method to build a link resolver object that takes the `ref` into account, like this: `@link_resolver = Prismic.link_resolver(@ref) { |doc| ... }`. Then you can simply go: `fragment.as_html(@link_resolver)`. Note: the Rails starter kit provides you with a helper allowing you to pass the ref each time you call the link resolver, like this: `fragment.as_html(link_resolver(@ref))`.
49
- * the `Response` class is fit to work with the [Kaminari](https://github.com/amatsuda/kaminari) gem. So if you have a `@response` object in your controller, you can display a whole pagination for it in your view like this: `<%= paginate @response %>` (this works with any Rails 3 or 4 app with the Kaminari gem installed).
50
-
51
- Knowing all that, here is typical code written with the Ruby kit:
52
-
53
- * A typical API object instantiation looks like this: `Prismic.api(url, opts)`
54
- * A typical querying looks like this: `api.query('[[:d = at(document.type, "product")]]')`
55
- * A typical fragment manipulation looks like this: `doc['article.image'].get_view('icon').url`
56
- * A typical fragment serialization to HTML looks like this: `doc['article.body'].as_html(@link_resolver)`
57
-
58
41
  #### Configuring Alternative API Caches
59
42
 
60
- The default cache stores data in-memory, in the server. You may want to use a different cache, for example to share it between several servers (with memcached or similar). A null cache (does no caching) is also available if you need a predictible behavior for testing or VCR. To use it (or any other compliant cache), simply add `api_cache => Prismic::BasicNullCache.new`
61
- to the options passed to `Prismic.api`.
43
+ The default cache stores data in-memory, in the server. You may want to use a different cache, for example to share it between several servers (with memcached or similar). A null cache (does no caching) is also available if you need a predictible behavior for testing or VCR. To use it (or any other compliant cache), simply add `api_cache: Prismic::BasicNullCache.new` to the options passed to `Prismic.api`.
62
44
 
63
45
  ### Changelog
64
46
 
65
47
  Need to see what changed, or to upgrade your kit? We keep our changelog on [this repository's "Releases" tab](https://github.com/prismicio/ruby-kit/releases).
66
48
 
67
- ### Contribute to the kit
68
-
69
- Contribution is open to all developer levels, read our "[Contribute to the official kits](https://developers.prismic.io/documentation/UszOeAEAANUlwFpp/contribute-to-the-official-kits)" documentation to learn more.
70
-
71
49
  #### Install the kit locally
72
50
 
73
51
  Of course, you're going to need [Ruby installed](https://www.ruby-lang.org/en/downloads/) on your computer, as well as [RubyGems](http://rubygems.org/pages/download) and [Bundler](http://bundler.io/).
74
52
 
75
- Clone the kit, then run ```bundle install```.
53
+ Clone the kit, then run `bundle install`.
76
54
 
77
55
  #### Test
78
56
 
79
- Please write tests for any bugfix or new feature, by placing your tests in the [spec/](spec/) folder, following the [RSpec](http://rspec.info/) syntax. Launch the tests by running ```bundle exec rspec```
57
+ Please write tests for any bugfix or new feature, by placing your tests in the [spec/](spec/) folder, following the [RSpec](http://rspec.info/) syntax. Launch the tests by running `rspec`
80
58
 
81
59
  If you find existing code that is not optimally tested and wish to make it better, we really appreciate it; but you should document it on its own branch and its own pull request.
82
60
 
data/lib/prismic/api.rb CHANGED
@@ -108,6 +108,7 @@ module Prismic
108
108
  alias :getByID :get_by_id
109
109
 
110
110
  # Retrieve one document by its uid
111
+ # @param typ [String] the document type's name
111
112
  # @param uid [String] the uid to search
112
113
  # @param opts [Hash] query options (ref, etc.)
113
114
  # @return the document, or nil if not found
@@ -126,7 +127,7 @@ module Prismic
126
127
  alias :getByIDs :get_by_ids
127
128
 
128
129
  # Retrieve one single typed document by its type
129
- # @param q [String] the query to perform
130
+ # @param typ [String] the document type's name
130
131
  # @param opts [Hash] query options (ref, etc.)
131
132
  # @return the document, or nil if not found
132
133
  def get_single(typ, opts={})
@@ -5,6 +5,10 @@ module Prismic
5
5
  ['at', fragment, value]
6
6
  end
7
7
 
8
+ def self.not(fragment, value)
9
+ ['not', fragment, value]
10
+ end
11
+
8
12
  def self.in(fragment, value)
9
13
  ['in', fragment, value]
10
14
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  module Prismic
3
3
 
4
- VERSION = '1.4.2'
4
+ VERSION = '1.4.3'
5
5
 
6
6
  end
@@ -143,6 +143,17 @@ describe 'Span' do
143
143
  'Our vanilla Macarons are made with our very own (in-house) <em>pure extract of Madagascar vanilla</em>, and subtly dusted with <strong>our own vanilla sugar</strong> (which we make from real vanilla beans).</p>'
144
144
  end
145
145
  end
146
+ describe 'in structured texts when image with link' do
147
+ before do
148
+ @raw_json_structured_text = File.read("#{File.dirname(__FILE__)}/responses_mocks/structured_text_image_with_link.json")
149
+ @json_structured_text = JSON.load(@raw_json_structured_text)
150
+ @structured_text = Prismic::JsonParser.structured_text_parser(@json_structured_text)
151
+ end
152
+ it 'serializes well into HTML' do
153
+ @structured_text.as_html(nil).should ==
154
+ '<p class="block-img"><a href="http://prismic.io"><img src="https://wroomdev.s3.amazonaws.com/tutoblanktemplate%2F97109f41-140e-4dc9-a2c8-96fb10f14051_star.gif" alt="" width="960" height="800" /></a></p>'
155
+ end
156
+ end
146
157
  end
147
158
 
148
159
  describe 'Text' do
@@ -21,6 +21,17 @@ describe 'predicates' do
21
21
  end
22
22
  end
23
23
 
24
+ describe 'not predicate' do
25
+ it 'as an array serializes well' do
26
+ form = @api.form('everything').query(['not', 'document.id', 'UrjI1gEAALOCeO5i'])
27
+ form.data['q'].should == ['[[:d = not(document.id, "UrjI1gEAALOCeO5i")]]']
28
+ end
29
+ it 'with helper serializes well' do
30
+ form = @api.form('everything').query(Predicates.not('document.id', 'UrjI1gEAALOCeO5i'))
31
+ form.data['q'].should == ['[[:d = not(document.id, "UrjI1gEAALOCeO5i")]]']
32
+ end
33
+ end
34
+
24
35
  describe 'any predicate' do
25
36
  it 'with helper serializes well' do
26
37
  form = @api.form('everything').query(Predicates.any('document.type', ['article', 'blog-post']))
@@ -0,0 +1,21 @@
1
+ {
2
+ "type": "StructuredText",
3
+ "value": [
4
+ {
5
+ "type": "image",
6
+ "url": "https://wroomdev.s3.amazonaws.com/tutoblanktemplate%2F97109f41-140e-4dc9-a2c8-96fb10f14051_star.gif",
7
+ "alt": null,
8
+ "copyright": null,
9
+ "dimensions": {
10
+ "width": 960,
11
+ "height": 800
12
+ },
13
+ "linkTo": {
14
+ "type": "Link.web",
15
+ "value": {
16
+ "url": "http://prismic.io"
17
+ }
18
+ }
19
+ }
20
+ ]
21
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prismic.io
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Étienne Vallette d'Osia
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-12-21 00:00:00.000000000 Z
14
+ date: 2017-01-16 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -224,6 +224,7 @@ files:
224
224
  - spec/responses_mocks/fragments.json
225
225
  - spec/responses_mocks/slices.json
226
226
  - spec/responses_mocks/structured_text_heading.json
227
+ - spec/responses_mocks/structured_text_image_with_link.json
227
228
  - spec/responses_mocks/structured_text_linkfile.json
228
229
  - spec/responses_mocks/structured_text_paragraph.json
229
230
  - spec/responses_mocks/structured_text_with_labels.json
@@ -270,6 +271,7 @@ test_files:
270
271
  - spec/responses_mocks/fragments.json
271
272
  - spec/responses_mocks/slices.json
272
273
  - spec/responses_mocks/structured_text_heading.json
274
+ - spec/responses_mocks/structured_text_image_with_link.json
273
275
  - spec/responses_mocks/structured_text_linkfile.json
274
276
  - spec/responses_mocks/structured_text_paragraph.json
275
277
  - spec/responses_mocks/structured_text_with_labels.json