pincerna 1.1.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 +7 -0
- data/.gitignore +7 -0
- data/.rubocop.yml +77 -0
- data/.travis-gemfile +17 -0
- data/.travis.yml +7 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +23 -0
- data/LICENSE.md +21 -0
- data/README.md +211 -0
- data/Rakefile +45 -0
- data/bin/pincernad +56 -0
- data/docs/Pincerna.html +130 -0
- data/docs/Pincerna/Base.html +3051 -0
- data/docs/Pincerna/Bookmark.html +523 -0
- data/docs/Pincerna/Cache.html +767 -0
- data/docs/Pincerna/ChromeBookmark.html +308 -0
- data/docs/Pincerna/CurrencyConversion.html +589 -0
- data/docs/Pincerna/FirefoxBookmark.html +328 -0
- data/docs/Pincerna/Ip.html +1017 -0
- data/docs/Pincerna/Map.html +399 -0
- data/docs/Pincerna/SafariBookmark.html +308 -0
- data/docs/Pincerna/Server.html +673 -0
- data/docs/Pincerna/Translation.html +517 -0
- data/docs/Pincerna/UnitConversion.html +1042 -0
- data/docs/Pincerna/Version.html +189 -0
- data/docs/Pincerna/Vpn.html +561 -0
- data/docs/Pincerna/Weather.html +837 -0
- data/docs/_index.html +298 -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 +338 -0
- data/docs/file.README.html +327 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +28 -0
- data/docs/index.html +327 -0
- data/docs/js/app.js +214 -0
- data/docs/js/full_list.js +178 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +389 -0
- data/docs/top-level-namespace.html +112 -0
- data/icon.png +0 -0
- data/images/chrome.png +0 -0
- data/images/currency.png +0 -0
- data/images/firefox.png +0 -0
- data/images/map.png +0 -0
- data/images/network.png +0 -0
- data/images/safari.png +0 -0
- data/images/translate.png +0 -0
- data/images/unit.png +0 -0
- data/images/vpn.png +0 -0
- data/images/weather.png +0 -0
- data/info.plist +961 -0
- data/it.cowtech.pincernad.plist +19 -0
- data/lib/pincerna.rb +30 -0
- data/lib/pincerna/base.rb +258 -0
- data/lib/pincerna/bookmark.rb +80 -0
- data/lib/pincerna/cache.rb +61 -0
- data/lib/pincerna/chrome_bookmark.rb +40 -0
- data/lib/pincerna/currency_conversion.rb +134 -0
- data/lib/pincerna/firefox_bookmark.rb +92 -0
- data/lib/pincerna/ip.rb +135 -0
- data/lib/pincerna/map.rb +30 -0
- data/lib/pincerna/safari_bookmark.rb +40 -0
- data/lib/pincerna/server.rb +85 -0
- data/lib/pincerna/translation.rb +67 -0
- data/lib/pincerna/unit_conversion.rb +120 -0
- data/lib/pincerna/version.rb +24 -0
- data/lib/pincerna/vpn.rb +74 -0
- data/lib/pincerna/weather.rb +188 -0
- data/pincerna.alfredworkflow +0 -0
- data/pincerna.gemspec +36 -0
- data/pincerna.sh +9 -0
- data/spec/cassettes/Pincerna_CurrencyConversion/_perform_filtering/should_return_valid_values.yml +38 -0
- data/spec/cassettes/Pincerna_Ip/_get_local_addresses/should_return_a_list_of_addresses.yml +47 -0
- data/spec/cassettes/Pincerna_Ip/_get_public_address/should_return_public_IP_address.yml +44 -0
- data/spec/cassettes/Pincerna_Translation/_perform_filtering/should_default_from_English_to_the_given_language_when_only_one_is_present.yml +124 -0
- data/spec/cassettes/Pincerna_Translation/_perform_filtering/should_query_Google_Translate_for_sentences_returning_no_alternatives.yml +51 -0
- data/spec/cassettes/Pincerna_Translation/_perform_filtering/should_query_Google_Translate_for_single_words.yml +71 -0
- data/spec/cassettes/Pincerna_Weather/_get_forecast/should_append_name.yml +177 -0
- data/spec/cassettes/Pincerna_Weather/_get_forecast/should_get_correct_forecasts.yml +339 -0
- data/spec/cassettes/Pincerna_Weather/_lookup_places/should_return_an_existing_WOEID_without_making_any_request.yml +56 -0
- data/spec/cassettes/Pincerna_Weather/_lookup_places/should_search_for_places.yml +189 -0
- data/spec/cassettes/Pincerna_Weather/_perform_filtering/should_get_forecast.yml +56 -0
- data/spec/coverage_helper.rb +44 -0
- data/spec/pincerna/base_spec.rb +166 -0
- data/spec/pincerna/bookmark_spec.rb +65 -0
- data/spec/pincerna/cache_spec.rb +88 -0
- data/spec/pincerna/chrome_bookmark_spec.rb +114 -0
- data/spec/pincerna/currency_conversion_spec.rb +46 -0
- data/spec/pincerna/firefox_bookmark_spec.rb +46 -0
- data/spec/pincerna/ip_spec.rb +194 -0
- data/spec/pincerna/map_spec.rb +24 -0
- data/spec/pincerna/safari_bookmark_spec.rb +237 -0
- data/spec/pincerna/server_spec.rb +108 -0
- data/spec/pincerna/translation_spec.rb +55 -0
- data/spec/pincerna/unit_conversion_spec.rb +98 -0
- data/spec/pincerna/vpn_spec.rb +68 -0
- data/spec/pincerna/weather_spec.rb +131 -0
- data/spec/spec_helper.rb +48 -0
- metadata +283 -0
|
@@ -0,0 +1,767 @@
|
|
|
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
|
+
Class: Pincerna::Cache
|
|
8
|
+
|
|
9
|
+
— Documentation by YARD 0.8.7
|
|
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#!" + escape(window.location.href);
|
|
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 (C)</a> »
|
|
35
|
+
<span class='title'><span class='object_link'><a href="../Pincerna.html" title="Pincerna (module)">Pincerna</a></span></span>
|
|
36
|
+
»
|
|
37
|
+
<span class="title">Cache</span>
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<div id="search">
|
|
44
|
+
|
|
45
|
+
<a class="full_list_link" id="class_list_link"
|
|
46
|
+
href="../class_list.html">
|
|
47
|
+
Class List
|
|
48
|
+
</a>
|
|
49
|
+
|
|
50
|
+
<a class="full_list_link" id="method_list_link"
|
|
51
|
+
href="../method_list.html">
|
|
52
|
+
Method List
|
|
53
|
+
</a>
|
|
54
|
+
|
|
55
|
+
<a class="full_list_link" id="file_list_link"
|
|
56
|
+
href="../file_list.html">
|
|
57
|
+
File List
|
|
58
|
+
</a>
|
|
59
|
+
|
|
60
|
+
</div>
|
|
61
|
+
<div class="clear"></div>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<iframe id="search_frame"></iframe>
|
|
65
|
+
|
|
66
|
+
<div id="content"><h1>Class: Pincerna::Cache
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
</h1>
|
|
71
|
+
|
|
72
|
+
<dl class="box">
|
|
73
|
+
|
|
74
|
+
<dt class="r1">Inherits:</dt>
|
|
75
|
+
<dd class="r1">
|
|
76
|
+
<span class="inheritName">Object</span>
|
|
77
|
+
|
|
78
|
+
<ul class="fullTree">
|
|
79
|
+
<li>Object</li>
|
|
80
|
+
|
|
81
|
+
<li class="next">Pincerna::Cache</li>
|
|
82
|
+
|
|
83
|
+
</ul>
|
|
84
|
+
<a href="#" class="inheritanceTree">show all</a>
|
|
85
|
+
|
|
86
|
+
</dd>
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
<dt class="r2 last">Defined in:</dt>
|
|
97
|
+
<dd class="r2 last">lib/pincerna/cache.rb</dd>
|
|
98
|
+
|
|
99
|
+
</dl>
|
|
100
|
+
<div class="clear"></div>
|
|
101
|
+
|
|
102
|
+
<h2>Overview</h2><div class="docstring">
|
|
103
|
+
<div class="discussion">
|
|
104
|
+
<p>A utility class to handle caching.</p>
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
<div class="tags">
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
</div>
|
|
113
|
+
<h2>Constant Summary</h2>
|
|
114
|
+
|
|
115
|
+
<dl class="constants">
|
|
116
|
+
|
|
117
|
+
<dt id="EXPIRATIONS-constant" class="">EXPIRATIONS =
|
|
118
|
+
<div class="docstring">
|
|
119
|
+
<div class="discussion">
|
|
120
|
+
<p>Expiration of keys.</p>
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
<div class="tags">
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
</div>
|
|
129
|
+
</dt>
|
|
130
|
+
<dd><pre class="code"><span class='lbrace'>{</span><span class='label'>short:</span> <span class='int'>1800</span><span class='comma'>,</span> <span class='label'>long:</span> <span class='int'>2592000</span><span class='rbrace'>}</span></pre></dd>
|
|
131
|
+
|
|
132
|
+
<dt id="FILE-constant" class="">FILE =
|
|
133
|
+
<div class="docstring">
|
|
134
|
+
<div class="discussion">
|
|
135
|
+
<p>Location of the cache file</p>
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
<div class="tags">
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
</div>
|
|
144
|
+
</dt>
|
|
145
|
+
<dd><pre class="code"><span class='const'>Pincerna</span><span class='op'>::</span><span class='const'>Base</span><span class='op'>::</span><span class='const'>CACHE_ROOT</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>/cache.db</span><span class='tstring_end'>"</span></span></pre></dd>
|
|
146
|
+
|
|
147
|
+
</dl>
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
<h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
|
|
154
|
+
<ul class="summary">
|
|
155
|
+
|
|
156
|
+
<li class="public ">
|
|
157
|
+
<span class="summary_signature">
|
|
158
|
+
|
|
159
|
+
<a href="#data-instance_method" title="#data (instance method)">- (Daybreak::DB) <strong>data</strong> </a>
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
</span>
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
<span class="note title readonly">readonly</span>
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
<span class="summary_desc"><div class='inline'><p>The cache store.</p>
|
|
179
|
+
</div></span>
|
|
180
|
+
|
|
181
|
+
</li>
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
</ul>
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
<h2>
|
|
191
|
+
Class Method Summary
|
|
192
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
|
193
|
+
</h2>
|
|
194
|
+
|
|
195
|
+
<ul class="summary">
|
|
196
|
+
|
|
197
|
+
<li class="public ">
|
|
198
|
+
<span class="summary_signature">
|
|
199
|
+
|
|
200
|
+
<a href="#instance-class_method" title="instance (class method)">+ (Object) <strong>instance</strong> </a>
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
</span>
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
<span class="summary_desc"><div class='inline'><p>Returns the instance of the cache.</p>
|
|
215
|
+
</div></span>
|
|
216
|
+
|
|
217
|
+
</li>
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
</ul>
|
|
221
|
+
|
|
222
|
+
<h2>
|
|
223
|
+
Instance Method Summary
|
|
224
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
|
225
|
+
</h2>
|
|
226
|
+
|
|
227
|
+
<ul class="summary">
|
|
228
|
+
|
|
229
|
+
<li class="public ">
|
|
230
|
+
<span class="summary_signature">
|
|
231
|
+
|
|
232
|
+
<a href="#destroy-instance_method" title="#destroy (instance method)">- (Object) <strong>destroy</strong> </a>
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
</span>
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
<span class="summary_desc"><div class='inline'><p>Closes the cache data.</p>
|
|
247
|
+
</div></span>
|
|
248
|
+
|
|
249
|
+
</li>
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
<li class="public ">
|
|
253
|
+
<span class="summary_signature">
|
|
254
|
+
|
|
255
|
+
<a href="#flush-instance_method" title="#flush (instance method)">- (Object) <strong>flush</strong> </a>
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
</span>
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
<span class="summary_desc"><div class='inline'><p>Flush data into disk.</p>
|
|
270
|
+
</div></span>
|
|
271
|
+
|
|
272
|
+
</li>
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
<li class="public ">
|
|
276
|
+
<span class="summary_signature">
|
|
277
|
+
|
|
278
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">- (Cache) <strong>initialize</strong> </a>
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
</span>
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
<span class="note title constructor">constructor</span>
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
<span class="summary_desc"><div class='inline'><p>Creates a new cache object.</p>
|
|
295
|
+
</div></span>
|
|
296
|
+
|
|
297
|
+
</li>
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
<li class="public ">
|
|
301
|
+
<span class="summary_signature">
|
|
302
|
+
|
|
303
|
+
<a href="#use-instance_method" title="#use (instance method)">- (Object) <strong>use</strong>(key, expiration) </a>
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
</span>
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
<span class="summary_desc"><div class='inline'><p>Use data from cache or fetches new data.</p>
|
|
318
|
+
</div></span>
|
|
319
|
+
|
|
320
|
+
</li>
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
</ul>
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
<div id="constructor_details" class="method_details_list">
|
|
327
|
+
<h2>Constructor Details</h2>
|
|
328
|
+
|
|
329
|
+
<div class="method_details first">
|
|
330
|
+
<h3 class="signature first" id="initialize-instance_method">
|
|
331
|
+
|
|
332
|
+
- (<tt><span class='object_link'><a href="" title="Pincerna::Cache (class)">Cache</a></span></tt>) <strong>initialize</strong>
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
</h3><div class="docstring">
|
|
339
|
+
<div class="discussion">
|
|
340
|
+
<p>Creates a new cache object.</p>
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
</div>
|
|
344
|
+
</div>
|
|
345
|
+
<div class="tags">
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
</div><table class="source_code">
|
|
349
|
+
<tr>
|
|
350
|
+
<td>
|
|
351
|
+
<pre class="lines">
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
27
|
|
355
|
+
28
|
|
356
|
+
29
|
|
357
|
+
30
|
|
358
|
+
31</pre>
|
|
359
|
+
</td>
|
|
360
|
+
<td>
|
|
361
|
+
<pre class="code"><span class="info file"># File 'lib/pincerna/cache.rb', line 27</span>
|
|
362
|
+
|
|
363
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
|
|
364
|
+
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='const'>FILE</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
365
|
+
<span class='ivar'>@data</span> <span class='op'>=</span> <span class='const'>Daybreak</span><span class='op'>::</span><span class='const'>DB</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>FILE</span><span class='rparen'>)</span>
|
|
366
|
+
<span class='ivar'>@flusher</span> <span class='op'>=</span> <span class='const'>EM</span><span class='period'>.</span><span class='id identifier rubyid_add_periodic_timer'>add_periodic_timer</span><span class='lparen'>(</span><span class='int'>5</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='const'>Pincerna</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_flush'>flush</span> <span class='rbrace'>}</span>
|
|
367
|
+
<span class='kw'>end</span></pre>
|
|
368
|
+
</td>
|
|
369
|
+
</tr>
|
|
370
|
+
</table>
|
|
371
|
+
</div>
|
|
372
|
+
|
|
373
|
+
</div>
|
|
374
|
+
|
|
375
|
+
<div id="instance_attr_details" class="attr_details">
|
|
376
|
+
<h2>Instance Attribute Details</h2>
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
<span id=""></span>
|
|
380
|
+
<div class="method_details first">
|
|
381
|
+
<h3 class="signature first" id="data-instance_method">
|
|
382
|
+
|
|
383
|
+
- (<tt>Daybreak::DB</tt>) <strong>data</strong> <span class="extras">(readonly)</span>
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
</h3><div class="docstring">
|
|
390
|
+
<div class="discussion">
|
|
391
|
+
<p>Returns The cache store.</p>
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
</div>
|
|
395
|
+
</div>
|
|
396
|
+
<div class="tags">
|
|
397
|
+
|
|
398
|
+
<p class="tag_title">Returns:</p>
|
|
399
|
+
<ul class="return">
|
|
400
|
+
|
|
401
|
+
<li>
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
<span class='type'>(<tt>Daybreak::DB</tt>)</span>
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
—
|
|
409
|
+
<div class='inline'><p>The cache store.</p>
|
|
410
|
+
</div>
|
|
411
|
+
|
|
412
|
+
</li>
|
|
413
|
+
|
|
414
|
+
</ul>
|
|
415
|
+
|
|
416
|
+
</div><table class="source_code">
|
|
417
|
+
<tr>
|
|
418
|
+
<td>
|
|
419
|
+
<pre class="lines">
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
12
|
|
423
|
+
13
|
|
424
|
+
14
|
|
425
|
+
15
|
|
426
|
+
16
|
|
427
|
+
17
|
|
428
|
+
18
|
|
429
|
+
19
|
|
430
|
+
20
|
|
431
|
+
21
|
|
432
|
+
22
|
|
433
|
+
23
|
|
434
|
+
24
|
|
435
|
+
25
|
|
436
|
+
26
|
|
437
|
+
27
|
|
438
|
+
28
|
|
439
|
+
29
|
|
440
|
+
30
|
|
441
|
+
31
|
|
442
|
+
32
|
|
443
|
+
33
|
|
444
|
+
34
|
|
445
|
+
35
|
|
446
|
+
36
|
|
447
|
+
37
|
|
448
|
+
38
|
|
449
|
+
39
|
|
450
|
+
40
|
|
451
|
+
41
|
|
452
|
+
42
|
|
453
|
+
43
|
|
454
|
+
44
|
|
455
|
+
45
|
|
456
|
+
46
|
|
457
|
+
47
|
|
458
|
+
48
|
|
459
|
+
49
|
|
460
|
+
50
|
|
461
|
+
51
|
|
462
|
+
52
|
|
463
|
+
53
|
|
464
|
+
54
|
|
465
|
+
55
|
|
466
|
+
56
|
|
467
|
+
57
|
|
468
|
+
58
|
|
469
|
+
59
|
|
470
|
+
60</pre>
|
|
471
|
+
</td>
|
|
472
|
+
<td>
|
|
473
|
+
<pre class="code"><span class="info file"># File 'lib/pincerna/cache.rb', line 12</span>
|
|
474
|
+
|
|
475
|
+
<span class='kw'>class</span> <span class='const'>Cache</span>
|
|
476
|
+
<span class='comment'># Expiration of keys.
|
|
477
|
+
</span> <span class='const'>EXPIRATIONS</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>short:</span> <span class='int'>1800</span><span class='comma'>,</span> <span class='label'>long:</span> <span class='int'>2592000</span><span class='rbrace'>}</span> <span class='comment'># 30 min, 1 month
|
|
478
|
+
</span>
|
|
479
|
+
<span class='comment'># Location of the cache file
|
|
480
|
+
</span> <span class='const'>FILE</span> <span class='op'>=</span> <span class='const'>Pincerna</span><span class='op'>::</span><span class='const'>Base</span><span class='op'>::</span><span class='const'>CACHE_ROOT</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>/cache.db</span><span class='tstring_end'>"</span></span>
|
|
481
|
+
|
|
482
|
+
<span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:data</span>
|
|
483
|
+
|
|
484
|
+
<span class='comment'># Returns the instance of the cache.
|
|
485
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
|
|
486
|
+
<span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Pincerna</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
|
487
|
+
<span class='kw'>end</span>
|
|
488
|
+
|
|
489
|
+
<span class='comment'># Creates a new cache object.
|
|
490
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
|
|
491
|
+
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='const'>FILE</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
492
|
+
<span class='ivar'>@data</span> <span class='op'>=</span> <span class='const'>Daybreak</span><span class='op'>::</span><span class='const'>DB</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>FILE</span><span class='rparen'>)</span>
|
|
493
|
+
<span class='ivar'>@flusher</span> <span class='op'>=</span> <span class='const'>EM</span><span class='period'>.</span><span class='id identifier rubyid_add_periodic_timer'>add_periodic_timer</span><span class='lparen'>(</span><span class='int'>5</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='const'>Pincerna</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_flush'>flush</span> <span class='rbrace'>}</span>
|
|
494
|
+
<span class='kw'>end</span>
|
|
495
|
+
|
|
496
|
+
<span class='comment'># Closes the cache data.
|
|
497
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_destroy'>destroy</span>
|
|
498
|
+
<span class='ivar'>@flusher</span><span class='period'>.</span><span class='id identifier rubyid_cancel'>cancel</span>
|
|
499
|
+
<span class='ivar'>@data</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span> <span class='kw'>rescue</span> <span class='kw'>nil</span>
|
|
500
|
+
<span class='kw'>end</span>
|
|
501
|
+
|
|
502
|
+
<span class='comment'># Flush data into disk.
|
|
503
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_flush'>flush</span>
|
|
504
|
+
<span class='ivar'>@data</span><span class='period'>.</span><span class='id identifier rubyid_flush'>flush</span>
|
|
505
|
+
<span class='ivar'>@data</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span>
|
|
506
|
+
<span class='kw'>end</span>
|
|
507
|
+
|
|
508
|
+
<span class='comment'># Use data from cache or fetches new data.
|
|
509
|
+
</span> <span class='comment'>#
|
|
510
|
+
</span> <span class='comment'># @param key [String] The key of the data.
|
|
511
|
+
</span> <span class='comment'># @param expiration [Fixnum] Expiration of new data, in seconds.
|
|
512
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_use'>use</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_expiration'>expiration</span><span class='rparen'>)</span>
|
|
513
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='ivar'>@data</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span>
|
|
514
|
+
|
|
515
|
+
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span> <span class='op'>||</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>></span> <span class='id identifier rubyid_value'>value</span><span class='lbracket'>[</span><span class='symbol'>:expiration</span><span class='rbracket'>]</span> <span class='kw'>then</span>
|
|
516
|
+
<span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='kw'>yield</span>
|
|
517
|
+
<span class='ivar'>@data</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>data:</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>expiration:</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>+</span> <span class='id identifier rubyid_expiration'>expiration</span><span class='rbrace'>}</span>
|
|
518
|
+
<span class='id identifier rubyid_data'>data</span>
|
|
519
|
+
<span class='kw'>else</span>
|
|
520
|
+
<span class='id identifier rubyid_value'>value</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span>
|
|
521
|
+
<span class='kw'>end</span>
|
|
522
|
+
<span class='kw'>end</span>
|
|
523
|
+
<span class='kw'>end</span></pre>
|
|
524
|
+
</td>
|
|
525
|
+
</tr>
|
|
526
|
+
</table>
|
|
527
|
+
</div>
|
|
528
|
+
|
|
529
|
+
</div>
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
<div id="class_method_details" class="method_details_list">
|
|
533
|
+
<h2>Class Method Details</h2>
|
|
534
|
+
|
|
535
|
+
|
|
536
|
+
<div class="method_details first">
|
|
537
|
+
<h3 class="signature first" id="instance-class_method">
|
|
538
|
+
|
|
539
|
+
+ (<tt>Object</tt>) <strong>instance</strong>
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
</h3><div class="docstring">
|
|
546
|
+
<div class="discussion">
|
|
547
|
+
<p>Returns the instance of the cache.</p>
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
</div>
|
|
551
|
+
</div>
|
|
552
|
+
<div class="tags">
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
</div><table class="source_code">
|
|
556
|
+
<tr>
|
|
557
|
+
<td>
|
|
558
|
+
<pre class="lines">
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
22
|
|
562
|
+
23
|
|
563
|
+
24</pre>
|
|
564
|
+
</td>
|
|
565
|
+
<td>
|
|
566
|
+
<pre class="code"><span class="info file"># File 'lib/pincerna/cache.rb', line 22</span>
|
|
567
|
+
|
|
568
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
|
|
569
|
+
<span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Pincerna</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
|
570
|
+
<span class='kw'>end</span></pre>
|
|
571
|
+
</td>
|
|
572
|
+
</tr>
|
|
573
|
+
</table>
|
|
574
|
+
</div>
|
|
575
|
+
|
|
576
|
+
</div>
|
|
577
|
+
|
|
578
|
+
<div id="instance_method_details" class="method_details_list">
|
|
579
|
+
<h2>Instance Method Details</h2>
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
<div class="method_details first">
|
|
583
|
+
<h3 class="signature first" id="destroy-instance_method">
|
|
584
|
+
|
|
585
|
+
- (<tt>Object</tt>) <strong>destroy</strong>
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
</h3><div class="docstring">
|
|
592
|
+
<div class="discussion">
|
|
593
|
+
<p>Closes the cache data.</p>
|
|
594
|
+
|
|
595
|
+
|
|
596
|
+
</div>
|
|
597
|
+
</div>
|
|
598
|
+
<div class="tags">
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
</div><table class="source_code">
|
|
602
|
+
<tr>
|
|
603
|
+
<td>
|
|
604
|
+
<pre class="lines">
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
34
|
|
608
|
+
35
|
|
609
|
+
36
|
|
610
|
+
37</pre>
|
|
611
|
+
</td>
|
|
612
|
+
<td>
|
|
613
|
+
<pre class="code"><span class="info file"># File 'lib/pincerna/cache.rb', line 34</span>
|
|
614
|
+
|
|
615
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_destroy'>destroy</span>
|
|
616
|
+
<span class='ivar'>@flusher</span><span class='period'>.</span><span class='id identifier rubyid_cancel'>cancel</span>
|
|
617
|
+
<span class='ivar'>@data</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span> <span class='kw'>rescue</span> <span class='kw'>nil</span>
|
|
618
|
+
<span class='kw'>end</span></pre>
|
|
619
|
+
</td>
|
|
620
|
+
</tr>
|
|
621
|
+
</table>
|
|
622
|
+
</div>
|
|
623
|
+
|
|
624
|
+
<div class="method_details ">
|
|
625
|
+
<h3 class="signature " id="flush-instance_method">
|
|
626
|
+
|
|
627
|
+
- (<tt>Object</tt>) <strong>flush</strong>
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
|
|
633
|
+
</h3><div class="docstring">
|
|
634
|
+
<div class="discussion">
|
|
635
|
+
<p>Flush data into disk.</p>
|
|
636
|
+
|
|
637
|
+
|
|
638
|
+
</div>
|
|
639
|
+
</div>
|
|
640
|
+
<div class="tags">
|
|
641
|
+
|
|
642
|
+
|
|
643
|
+
</div><table class="source_code">
|
|
644
|
+
<tr>
|
|
645
|
+
<td>
|
|
646
|
+
<pre class="lines">
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
40
|
|
650
|
+
41
|
|
651
|
+
42
|
|
652
|
+
43</pre>
|
|
653
|
+
</td>
|
|
654
|
+
<td>
|
|
655
|
+
<pre class="code"><span class="info file"># File 'lib/pincerna/cache.rb', line 40</span>
|
|
656
|
+
|
|
657
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_flush'>flush</span>
|
|
658
|
+
<span class='ivar'>@data</span><span class='period'>.</span><span class='id identifier rubyid_flush'>flush</span>
|
|
659
|
+
<span class='ivar'>@data</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span>
|
|
660
|
+
<span class='kw'>end</span></pre>
|
|
661
|
+
</td>
|
|
662
|
+
</tr>
|
|
663
|
+
</table>
|
|
664
|
+
</div>
|
|
665
|
+
|
|
666
|
+
<div class="method_details ">
|
|
667
|
+
<h3 class="signature " id="use-instance_method">
|
|
668
|
+
|
|
669
|
+
- (<tt>Object</tt>) <strong>use</strong>(key, expiration)
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
</h3><div class="docstring">
|
|
676
|
+
<div class="discussion">
|
|
677
|
+
<p>Use data from cache or fetches new data.</p>
|
|
678
|
+
|
|
679
|
+
|
|
680
|
+
</div>
|
|
681
|
+
</div>
|
|
682
|
+
<div class="tags">
|
|
683
|
+
<p class="tag_title">Parameters:</p>
|
|
684
|
+
<ul class="param">
|
|
685
|
+
|
|
686
|
+
<li>
|
|
687
|
+
|
|
688
|
+
<span class='name'>key</span>
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
692
|
+
|
|
693
|
+
|
|
694
|
+
|
|
695
|
+
—
|
|
696
|
+
<div class='inline'><p>The key of the data.</p>
|
|
697
|
+
</div>
|
|
698
|
+
|
|
699
|
+
</li>
|
|
700
|
+
|
|
701
|
+
<li>
|
|
702
|
+
|
|
703
|
+
<span class='name'>expiration</span>
|
|
704
|
+
|
|
705
|
+
|
|
706
|
+
<span class='type'>(<tt>Fixnum</tt>)</span>
|
|
707
|
+
|
|
708
|
+
|
|
709
|
+
|
|
710
|
+
—
|
|
711
|
+
<div class='inline'><p>Expiration of new data, in seconds.</p>
|
|
712
|
+
</div>
|
|
713
|
+
|
|
714
|
+
</li>
|
|
715
|
+
|
|
716
|
+
</ul>
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
</div><table class="source_code">
|
|
720
|
+
<tr>
|
|
721
|
+
<td>
|
|
722
|
+
<pre class="lines">
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
49
|
|
726
|
+
50
|
|
727
|
+
51
|
|
728
|
+
52
|
|
729
|
+
53
|
|
730
|
+
54
|
|
731
|
+
55
|
|
732
|
+
56
|
|
733
|
+
57
|
|
734
|
+
58
|
|
735
|
+
59</pre>
|
|
736
|
+
</td>
|
|
737
|
+
<td>
|
|
738
|
+
<pre class="code"><span class="info file"># File 'lib/pincerna/cache.rb', line 49</span>
|
|
739
|
+
|
|
740
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_use'>use</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_expiration'>expiration</span><span class='rparen'>)</span>
|
|
741
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='ivar'>@data</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span>
|
|
742
|
+
|
|
743
|
+
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span> <span class='op'>||</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>></span> <span class='id identifier rubyid_value'>value</span><span class='lbracket'>[</span><span class='symbol'>:expiration</span><span class='rbracket'>]</span> <span class='kw'>then</span>
|
|
744
|
+
<span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='kw'>yield</span>
|
|
745
|
+
<span class='ivar'>@data</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>data:</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>expiration:</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>+</span> <span class='id identifier rubyid_expiration'>expiration</span><span class='rbrace'>}</span>
|
|
746
|
+
<span class='id identifier rubyid_data'>data</span>
|
|
747
|
+
<span class='kw'>else</span>
|
|
748
|
+
<span class='id identifier rubyid_value'>value</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span>
|
|
749
|
+
<span class='kw'>end</span>
|
|
750
|
+
<span class='kw'>end</span></pre>
|
|
751
|
+
</td>
|
|
752
|
+
</tr>
|
|
753
|
+
</table>
|
|
754
|
+
</div>
|
|
755
|
+
|
|
756
|
+
</div>
|
|
757
|
+
|
|
758
|
+
</div>
|
|
759
|
+
|
|
760
|
+
<div id="footer">
|
|
761
|
+
Generated on Thu Aug 18 15:50:04 2016 by
|
|
762
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
763
|
+
0.8.7 (ruby-2.3.0).
|
|
764
|
+
</div>
|
|
765
|
+
|
|
766
|
+
</body>
|
|
767
|
+
</html>
|