prismic.io 1.4.1 → 1.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +1 -1
- data/Gemfile.lock +1 -1
- data/README.md +6 -14
- data/docs/Prismic.html +1074 -0
- data/docs/Prismic/API.html +2987 -0
- data/docs/Prismic/API/BadPrismicResponseError.html +147 -0
- data/docs/Prismic/API/OAuth.html +560 -0
- data/docs/Prismic/API/PrismicWSAuthError.html +375 -0
- data/docs/Prismic/API/PrismicWSConnectionError.html +221 -0
- data/docs/Prismic/BasicNullCache.html +255 -0
- data/docs/Prismic/DefaultHTTPClient.html +350 -0
- data/docs/Prismic/Document.html +873 -0
- data/docs/Prismic/Error.html +418 -0
- data/docs/Prismic/Experiment.html +633 -0
- data/docs/Prismic/Experiments.html +633 -0
- data/docs/Prismic/Field.html +424 -0
- data/docs/Prismic/Form.html +827 -0
- data/docs/Prismic/Fragments.html +117 -0
- data/docs/Prismic/Fragments/Color.html +632 -0
- data/docs/Prismic/Fragments/Date.html +399 -0
- data/docs/Prismic/Fragments/DocumentLink.html +1048 -0
- data/docs/Prismic/Fragments/Embed.html +679 -0
- data/docs/Prismic/Fragments/FileLink.html +604 -0
- data/docs/Prismic/Fragments/Fragment.html +339 -0
- data/docs/Prismic/Fragments/GeoPoint.html +469 -0
- data/docs/Prismic/Fragments/Group.html +710 -0
- data/docs/Prismic/Fragments/GroupDocument.html +382 -0
- data/docs/Prismic/Fragments/Image.html +780 -0
- data/docs/Prismic/Fragments/Image/View.html +759 -0
- data/docs/Prismic/Fragments/Image/ViewDoesNotExistException.html +147 -0
- data/docs/Prismic/Fragments/ImageLink.html +336 -0
- data/docs/Prismic/Fragments/Link.html +412 -0
- data/docs/Prismic/Fragments/Multiple.html +513 -0
- data/docs/Prismic/Fragments/Number.html +401 -0
- data/docs/Prismic/Fragments/Select.html +349 -0
- data/docs/Prismic/Fragments/Separator.html +396 -0
- data/docs/Prismic/Fragments/Slice.html +632 -0
- data/docs/Prismic/Fragments/SliceZone.html +474 -0
- data/docs/Prismic/Fragments/StructuredText.html +664 -0
- data/docs/Prismic/Fragments/StructuredText/Block.html +232 -0
- data/docs/Prismic/Fragments/StructuredText/Block/Embed.html +367 -0
- data/docs/Prismic/Fragments/StructuredText/Block/Heading.html +366 -0
- data/docs/Prismic/Fragments/StructuredText/Block/Image.html +755 -0
- data/docs/Prismic/Fragments/StructuredText/Block/ListItem.html +372 -0
- data/docs/Prismic/Fragments/StructuredText/Block/Paragraph.html +223 -0
- data/docs/Prismic/Fragments/StructuredText/Block/Preformatted.html +223 -0
- data/docs/Prismic/Fragments/StructuredText/Block/Text.html +818 -0
- data/docs/Prismic/Fragments/StructuredText/BlockGroup.html +423 -0
- data/docs/Prismic/Fragments/StructuredText/Span.html +384 -0
- data/docs/Prismic/Fragments/StructuredText/Span/Em.html +213 -0
- data/docs/Prismic/Fragments/StructuredText/Span/Hyperlink.html +359 -0
- data/docs/Prismic/Fragments/StructuredText/Span/Label.html +362 -0
- data/docs/Prismic/Fragments/StructuredText/Span/Strong.html +213 -0
- data/docs/Prismic/Fragments/Text.html +396 -0
- data/docs/Prismic/Fragments/Timestamp.html +399 -0
- data/docs/Prismic/Fragments/WebLink.html +340 -0
- data/docs/Prismic/HtmlSerializer.html +270 -0
- data/docs/Prismic/JsonParser.html +1764 -0
- data/docs/Prismic/LinkResolver.html +399 -0
- data/docs/Prismic/LruCache.html +1140 -0
- data/docs/Prismic/Predicates.html +1630 -0
- data/docs/Prismic/Ref.html +643 -0
- data/docs/Prismic/Response.html +1159 -0
- data/docs/Prismic/SearchForm.html +2172 -0
- data/docs/Prismic/SearchForm/AuthenticationException.html +147 -0
- data/docs/Prismic/SearchForm/AuthorizationException.html +147 -0
- data/docs/Prismic/SearchForm/FormSearchException.html +147 -0
- data/docs/Prismic/SearchForm/NoRefSetException.html +147 -0
- data/docs/Prismic/SearchForm/RefNotFoundException.html +147 -0
- data/docs/Prismic/SearchForm/UnsupportedFormKind.html +147 -0
- data/docs/Prismic/Variation.html +546 -0
- data/docs/Prismic/WithFragments.html +1803 -0
- data/docs/_index.html +752 -0
- data/docs/class_list.html +54 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +57 -0
- data/docs/css/style.css +339 -0
- data/docs/file.README.html +180 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +26 -0
- data/docs/index.html +180 -0
- data/docs/js/app.js +219 -0
- data/docs/js/full_list.js +178 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +2381 -0
- data/docs/top-level-namespace.html +112 -0
- data/lib/prismic.rb +17 -1
- data/lib/prismic/api.rb +31 -19
- data/lib/prismic/fragments/image.rb +6 -0
- data/lib/prismic/json_parsers.rb +2 -0
- data/lib/prismic/version.rb +1 -1
- data/spec/cache_spec.rb +12 -12
- data/spec/json_parsers_spec.rb +10 -5
- data/spec/oauth_spec.rb +3 -3
- data/spec/prismic_spec.rb +7 -7
- data/spec/responses_mocks/api.json +12 -12
- data/spec/responses_mocks/document.json +4 -2
- data/spec/responses_mocks/document_with_unknown_fragment.json +2 -0
- data/spec/responses_mocks/fragments.json +5 -3
- data/spec/responses_mocks/slices.json +2 -0
- data/spec/responses_mocks/structured_text_with_labels.json +2 -2
- data/spec/simple_search_spec.rb +55 -0
- metadata +103 -24
- data/deploy-doc.sh +0 -9
- data/spec/doc_spec.rb +0 -298
- data/spec/lesbonneschoses_spec.rb +0 -228
@@ -0,0 +1,180 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<title>
|
7
|
+
File: README
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.7.4
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
hasFrames = window.top.frames.main ? true : false;
|
19
|
+
relpath = '';
|
20
|
+
framesUrl = "frames.html#!file.README.html";
|
21
|
+
</script>
|
22
|
+
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
27
|
+
|
28
|
+
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="header">
|
32
|
+
<div id="menu">
|
33
|
+
|
34
|
+
<a href="_index.html">Index</a> »
|
35
|
+
<span class="title">File: README</span>
|
36
|
+
|
37
|
+
|
38
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div id="search">
|
42
|
+
|
43
|
+
<a class="full_list_link" id="class_list_link"
|
44
|
+
href="class_list.html">
|
45
|
+
Class List
|
46
|
+
</a>
|
47
|
+
|
48
|
+
<a class="full_list_link" id="method_list_link"
|
49
|
+
href="method_list.html">
|
50
|
+
Method List
|
51
|
+
</a>
|
52
|
+
|
53
|
+
<a class="full_list_link" id="file_list_link"
|
54
|
+
href="file_list.html">
|
55
|
+
File List
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<iframe id="search_frame"></iframe>
|
63
|
+
|
64
|
+
<div id="content"><div id='filecontents'><h2>Ruby development kit for prismic.io</h2>
|
65
|
+
|
66
|
+
<p><a href="http://badge.fury.io/rb/prismic.io"><img src="https://badge.fury.io/rb/prismic.io.png" alt="Gem Version"></a>
|
67
|
+
<a href="https://travis-ci.org/prismicio/ruby-kit"><img src="https://api.travis-ci.org/prismicio/ruby-kit.png" alt="Build Status"></a>
|
68
|
+
<a href="https://codeclimate.com/github/prismicio/ruby-kit"><img src="https://codeclimate.com/github/prismicio/ruby-kit/badges/gpa.svg" alt="Code Climate"></a>
|
69
|
+
<a href="https://codeclimate.com/github/prismicio/ruby-kit"><img src="https://codeclimate.com/github/prismicio/ruby-kit/badges/coverage.svg" alt="Test Coverage"></a></p>
|
70
|
+
|
71
|
+
<h3>Getting Started</h3>
|
72
|
+
|
73
|
+
<p>The prismic kit is compatible with Ruby 1.9.3 or later.</p>
|
74
|
+
|
75
|
+
<h4>Install the kit for your project</h4>
|
76
|
+
|
77
|
+
<p><em>(Assuming that <a href="https://www.ruby-lang.org/en/downloads/">Ruby is installed</a> on your computer, as well as <a href="http://rubygems.org/pages/download">RubyGems</a>)</em></p>
|
78
|
+
|
79
|
+
<p>To install the gem on your computer, run in shell:</p>
|
80
|
+
|
81
|
+
<pre class="code sh"><code class="sh">gem install prismic.io --pre
|
82
|
+
</code></pre>
|
83
|
+
|
84
|
+
<p>then add in your code:
|
85
|
+
<code>ruby
|
86
|
+
require 'prismic'
|
87
|
+
</code></p>
|
88
|
+
|
89
|
+
<p>To add the gem as a dependency to your project with <a href="http://bundler.io/">Bundler</a>, you can add this line in your Gemfile:</p>
|
90
|
+
|
91
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>prismic.io</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='label'>require:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>prismic</span><span class='tstring_end'>'</span></span>
|
92
|
+
</code></pre>
|
93
|
+
|
94
|
+
<h4>Get started with prismic.io</h4>
|
95
|
+
|
96
|
+
<p>You can find out <a href="https://developers.prismic.io/documentation/UjBaQsuvzdIHvE4D/getting-started">how to get started with prismic.io</a> on our <a href="https://developers.prismic.io/">prismic.io developer's portal</a>.</p>
|
97
|
+
|
98
|
+
<h4>Get started using the kit</h4>
|
99
|
+
|
100
|
+
<p>Also on our <a href="https://developers.prismic.io/">prismic.io developer's portal</a>, on top of our full documentation, you will:
|
101
|
+
* get a thorough introduction of <a href="https://developers.prismic.io/documentation/UjBe8bGIJ3EKtgBZ/api-documentation#kits-and-helpers">how to use prismic.io kits</a>, including this one.
|
102
|
+
* see <a href="https://developers.prismic.io/technologies/UjBh6MuvzeMJvE4m/ruby">what else is available for Ruby</a>: starter projects, examples, ...</p>
|
103
|
+
|
104
|
+
<h3>Using the kit</h3>
|
105
|
+
|
106
|
+
<h4>Kit's detailed documentation</h4>
|
107
|
+
|
108
|
+
<p>To get a detailed documentation of the Ruby kit's variables and methods, please check out the <a href="http://rubydoc.info/github/prismicio/ruby-kit/master/frames">prismic.io Ruby kit's documentation</a>.</p>
|
109
|
+
|
110
|
+
<h4>Specific Ruby kit syntax</h4>
|
111
|
+
|
112
|
+
<p>Thanks to Ruby's syntax, this kit contains some mild differences and syntastic sugar over <a href="https://developers.prismic.io/documentation/UjBe8bGIJ3EKtgBZ/api-documentation#kits-and-helpers">the "Kits and helpers" section of our API documentation</a> in general (which you should read first). They are listed here:</p>
|
113
|
+
|
114
|
+
<ul>
|
115
|
+
<li>When calling the API, a faster way to pass the <code>ref</code>: directly as a parameter of the <code>submit</code> method (no need to use the <code>ref</code> method then): <code>api.form("everything").submit(@ref)</code>.</li>
|
116
|
+
<li>Accessing type-dependent fields from a <code>document</code> is done through the <code>[]</code> operator (rather than a <code>get()</code> method). Printing the HTML version of a field therefore looks like <code>document["title_user_friendly"].as_html(link_resolver(@ref))</code>.</li>
|
117
|
+
<li>Two of the fields in the <code>DocumentLink</code> object (the one used to write your <code>link_resolver</code> method, for instance) were renamed to fit Ruby's best practice: <code>doc.type</code> is in fact <code>doc.link_type</code>, and <code>doc.isBroken</code> is in fact <code>doc.broken?</code>.</li>
|
118
|
+
<li>You don't need to pass a <code>ctx</code> object in <code>as_html()</code>, you can use the <code>Prismic.link_resolver</code> static method to build a link resolver object that takes the <code>ref</code> into account, like this: <code>@link_resolver = Prismic.link_resolver(@ref) { |doc| ... }</code>. Then you can simply go: <code>fragment.as_html(@link_resolver)</code>. 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: <code>fragment.as_html(link_resolver(@ref))</code>.</li>
|
119
|
+
<li>the <code>Response</code> class is fit to work with the <a href="https://github.com/amatsuda/kaminari">Kaminari</a> gem. So if you have a <code>@response</code> object in your controller, you can display a whole pagination for it in your view like this: <code><%= paginate @response %></code> (this works with any Rails 3 or 4 app with the Kaminari gem installed).</li>
|
120
|
+
</ul>
|
121
|
+
|
122
|
+
<p>Knowing all that, here is typical code written with the Ruby kit:</p>
|
123
|
+
|
124
|
+
<ul>
|
125
|
+
<li>A typical API object instantiation looks like this: <code>Prismic.api(url, opts)</code></li>
|
126
|
+
<li>A typical querying looks like this: <code>api.form('everything').query('[[:d = at(document.type, "product")]]').submit(@ref)</code></li>
|
127
|
+
<li>A typical fragment manipulation looks like this: <code>doc['article.image'].get_view('icon').url</code></li>
|
128
|
+
<li>A typical fragment serialization to HTML looks like this: <code>doc['article.body'].as_html(@link_resolver)</code></li>
|
129
|
+
</ul>
|
130
|
+
|
131
|
+
<h4>Configuring Alternative API Caches</h4>
|
132
|
+
|
133
|
+
<p>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 <code>api_cache => Prismic::BasicNullCache.new</code>
|
134
|
+
to the options passed to <code>Prismic.api</code>.</p>
|
135
|
+
|
136
|
+
<h3>Changelog</h3>
|
137
|
+
|
138
|
+
<p>Need to see what changed, or to upgrade your kit? We keep our changelog on <a href="https://github.com/prismicio/ruby-kit/releases">this repository's "Releases" tab</a>.</p>
|
139
|
+
|
140
|
+
<h3>Contribute to the kit</h3>
|
141
|
+
|
142
|
+
<p>Contribution is open to all developer levels, read our "<a href="https://developers.prismic.io/documentation/UszOeAEAANUlwFpp/contribute-to-the-official-kits">Contribute to the official kits</a>" documentation to learn more.</p>
|
143
|
+
|
144
|
+
<h4>Install the kit locally</h4>
|
145
|
+
|
146
|
+
<p>Of course, you're going to need <a href="https://www.ruby-lang.org/en/downloads/">Ruby installed</a> on your computer, as well as <a href="http://rubygems.org/pages/download">RubyGems</a> and <a href="http://bundler.io/">Bundler</a>.</p>
|
147
|
+
|
148
|
+
<p>Clone the kit, then run <code>bundle install</code>.</p>
|
149
|
+
|
150
|
+
<h4>Test</h4>
|
151
|
+
|
152
|
+
<p>Please write tests for any bugfix or new feature, by placing your tests in the <a href="spec/">spec/</a> folder, following the <a href="http://rspec.info/">RSpec</a> syntax. Launch the tests by running <code>bundle exec rspec</code></p>
|
153
|
+
|
154
|
+
<p>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.</p>
|
155
|
+
|
156
|
+
<h4>Documentation</h4>
|
157
|
+
|
158
|
+
<p>Please document any bugfix or new feature, using the <a href="http://yardoc.org/">Yard</a> syntax. Don't worry about generating the doc, we'll take care of that.</p>
|
159
|
+
|
160
|
+
<p>If you find existing code that is not optimally documented and wish to make it better, we really appreciate it; but you should document it on its own branch and its own pull request.</p>
|
161
|
+
|
162
|
+
<h3>Licence</h3>
|
163
|
+
|
164
|
+
<p>This software is licensed under the Apache 2 license, quoted below.</p>
|
165
|
+
|
166
|
+
<p>Copyright 2013 Zengularity (<a href="http://www.zengularity.com">http://www.zengularity.com</a>).</p>
|
167
|
+
|
168
|
+
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.</p>
|
169
|
+
|
170
|
+
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>
|
171
|
+
</div></div>
|
172
|
+
|
173
|
+
<div id="footer">
|
174
|
+
Generated on Tue Sep 27 10:47:05 2016 by
|
175
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
176
|
+
0.8.7.4 (ruby-2.0.0).
|
177
|
+
</div>
|
178
|
+
|
179
|
+
</body>
|
180
|
+
</html>
|
data/docs/file_list.html
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
|
7
|
+
<link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
|
8
|
+
|
9
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
14
|
+
|
15
|
+
<script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
|
16
|
+
|
17
|
+
|
18
|
+
<title>File List</title>
|
19
|
+
<base id="base_target" target="_parent" />
|
20
|
+
</head>
|
21
|
+
<body>
|
22
|
+
<script type="text/javascript" charset="utf-8">
|
23
|
+
if (window.top.frames.main) {
|
24
|
+
document.getElementById('base_target').target = 'main';
|
25
|
+
document.body.className = 'frames';
|
26
|
+
}
|
27
|
+
</script>
|
28
|
+
<div id="content">
|
29
|
+
<h1 id="full_list_header">File List</h1>
|
30
|
+
<div id="nav">
|
31
|
+
|
32
|
+
<span><a target="_self" href="class_list.html">
|
33
|
+
Classes
|
34
|
+
</a></span>
|
35
|
+
|
36
|
+
<span><a target="_self" href="method_list.html">
|
37
|
+
Methods
|
38
|
+
</a></span>
|
39
|
+
|
40
|
+
<span><a target="_self" href="file_list.html">
|
41
|
+
Files
|
42
|
+
</a></span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
<div id="search">Search: <input type="text" /></div>
|
46
|
+
|
47
|
+
<ul id="full_list" class="file">
|
48
|
+
|
49
|
+
|
50
|
+
<li class="r1"><span class="object_link"><a href="index.html" title="README">README</a></a></li>
|
51
|
+
|
52
|
+
|
53
|
+
</ul>
|
54
|
+
</div>
|
55
|
+
</body>
|
56
|
+
</html>
|
data/docs/frames.html
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
3
|
+
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
<head>
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
7
|
+
<title>Documentation by YARD 0.8.7.4</title>
|
8
|
+
</head>
|
9
|
+
<script type="text/javascript" charset="utf-8">
|
10
|
+
window.onload = function() {
|
11
|
+
var match = unescape(window.location.hash).match(/^#!(.+)/);
|
12
|
+
var name = match ? match[1] : 'index.html';
|
13
|
+
name = name.replace(/^(\w+):\/\//, '').replace(/^\/\//, '');
|
14
|
+
document.writeln('<frameset cols="20%,*">' +
|
15
|
+
'<frame name="list" src="class_list.html" />' +
|
16
|
+
'<frame name="main" src="' + escape(name) + '" />' +
|
17
|
+
'</frameset>');
|
18
|
+
}
|
19
|
+
</script>
|
20
|
+
<noscript>
|
21
|
+
<frameset cols="20%,*">
|
22
|
+
<frame name="list" src="class_list.html" />
|
23
|
+
<frame name="main" src="index.html" />
|
24
|
+
</frameset>
|
25
|
+
</noscript>
|
26
|
+
</html>
|
data/docs/index.html
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<title>
|
7
|
+
File: README
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.7.4
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
hasFrames = window.top.frames.main ? true : false;
|
19
|
+
relpath = '';
|
20
|
+
framesUrl = "frames.html#!file.README.html";
|
21
|
+
</script>
|
22
|
+
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
27
|
+
|
28
|
+
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="header">
|
32
|
+
<div id="menu">
|
33
|
+
|
34
|
+
<a href="_index.html">Index</a> »
|
35
|
+
<span class="title">File: README</span>
|
36
|
+
|
37
|
+
|
38
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div id="search">
|
42
|
+
|
43
|
+
<a class="full_list_link" id="class_list_link"
|
44
|
+
href="class_list.html">
|
45
|
+
Class List
|
46
|
+
</a>
|
47
|
+
|
48
|
+
<a class="full_list_link" id="method_list_link"
|
49
|
+
href="method_list.html">
|
50
|
+
Method List
|
51
|
+
</a>
|
52
|
+
|
53
|
+
<a class="full_list_link" id="file_list_link"
|
54
|
+
href="file_list.html">
|
55
|
+
File List
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<iframe id="search_frame"></iframe>
|
63
|
+
|
64
|
+
<div id="content"><div id='filecontents'><h2>Ruby development kit for prismic.io</h2>
|
65
|
+
|
66
|
+
<p><a href="http://badge.fury.io/rb/prismic.io"><img src="https://badge.fury.io/rb/prismic.io.png" alt="Gem Version"></a>
|
67
|
+
<a href="https://travis-ci.org/prismicio/ruby-kit"><img src="https://api.travis-ci.org/prismicio/ruby-kit.png" alt="Build Status"></a>
|
68
|
+
<a href="https://codeclimate.com/github/prismicio/ruby-kit"><img src="https://codeclimate.com/github/prismicio/ruby-kit/badges/gpa.svg" alt="Code Climate"></a>
|
69
|
+
<a href="https://codeclimate.com/github/prismicio/ruby-kit"><img src="https://codeclimate.com/github/prismicio/ruby-kit/badges/coverage.svg" alt="Test Coverage"></a></p>
|
70
|
+
|
71
|
+
<h3>Getting Started</h3>
|
72
|
+
|
73
|
+
<p>The prismic kit is compatible with Ruby 1.9.3 or later.</p>
|
74
|
+
|
75
|
+
<h4>Install the kit for your project</h4>
|
76
|
+
|
77
|
+
<p><em>(Assuming that <a href="https://www.ruby-lang.org/en/downloads/">Ruby is installed</a> on your computer, as well as <a href="http://rubygems.org/pages/download">RubyGems</a>)</em></p>
|
78
|
+
|
79
|
+
<p>To install the gem on your computer, run in shell:</p>
|
80
|
+
|
81
|
+
<pre class="code sh"><code class="sh">gem install prismic.io --pre
|
82
|
+
</code></pre>
|
83
|
+
|
84
|
+
<p>then add in your code:
|
85
|
+
<code>ruby
|
86
|
+
require 'prismic'
|
87
|
+
</code></p>
|
88
|
+
|
89
|
+
<p>To add the gem as a dependency to your project with <a href="http://bundler.io/">Bundler</a>, you can add this line in your Gemfile:</p>
|
90
|
+
|
91
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>prismic.io</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='label'>require:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>prismic</span><span class='tstring_end'>'</span></span>
|
92
|
+
</code></pre>
|
93
|
+
|
94
|
+
<h4>Get started with prismic.io</h4>
|
95
|
+
|
96
|
+
<p>You can find out <a href="https://developers.prismic.io/documentation/UjBaQsuvzdIHvE4D/getting-started">how to get started with prismic.io</a> on our <a href="https://developers.prismic.io/">prismic.io developer's portal</a>.</p>
|
97
|
+
|
98
|
+
<h4>Get started using the kit</h4>
|
99
|
+
|
100
|
+
<p>Also on our <a href="https://developers.prismic.io/">prismic.io developer's portal</a>, on top of our full documentation, you will:
|
101
|
+
* get a thorough introduction of <a href="https://developers.prismic.io/documentation/UjBe8bGIJ3EKtgBZ/api-documentation#kits-and-helpers">how to use prismic.io kits</a>, including this one.
|
102
|
+
* see <a href="https://developers.prismic.io/technologies/UjBh6MuvzeMJvE4m/ruby">what else is available for Ruby</a>: starter projects, examples, ...</p>
|
103
|
+
|
104
|
+
<h3>Using the kit</h3>
|
105
|
+
|
106
|
+
<h4>Kit's detailed documentation</h4>
|
107
|
+
|
108
|
+
<p>To get a detailed documentation of the Ruby kit's variables and methods, please check out the <a href="http://rubydoc.info/github/prismicio/ruby-kit/master/frames">prismic.io Ruby kit's documentation</a>.</p>
|
109
|
+
|
110
|
+
<h4>Specific Ruby kit syntax</h4>
|
111
|
+
|
112
|
+
<p>Thanks to Ruby's syntax, this kit contains some mild differences and syntastic sugar over <a href="https://developers.prismic.io/documentation/UjBe8bGIJ3EKtgBZ/api-documentation#kits-and-helpers">the "Kits and helpers" section of our API documentation</a> in general (which you should read first). They are listed here:</p>
|
113
|
+
|
114
|
+
<ul>
|
115
|
+
<li>When calling the API, a faster way to pass the <code>ref</code>: directly as a parameter of the <code>submit</code> method (no need to use the <code>ref</code> method then): <code>api.form("everything").submit(@ref)</code>.</li>
|
116
|
+
<li>Accessing type-dependent fields from a <code>document</code> is done through the <code>[]</code> operator (rather than a <code>get()</code> method). Printing the HTML version of a field therefore looks like <code>document["title_user_friendly"].as_html(link_resolver(@ref))</code>.</li>
|
117
|
+
<li>Two of the fields in the <code>DocumentLink</code> object (the one used to write your <code>link_resolver</code> method, for instance) were renamed to fit Ruby's best practice: <code>doc.type</code> is in fact <code>doc.link_type</code>, and <code>doc.isBroken</code> is in fact <code>doc.broken?</code>.</li>
|
118
|
+
<li>You don't need to pass a <code>ctx</code> object in <code>as_html()</code>, you can use the <code>Prismic.link_resolver</code> static method to build a link resolver object that takes the <code>ref</code> into account, like this: <code>@link_resolver = Prismic.link_resolver(@ref) { |doc| ... }</code>. Then you can simply go: <code>fragment.as_html(@link_resolver)</code>. 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: <code>fragment.as_html(link_resolver(@ref))</code>.</li>
|
119
|
+
<li>the <code>Response</code> class is fit to work with the <a href="https://github.com/amatsuda/kaminari">Kaminari</a> gem. So if you have a <code>@response</code> object in your controller, you can display a whole pagination for it in your view like this: <code><%= paginate @response %></code> (this works with any Rails 3 or 4 app with the Kaminari gem installed).</li>
|
120
|
+
</ul>
|
121
|
+
|
122
|
+
<p>Knowing all that, here is typical code written with the Ruby kit:</p>
|
123
|
+
|
124
|
+
<ul>
|
125
|
+
<li>A typical API object instantiation looks like this: <code>Prismic.api(url, opts)</code></li>
|
126
|
+
<li>A typical querying looks like this: <code>api.form('everything').query('[[:d = at(document.type, "product")]]').submit(@ref)</code></li>
|
127
|
+
<li>A typical fragment manipulation looks like this: <code>doc['article.image'].get_view('icon').url</code></li>
|
128
|
+
<li>A typical fragment serialization to HTML looks like this: <code>doc['article.body'].as_html(@link_resolver)</code></li>
|
129
|
+
</ul>
|
130
|
+
|
131
|
+
<h4>Configuring Alternative API Caches</h4>
|
132
|
+
|
133
|
+
<p>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 <code>api_cache => Prismic::BasicNullCache.new</code>
|
134
|
+
to the options passed to <code>Prismic.api</code>.</p>
|
135
|
+
|
136
|
+
<h3>Changelog</h3>
|
137
|
+
|
138
|
+
<p>Need to see what changed, or to upgrade your kit? We keep our changelog on <a href="https://github.com/prismicio/ruby-kit/releases">this repository's "Releases" tab</a>.</p>
|
139
|
+
|
140
|
+
<h3>Contribute to the kit</h3>
|
141
|
+
|
142
|
+
<p>Contribution is open to all developer levels, read our "<a href="https://developers.prismic.io/documentation/UszOeAEAANUlwFpp/contribute-to-the-official-kits">Contribute to the official kits</a>" documentation to learn more.</p>
|
143
|
+
|
144
|
+
<h4>Install the kit locally</h4>
|
145
|
+
|
146
|
+
<p>Of course, you're going to need <a href="https://www.ruby-lang.org/en/downloads/">Ruby installed</a> on your computer, as well as <a href="http://rubygems.org/pages/download">RubyGems</a> and <a href="http://bundler.io/">Bundler</a>.</p>
|
147
|
+
|
148
|
+
<p>Clone the kit, then run <code>bundle install</code>.</p>
|
149
|
+
|
150
|
+
<h4>Test</h4>
|
151
|
+
|
152
|
+
<p>Please write tests for any bugfix or new feature, by placing your tests in the <a href="spec/">spec/</a> folder, following the <a href="http://rspec.info/">RSpec</a> syntax. Launch the tests by running <code>bundle exec rspec</code></p>
|
153
|
+
|
154
|
+
<p>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.</p>
|
155
|
+
|
156
|
+
<h4>Documentation</h4>
|
157
|
+
|
158
|
+
<p>Please document any bugfix or new feature, using the <a href="http://yardoc.org/">Yard</a> syntax. Don't worry about generating the doc, we'll take care of that.</p>
|
159
|
+
|
160
|
+
<p>If you find existing code that is not optimally documented and wish to make it better, we really appreciate it; but you should document it on its own branch and its own pull request.</p>
|
161
|
+
|
162
|
+
<h3>Licence</h3>
|
163
|
+
|
164
|
+
<p>This software is licensed under the Apache 2 license, quoted below.</p>
|
165
|
+
|
166
|
+
<p>Copyright 2013 Zengularity (<a href="http://www.zengularity.com">http://www.zengularity.com</a>).</p>
|
167
|
+
|
168
|
+
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>.</p>
|
169
|
+
|
170
|
+
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>
|
171
|
+
</div></div>
|
172
|
+
|
173
|
+
<div id="footer">
|
174
|
+
Generated on Tue Sep 27 10:47:05 2016 by
|
175
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
176
|
+
0.8.7.4 (ruby-2.0.0).
|
177
|
+
</div>
|
178
|
+
|
179
|
+
</body>
|
180
|
+
</html>
|
data/docs/js/app.js
ADDED
@@ -0,0 +1,219 @@
|
|
1
|
+
function createSourceLinks() {
|
2
|
+
$('.method_details_list .source_code').
|
3
|
+
before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
|
4
|
+
$('.toggleSource').toggle(function() {
|
5
|
+
$(this).parent().nextAll('.source_code').slideDown(100);
|
6
|
+
$(this).text("Hide source");
|
7
|
+
},
|
8
|
+
function() {
|
9
|
+
$(this).parent().nextAll('.source_code').slideUp(100);
|
10
|
+
$(this).text("View source");
|
11
|
+
});
|
12
|
+
}
|
13
|
+
|
14
|
+
function createDefineLinks() {
|
15
|
+
var tHeight = 0;
|
16
|
+
$('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
|
17
|
+
$('.toggleDefines').toggle(function() {
|
18
|
+
tHeight = $(this).parent().prev().height();
|
19
|
+
$(this).prev().show();
|
20
|
+
$(this).parent().prev().height($(this).parent().height());
|
21
|
+
$(this).text("(less)");
|
22
|
+
},
|
23
|
+
function() {
|
24
|
+
$(this).prev().hide();
|
25
|
+
$(this).parent().prev().height(tHeight);
|
26
|
+
$(this).text("more...");
|
27
|
+
});
|
28
|
+
}
|
29
|
+
|
30
|
+
function createFullTreeLinks() {
|
31
|
+
var tHeight = 0;
|
32
|
+
$('.inheritanceTree').toggle(function() {
|
33
|
+
tHeight = $(this).parent().prev().height();
|
34
|
+
$(this).parent().toggleClass('showAll');
|
35
|
+
$(this).text("(hide)");
|
36
|
+
$(this).parent().prev().height($(this).parent().height());
|
37
|
+
},
|
38
|
+
function() {
|
39
|
+
$(this).parent().toggleClass('showAll');
|
40
|
+
$(this).parent().prev().height(tHeight);
|
41
|
+
$(this).text("show all");
|
42
|
+
});
|
43
|
+
}
|
44
|
+
|
45
|
+
function fixBoxInfoHeights() {
|
46
|
+
$('dl.box dd.r1, dl.box dd.r2').each(function() {
|
47
|
+
$(this).prev().height($(this).height());
|
48
|
+
});
|
49
|
+
}
|
50
|
+
|
51
|
+
function searchFrameLinks() {
|
52
|
+
$('.full_list_link').click(function() {
|
53
|
+
toggleSearchFrame(this, $(this).attr('href'));
|
54
|
+
return false;
|
55
|
+
});
|
56
|
+
}
|
57
|
+
|
58
|
+
function toggleSearchFrame(id, link) {
|
59
|
+
var frame = $('#search_frame');
|
60
|
+
$('#search a').removeClass('active').addClass('inactive');
|
61
|
+
if (frame.attr('src') == link && frame.css('display') != "none") {
|
62
|
+
frame.slideUp(100);
|
63
|
+
$('#search a').removeClass('active inactive');
|
64
|
+
}
|
65
|
+
else {
|
66
|
+
$(id).addClass('active').removeClass('inactive');
|
67
|
+
frame.attr('src', link).slideDown(100);
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
function linkSummaries() {
|
72
|
+
$('.summary_signature').click(function() {
|
73
|
+
document.location = $(this).find('a').attr('href');
|
74
|
+
});
|
75
|
+
}
|
76
|
+
|
77
|
+
function framesInit() {
|
78
|
+
if (hasFrames) {
|
79
|
+
document.body.className = 'frames';
|
80
|
+
$('#menu .noframes a').attr('href', document.location);
|
81
|
+
try {
|
82
|
+
window.top.document.title = $('html head title').text();
|
83
|
+
} catch(error) {
|
84
|
+
// some browsers will not allow this when serving from file://
|
85
|
+
// but we don't want to stop the world.
|
86
|
+
}
|
87
|
+
}
|
88
|
+
else {
|
89
|
+
$('#menu .noframes a').text('frames').attr('href', framesUrl);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
function keyboardShortcuts() {
|
94
|
+
if (window.top.frames.main) return;
|
95
|
+
$(document).keypress(function(evt) {
|
96
|
+
if (evt.altKey || evt.ctrlKey || evt.metaKey || evt.shiftKey) return;
|
97
|
+
if (typeof evt.target !== "undefined" &&
|
98
|
+
(evt.target.nodeName == "INPUT" ||
|
99
|
+
evt.target.nodeName == "TEXTAREA")) return;
|
100
|
+
switch (evt.charCode) {
|
101
|
+
case 67: case 99: $('#class_list_link').click(); break; // 'c'
|
102
|
+
case 77: case 109: $('#method_list_link').click(); break; // 'm'
|
103
|
+
case 70: case 102: $('#file_list_link').click(); break; // 'f'
|
104
|
+
default: break;
|
105
|
+
}
|
106
|
+
});
|
107
|
+
}
|
108
|
+
|
109
|
+
function summaryToggle() {
|
110
|
+
$('.summary_toggle').click(function() {
|
111
|
+
if (localStorage) {
|
112
|
+
localStorage.summaryCollapsed = $(this).text();
|
113
|
+
}
|
114
|
+
$('.summary_toggle').each(function() {
|
115
|
+
$(this).text($(this).text() == "collapse" ? "expand" : "collapse");
|
116
|
+
var next = $(this).parent().parent().nextAll('ul.summary').first();
|
117
|
+
if (next.hasClass('compact')) {
|
118
|
+
next.toggle();
|
119
|
+
next.nextAll('ul.summary').first().toggle();
|
120
|
+
}
|
121
|
+
else if (next.hasClass('summary')) {
|
122
|
+
var list = $('<ul class="summary compact" />');
|
123
|
+
list.html(next.html());
|
124
|
+
list.find('.summary_desc, .note').remove();
|
125
|
+
list.find('a').each(function() {
|
126
|
+
$(this).html($(this).find('strong').html());
|
127
|
+
$(this).parent().html($(this)[0].outerHTML);
|
128
|
+
});
|
129
|
+
next.before(list);
|
130
|
+
next.toggle();
|
131
|
+
}
|
132
|
+
});
|
133
|
+
return false;
|
134
|
+
});
|
135
|
+
if (localStorage) {
|
136
|
+
if (localStorage.summaryCollapsed == "collapse") {
|
137
|
+
$('.summary_toggle').first().click();
|
138
|
+
}
|
139
|
+
else localStorage.summaryCollapsed = "expand";
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
function fixOutsideWorldLinks() {
|
144
|
+
$('a').each(function() {
|
145
|
+
if (window.location.host != this.host) this.target = '_parent';
|
146
|
+
});
|
147
|
+
}
|
148
|
+
|
149
|
+
function generateTOC() {
|
150
|
+
if ($('#filecontents').length === 0) return;
|
151
|
+
var _toc = $('<ol class="top"></ol>');
|
152
|
+
var show = false;
|
153
|
+
var toc = _toc;
|
154
|
+
var counter = 0;
|
155
|
+
var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
|
156
|
+
var i;
|
157
|
+
if ($('#filecontents h1').length > 1) tags.unshift('h1');
|
158
|
+
for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
|
159
|
+
var lastTag = parseInt(tags[0][1], 10);
|
160
|
+
$(tags.join(', ')).each(function() {
|
161
|
+
if ($(this).parents('.method_details .docstring').length != 0) return;
|
162
|
+
if (this.id == "filecontents") return;
|
163
|
+
show = true;
|
164
|
+
var thisTag = parseInt(this.tagName[1], 10);
|
165
|
+
if (this.id.length === 0) {
|
166
|
+
var proposedId = $(this).attr('toc-id');
|
167
|
+
if (typeof(proposedId) != "undefined") this.id = proposedId;
|
168
|
+
else {
|
169
|
+
var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
|
170
|
+
if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
|
171
|
+
this.id = proposedId;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
if (thisTag > lastTag) {
|
175
|
+
for (i = 0; i < thisTag - lastTag; i++) {
|
176
|
+
var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
|
177
|
+
}
|
178
|
+
}
|
179
|
+
if (thisTag < lastTag) {
|
180
|
+
for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
|
181
|
+
}
|
182
|
+
var title = $(this).attr('toc-title');
|
183
|
+
if (typeof(title) == "undefined") title = $(this).text();
|
184
|
+
toc.append('<li><a href="#' + this.id + '">' + title + '</a></li>');
|
185
|
+
lastTag = thisTag;
|
186
|
+
});
|
187
|
+
if (!show) return;
|
188
|
+
html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
|
189
|
+
$('#content').prepend(html);
|
190
|
+
$('#toc').append(_toc);
|
191
|
+
$('#toc .hide_toc').toggle(function() {
|
192
|
+
$('#toc .top').slideUp('fast');
|
193
|
+
$('#toc').toggleClass('hidden');
|
194
|
+
$('#toc .title small').toggle();
|
195
|
+
}, function() {
|
196
|
+
$('#toc .top').slideDown('fast');
|
197
|
+
$('#toc').toggleClass('hidden');
|
198
|
+
$('#toc .title small').toggle();
|
199
|
+
});
|
200
|
+
$('#toc .float_toc').toggle(function() {
|
201
|
+
$(this).text('float');
|
202
|
+
$('#toc').toggleClass('nofloat');
|
203
|
+
}, function() {
|
204
|
+
$(this).text('left');
|
205
|
+
$('#toc').toggleClass('nofloat');
|
206
|
+
});
|
207
|
+
}
|
208
|
+
|
209
|
+
$(framesInit);
|
210
|
+
$(createSourceLinks);
|
211
|
+
$(createDefineLinks);
|
212
|
+
$(createFullTreeLinks);
|
213
|
+
$(fixBoxInfoHeights);
|
214
|
+
$(searchFrameLinks);
|
215
|
+
$(linkSummaries);
|
216
|
+
$(keyboardShortcuts);
|
217
|
+
$(summaryToggle);
|
218
|
+
$(fixOutsideWorldLinks);
|
219
|
+
$(generateTOC);
|