prismic.io 1.4.2 → 1.4.3

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
  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