elephas 1.1.3 → 2.0.0
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.
- data/.travis.yml +1 -1
- data/Gemfile +1 -1
- data/README.md +4 -2
- data/Rakefile +1 -1
- data/doc/Elephas/Cache.html +83 -63
- data/doc/Elephas/Entry.html +897 -59
- data/doc/Elephas/Providers/Base.html +31 -78
- data/doc/Elephas/Providers/Hash.html +137 -23
- data/doc/Elephas/Providers/RubyOnRails.html +20 -21
- data/doc/Elephas/Providers.html +3 -3
- data/doc/Elephas/Version.html +6 -6
- data/doc/Elephas.html +4 -4
- data/doc/_index.html +4 -4
- data/doc/file.README.html +8 -6
- data/doc/frames.html +1 -1
- data/doc/index.html +8 -6
- data/doc/top-level-namespace.html +3 -3
- data/elephas.gemspec +10 -8
- data/lib/elephas/cache.rb +124 -103
- data/lib/elephas/entry.rb +23 -22
- data/lib/elephas/provider.rb +13 -5
- data/lib/elephas/providers/hash.rb +14 -14
- data/lib/elephas/providers/ruby_on_rails.rb +10 -11
- data/lib/elephas/version.rb +4 -4
- data/lib/elephas.rb +1 -3
- data/locales/en.yml +9 -0
- data/locales/it.yml +9 -0
- data/spec/coverage_helper.rb +1 -1
- data/spec/elephas/cache_spec.rb +19 -19
- data/spec/elephas/entry_spec.rb +1 -1
- data/spec/elephas/provider_spec.rb +1 -1
- data/spec/elephas/providers/hash_spec.rb +3 -3
- data/spec/elephas/providers/ruby_on_rails_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -1
- metadata +18 -23
- data/doc/Elephas/Exceptions.html +0 -115
data/doc/Elephas/Entry.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<title>
|
|
7
7
|
Class: Elephas::Entry
|
|
8
8
|
|
|
9
|
-
— Documentation by YARD 0.8.
|
|
9
|
+
— Documentation by YARD 0.8.3
|
|
10
10
|
|
|
11
11
|
</title>
|
|
12
12
|
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
<li class="public ">
|
|
120
120
|
<span class="summary_signature">
|
|
121
121
|
|
|
122
|
-
<a href="#hash-instance_method" title="#hash (instance method)">- (
|
|
122
|
+
<a href="#hash-instance_method" title="#hash (instance method)">- (String) <strong>hash</strong> </a>
|
|
123
123
|
|
|
124
124
|
|
|
125
125
|
|
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
<li class="public ">
|
|
146
146
|
<span class="summary_signature">
|
|
147
147
|
|
|
148
|
-
<a href="#key-instance_method" title="#key (instance method)">- (
|
|
148
|
+
<a href="#key-instance_method" title="#key (instance method)">- (String) <strong>key</strong> </a>
|
|
149
149
|
|
|
150
150
|
|
|
151
151
|
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
<li class="public ">
|
|
172
172
|
<span class="summary_signature">
|
|
173
173
|
|
|
174
|
-
<a href="#ttl-instance_method" title="#ttl (instance method)">- (
|
|
174
|
+
<a href="#ttl-instance_method" title="#ttl (instance method)">- (Fixnum) <strong>ttl</strong> </a>
|
|
175
175
|
|
|
176
176
|
|
|
177
177
|
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
<li class="public ">
|
|
198
198
|
<span class="summary_signature">
|
|
199
199
|
|
|
200
|
-
<a href="#updated_at-instance_method" title="#updated_at (instance method)">- (
|
|
200
|
+
<a href="#updated_at-instance_method" title="#updated_at (instance method)">- (Fixnum) <strong>updated_at</strong> </a>
|
|
201
201
|
|
|
202
202
|
|
|
203
203
|
|
|
@@ -276,7 +276,7 @@
|
|
|
276
276
|
|
|
277
277
|
|
|
278
278
|
|
|
279
|
-
<span class="summary_desc"><div class='inline'><p>
|
|
279
|
+
<span class="summary_desc"><div class='inline'><p>Ensures that the value is an Entry.</p>
|
|
280
280
|
</div></span>
|
|
281
281
|
|
|
282
282
|
</li>
|
|
@@ -331,7 +331,7 @@
|
|
|
331
331
|
|
|
332
332
|
|
|
333
333
|
|
|
334
|
-
<span class="summary_desc"><div class='inline'><p>
|
|
334
|
+
<span class="summary_desc"><div class='inline'><p>Compares to another Entry.</p>
|
|
335
335
|
</div></span>
|
|
336
336
|
|
|
337
337
|
</li>
|
|
@@ -507,24 +507,22 @@
|
|
|
507
507
|
<pre class="lines">
|
|
508
508
|
|
|
509
509
|
|
|
510
|
-
31
|
|
511
|
-
32
|
|
512
510
|
33
|
|
513
511
|
34
|
|
514
512
|
35
|
|
515
513
|
36
|
|
516
514
|
37
|
|
517
|
-
38
|
|
515
|
+
38
|
|
516
|
+
39</pre>
|
|
518
517
|
</td>
|
|
519
518
|
<td>
|
|
520
|
-
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line
|
|
519
|
+
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line 33</span>
|
|
521
520
|
|
|
522
521
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='int'>360000</span><span class='rparen'>)</span>
|
|
523
|
-
<span class='
|
|
524
|
-
<span class='
|
|
525
|
-
<span class='
|
|
526
|
-
<span class='
|
|
527
|
-
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='id identifier rubyid_ttl'>ttl</span>
|
|
522
|
+
<span class='ivar'>@key</span> <span class='op'>=</span> <span class='id identifier rubyid_key'>key</span>
|
|
523
|
+
<span class='ivar'>@hash</span> <span class='op'>=</span> <span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>:</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
524
|
+
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
525
|
+
<span class='ivar'>@ttl</span> <span class='op'>=</span> <span class='id identifier rubyid_ttl'>ttl</span>
|
|
528
526
|
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>
|
|
529
527
|
<span class='kw'>end</span></pre>
|
|
530
528
|
</td>
|
|
@@ -542,7 +540,7 @@
|
|
|
542
540
|
<div class="method_details first">
|
|
543
541
|
<h3 class="signature first" id="hash-instance_method">
|
|
544
542
|
|
|
545
|
-
- (<tt>
|
|
543
|
+
- (<tt>String</tt>) <strong>hash</strong>
|
|
546
544
|
|
|
547
545
|
|
|
548
546
|
|
|
@@ -557,6 +555,23 @@
|
|
|
557
555
|
</div>
|
|
558
556
|
<div class="tags">
|
|
559
557
|
|
|
558
|
+
<p class="tag_title">Returns:</p>
|
|
559
|
+
<ul class="return">
|
|
560
|
+
|
|
561
|
+
<li>
|
|
562
|
+
|
|
563
|
+
|
|
564
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
|
|
568
|
+
—
|
|
569
|
+
<div class='inline'><p>The hashed (unique) key for this entry.</p>
|
|
570
|
+
</div>
|
|
571
|
+
|
|
572
|
+
</li>
|
|
573
|
+
|
|
574
|
+
</ul>
|
|
560
575
|
|
|
561
576
|
</div><table class="source_code">
|
|
562
577
|
<tr>
|
|
@@ -564,15 +579,163 @@
|
|
|
564
579
|
<pre class="lines">
|
|
565
580
|
|
|
566
581
|
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
582
|
+
20
|
|
583
|
+
21
|
|
584
|
+
22
|
|
585
|
+
23
|
|
586
|
+
24
|
|
587
|
+
25
|
|
588
|
+
26
|
|
589
|
+
27
|
|
590
|
+
28
|
|
591
|
+
29
|
|
592
|
+
30
|
|
593
|
+
31
|
|
594
|
+
32
|
|
595
|
+
33
|
|
596
|
+
34
|
|
597
|
+
35
|
|
598
|
+
36
|
|
599
|
+
37
|
|
600
|
+
38
|
|
601
|
+
39
|
|
602
|
+
40
|
|
603
|
+
41
|
|
604
|
+
42
|
|
605
|
+
43
|
|
606
|
+
44
|
|
607
|
+
45
|
|
608
|
+
46
|
|
609
|
+
47
|
|
610
|
+
48
|
|
611
|
+
49
|
|
612
|
+
50
|
|
613
|
+
51
|
|
614
|
+
52
|
|
615
|
+
53
|
|
616
|
+
54
|
|
617
|
+
55
|
|
618
|
+
56
|
|
619
|
+
57
|
|
620
|
+
58
|
|
621
|
+
59
|
|
622
|
+
60
|
|
623
|
+
61
|
|
624
|
+
62
|
|
625
|
+
63
|
|
626
|
+
64
|
|
627
|
+
65
|
|
628
|
+
66
|
|
629
|
+
67
|
|
630
|
+
68
|
|
631
|
+
69
|
|
632
|
+
70
|
|
633
|
+
71
|
|
634
|
+
72
|
|
635
|
+
73
|
|
636
|
+
74
|
|
637
|
+
75
|
|
638
|
+
76
|
|
639
|
+
77
|
|
640
|
+
78
|
|
641
|
+
79
|
|
642
|
+
80
|
|
643
|
+
81
|
|
644
|
+
82
|
|
645
|
+
83
|
|
646
|
+
84
|
|
647
|
+
85
|
|
648
|
+
86
|
|
649
|
+
87
|
|
650
|
+
88
|
|
651
|
+
89
|
|
652
|
+
90
|
|
653
|
+
91
|
|
654
|
+
92
|
|
655
|
+
93
|
|
656
|
+
94
|
|
657
|
+
95
|
|
658
|
+
96</pre>
|
|
570
659
|
</td>
|
|
571
660
|
<td>
|
|
572
|
-
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line
|
|
661
|
+
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line 20</span>
|
|
662
|
+
|
|
663
|
+
<span class='kw'>class</span> <span class='const'>Entry</span>
|
|
664
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:key</span>
|
|
665
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:hash</span>
|
|
666
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:value</span>
|
|
667
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:ttl</span>
|
|
668
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:updated_at</span>
|
|
669
|
+
|
|
670
|
+
<span class='comment'># Creates a new entry.
|
|
671
|
+
</span> <span class='comment'>#
|
|
672
|
+
</span> <span class='comment'># @param key [String] The key for this entry.
|
|
673
|
+
</span> <span class='comment'># @param value [Object] The value contained in this entry.
|
|
674
|
+
</span> <span class='comment'># @param hash [String] The hash for this entry. Should be unique. It is automatically created if not provided.
|
|
675
|
+
</span> <span class='comment'># @param ttl [Integer] The time to live (TTL) for this entry. If set to 0 then the entry is not cached.
|
|
676
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='int'>360000</span><span class='rparen'>)</span>
|
|
677
|
+
<span class='ivar'>@key</span> <span class='op'>=</span> <span class='id identifier rubyid_key'>key</span>
|
|
678
|
+
<span class='ivar'>@hash</span> <span class='op'>=</span> <span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>:</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
679
|
+
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
680
|
+
<span class='ivar'>@ttl</span> <span class='op'>=</span> <span class='id identifier rubyid_ttl'>ttl</span>
|
|
681
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>
|
|
682
|
+
<span class='kw'>end</span>
|
|
683
|
+
|
|
684
|
+
<span class='comment'># Refreshes the entry.
|
|
685
|
+
</span> <span class='comment'>#
|
|
686
|
+
</span> <span class='comment'># @param save [Boolean] If to save the refresh value in the cache.
|
|
687
|
+
</span> <span class='comment'># @return [Float] The new updated_at value.
|
|
688
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_refresh'>refresh</span><span class='lparen'>(</span><span class='id identifier rubyid_save'>save</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
|
689
|
+
<span class='ivar'>@updated_at</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>
|
|
690
|
+
<span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='ivar'>@hash</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_save'>save</span>
|
|
691
|
+
<span class='ivar'>@updated_at</span>
|
|
692
|
+
<span class='kw'>end</span>
|
|
693
|
+
|
|
694
|
+
<span class='comment'># Checks if the entry is still valid.
|
|
695
|
+
</span> <span class='comment'>#
|
|
696
|
+
</span> <span class='comment'># @param provider [Provider::Base] The provider to use for the check.
|
|
697
|
+
</span> <span class='comment'># @return [Boolean] `true` if the entry is still valid, `false` otherwise.
|
|
698
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_valid?'>valid?</span><span class='lparen'>(</span><span class='id identifier rubyid_provider'>provider</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
|
699
|
+
<span class='id identifier rubyid_provider'>provider</span> <span class='op'>||=</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span>
|
|
700
|
+
<span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span> <span class='op'>-</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span> <span class='op'><</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>/</span> <span class='int'>1000</span>
|
|
701
|
+
<span class='kw'>end</span>
|
|
702
|
+
|
|
703
|
+
<span class='comment'># Compares to another Entry.
|
|
704
|
+
</span> <span class='comment'>#
|
|
705
|
+
</span> <span class='comment'># @param other [Entry] The entry to compare with
|
|
706
|
+
</span> <span class='comment'># @return [Boolean] `true` if the entries are the same, `false` otherwise.
|
|
707
|
+
</span> <span class='kw'>def</span> <span class='op'>==</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
|
|
708
|
+
<span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='lbracket'>[</span><span class='ivar'>@key</span><span class='comma'>,</span> <span class='ivar'>@hash</span><span class='comma'>,</span> <span class='ivar'>@value</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='lbracket'>[</span><span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='rbracket'>]</span>
|
|
709
|
+
<span class='kw'>end</span>
|
|
710
|
+
|
|
711
|
+
<span class='comment'># Returns a unique hash for the key.
|
|
712
|
+
</span> <span class='comment'>#
|
|
713
|
+
</span> <span class='comment'># @param key [String] The key to hashify.
|
|
714
|
+
</span> <span class='comment'># @return [String] An unique hash for the key.
|
|
715
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
716
|
+
<span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA2</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
|
|
717
|
+
<span class='kw'>end</span>
|
|
718
|
+
|
|
719
|
+
<span class='comment'># Ensures that the value is an Entry.
|
|
720
|
+
</span> <span class='comment'>#
|
|
721
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
|
722
|
+
</span> <span class='comment'># @param key [Object] The key associated to this object.
|
|
723
|
+
</span> <span class='comment'># @param options [Hash] Options to manage the value.
|
|
724
|
+
</span> <span class='comment'># @return [Entry] The wrapped object.
|
|
725
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='kw'>ensure</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
726
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
727
|
+
|
|
728
|
+
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
|
729
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
|
573
730
|
|
|
574
|
-
<span class='
|
|
575
|
-
|
|
731
|
+
<span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:ttl</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span>
|
|
732
|
+
<span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
|
|
733
|
+
|
|
734
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span><span class='rparen'>)</span>
|
|
735
|
+
<span class='kw'>end</span>
|
|
736
|
+
|
|
737
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
|
738
|
+
<span class='kw'>end</span>
|
|
576
739
|
<span class='kw'>end</span></pre>
|
|
577
740
|
</td>
|
|
578
741
|
</tr>
|
|
@@ -584,7 +747,7 @@
|
|
|
584
747
|
<div class="method_details ">
|
|
585
748
|
<h3 class="signature " id="key-instance_method">
|
|
586
749
|
|
|
587
|
-
- (<tt>
|
|
750
|
+
- (<tt>String</tt>) <strong>key</strong>
|
|
588
751
|
|
|
589
752
|
|
|
590
753
|
|
|
@@ -599,6 +762,23 @@
|
|
|
599
762
|
</div>
|
|
600
763
|
<div class="tags">
|
|
601
764
|
|
|
765
|
+
<p class="tag_title">Returns:</p>
|
|
766
|
+
<ul class="return">
|
|
767
|
+
|
|
768
|
+
<li>
|
|
769
|
+
|
|
770
|
+
|
|
771
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
|
|
775
|
+
—
|
|
776
|
+
<div class='inline'><p>The key for this entry.</p>
|
|
777
|
+
</div>
|
|
778
|
+
|
|
779
|
+
</li>
|
|
780
|
+
|
|
781
|
+
</ul>
|
|
602
782
|
|
|
603
783
|
</div><table class="source_code">
|
|
604
784
|
<tr>
|
|
@@ -606,15 +786,163 @@
|
|
|
606
786
|
<pre class="lines">
|
|
607
787
|
|
|
608
788
|
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
789
|
+
20
|
|
790
|
+
21
|
|
791
|
+
22
|
|
792
|
+
23
|
|
793
|
+
24
|
|
794
|
+
25
|
|
795
|
+
26
|
|
796
|
+
27
|
|
797
|
+
28
|
|
798
|
+
29
|
|
799
|
+
30
|
|
800
|
+
31
|
|
801
|
+
32
|
|
802
|
+
33
|
|
803
|
+
34
|
|
804
|
+
35
|
|
805
|
+
36
|
|
806
|
+
37
|
|
807
|
+
38
|
|
808
|
+
39
|
|
809
|
+
40
|
|
810
|
+
41
|
|
811
|
+
42
|
|
812
|
+
43
|
|
813
|
+
44
|
|
814
|
+
45
|
|
815
|
+
46
|
|
816
|
+
47
|
|
817
|
+
48
|
|
818
|
+
49
|
|
819
|
+
50
|
|
820
|
+
51
|
|
821
|
+
52
|
|
822
|
+
53
|
|
823
|
+
54
|
|
824
|
+
55
|
|
825
|
+
56
|
|
826
|
+
57
|
|
827
|
+
58
|
|
828
|
+
59
|
|
829
|
+
60
|
|
830
|
+
61
|
|
831
|
+
62
|
|
832
|
+
63
|
|
833
|
+
64
|
|
834
|
+
65
|
|
835
|
+
66
|
|
836
|
+
67
|
|
837
|
+
68
|
|
838
|
+
69
|
|
839
|
+
70
|
|
840
|
+
71
|
|
841
|
+
72
|
|
842
|
+
73
|
|
843
|
+
74
|
|
844
|
+
75
|
|
845
|
+
76
|
|
846
|
+
77
|
|
847
|
+
78
|
|
848
|
+
79
|
|
849
|
+
80
|
|
850
|
+
81
|
|
851
|
+
82
|
|
852
|
+
83
|
|
853
|
+
84
|
|
854
|
+
85
|
|
855
|
+
86
|
|
856
|
+
87
|
|
857
|
+
88
|
|
858
|
+
89
|
|
859
|
+
90
|
|
860
|
+
91
|
|
861
|
+
92
|
|
862
|
+
93
|
|
863
|
+
94
|
|
864
|
+
95
|
|
865
|
+
96</pre>
|
|
612
866
|
</td>
|
|
613
867
|
<td>
|
|
614
|
-
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line
|
|
868
|
+
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line 20</span>
|
|
869
|
+
|
|
870
|
+
<span class='kw'>class</span> <span class='const'>Entry</span>
|
|
871
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:key</span>
|
|
872
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:hash</span>
|
|
873
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:value</span>
|
|
874
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:ttl</span>
|
|
875
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:updated_at</span>
|
|
876
|
+
|
|
877
|
+
<span class='comment'># Creates a new entry.
|
|
878
|
+
</span> <span class='comment'>#
|
|
879
|
+
</span> <span class='comment'># @param key [String] The key for this entry.
|
|
880
|
+
</span> <span class='comment'># @param value [Object] The value contained in this entry.
|
|
881
|
+
</span> <span class='comment'># @param hash [String] The hash for this entry. Should be unique. It is automatically created if not provided.
|
|
882
|
+
</span> <span class='comment'># @param ttl [Integer] The time to live (TTL) for this entry. If set to 0 then the entry is not cached.
|
|
883
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='int'>360000</span><span class='rparen'>)</span>
|
|
884
|
+
<span class='ivar'>@key</span> <span class='op'>=</span> <span class='id identifier rubyid_key'>key</span>
|
|
885
|
+
<span class='ivar'>@hash</span> <span class='op'>=</span> <span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>:</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
886
|
+
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
887
|
+
<span class='ivar'>@ttl</span> <span class='op'>=</span> <span class='id identifier rubyid_ttl'>ttl</span>
|
|
888
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>
|
|
889
|
+
<span class='kw'>end</span>
|
|
890
|
+
|
|
891
|
+
<span class='comment'># Refreshes the entry.
|
|
892
|
+
</span> <span class='comment'>#
|
|
893
|
+
</span> <span class='comment'># @param save [Boolean] If to save the refresh value in the cache.
|
|
894
|
+
</span> <span class='comment'># @return [Float] The new updated_at value.
|
|
895
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_refresh'>refresh</span><span class='lparen'>(</span><span class='id identifier rubyid_save'>save</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
|
896
|
+
<span class='ivar'>@updated_at</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>
|
|
897
|
+
<span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='ivar'>@hash</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_save'>save</span>
|
|
898
|
+
<span class='ivar'>@updated_at</span>
|
|
899
|
+
<span class='kw'>end</span>
|
|
900
|
+
|
|
901
|
+
<span class='comment'># Checks if the entry is still valid.
|
|
902
|
+
</span> <span class='comment'>#
|
|
903
|
+
</span> <span class='comment'># @param provider [Provider::Base] The provider to use for the check.
|
|
904
|
+
</span> <span class='comment'># @return [Boolean] `true` if the entry is still valid, `false` otherwise.
|
|
905
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_valid?'>valid?</span><span class='lparen'>(</span><span class='id identifier rubyid_provider'>provider</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
|
906
|
+
<span class='id identifier rubyid_provider'>provider</span> <span class='op'>||=</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span>
|
|
907
|
+
<span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span> <span class='op'>-</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span> <span class='op'><</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>/</span> <span class='int'>1000</span>
|
|
908
|
+
<span class='kw'>end</span>
|
|
909
|
+
|
|
910
|
+
<span class='comment'># Compares to another Entry.
|
|
911
|
+
</span> <span class='comment'>#
|
|
912
|
+
</span> <span class='comment'># @param other [Entry] The entry to compare with
|
|
913
|
+
</span> <span class='comment'># @return [Boolean] `true` if the entries are the same, `false` otherwise.
|
|
914
|
+
</span> <span class='kw'>def</span> <span class='op'>==</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
|
|
915
|
+
<span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='lbracket'>[</span><span class='ivar'>@key</span><span class='comma'>,</span> <span class='ivar'>@hash</span><span class='comma'>,</span> <span class='ivar'>@value</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='lbracket'>[</span><span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='rbracket'>]</span>
|
|
916
|
+
<span class='kw'>end</span>
|
|
917
|
+
|
|
918
|
+
<span class='comment'># Returns a unique hash for the key.
|
|
919
|
+
</span> <span class='comment'>#
|
|
920
|
+
</span> <span class='comment'># @param key [String] The key to hashify.
|
|
921
|
+
</span> <span class='comment'># @return [String] An unique hash for the key.
|
|
922
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
923
|
+
<span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA2</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
|
|
924
|
+
<span class='kw'>end</span>
|
|
615
925
|
|
|
616
|
-
<span class='
|
|
617
|
-
<span class='
|
|
926
|
+
<span class='comment'># Ensures that the value is an Entry.
|
|
927
|
+
</span> <span class='comment'>#
|
|
928
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
|
929
|
+
</span> <span class='comment'># @param key [Object] The key associated to this object.
|
|
930
|
+
</span> <span class='comment'># @param options [Hash] Options to manage the value.
|
|
931
|
+
</span> <span class='comment'># @return [Entry] The wrapped object.
|
|
932
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='kw'>ensure</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
933
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
934
|
+
|
|
935
|
+
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
|
936
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
|
937
|
+
|
|
938
|
+
<span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:ttl</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span>
|
|
939
|
+
<span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
|
|
940
|
+
|
|
941
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span><span class='rparen'>)</span>
|
|
942
|
+
<span class='kw'>end</span>
|
|
943
|
+
|
|
944
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
|
945
|
+
<span class='kw'>end</span>
|
|
618
946
|
<span class='kw'>end</span></pre>
|
|
619
947
|
</td>
|
|
620
948
|
</tr>
|
|
@@ -626,7 +954,7 @@
|
|
|
626
954
|
<div class="method_details ">
|
|
627
955
|
<h3 class="signature " id="ttl-instance_method">
|
|
628
956
|
|
|
629
|
-
- (<tt>
|
|
957
|
+
- (<tt>Fixnum</tt>) <strong>ttl</strong>
|
|
630
958
|
|
|
631
959
|
|
|
632
960
|
|
|
@@ -641,6 +969,23 @@
|
|
|
641
969
|
</div>
|
|
642
970
|
<div class="tags">
|
|
643
971
|
|
|
972
|
+
<p class="tag_title">Returns:</p>
|
|
973
|
+
<ul class="return">
|
|
974
|
+
|
|
975
|
+
<li>
|
|
976
|
+
|
|
977
|
+
|
|
978
|
+
<span class='type'>(<tt>Fixnum</tt>)</span>
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
—
|
|
983
|
+
<div class='inline'><p>The expected TTL of the entry, in milliseconds.</p>
|
|
984
|
+
</div>
|
|
985
|
+
|
|
986
|
+
</li>
|
|
987
|
+
|
|
988
|
+
</ul>
|
|
644
989
|
|
|
645
990
|
</div><table class="source_code">
|
|
646
991
|
<tr>
|
|
@@ -650,13 +995,161 @@
|
|
|
650
995
|
|
|
651
996
|
20
|
|
652
997
|
21
|
|
653
|
-
22
|
|
998
|
+
22
|
|
999
|
+
23
|
|
1000
|
+
24
|
|
1001
|
+
25
|
|
1002
|
+
26
|
|
1003
|
+
27
|
|
1004
|
+
28
|
|
1005
|
+
29
|
|
1006
|
+
30
|
|
1007
|
+
31
|
|
1008
|
+
32
|
|
1009
|
+
33
|
|
1010
|
+
34
|
|
1011
|
+
35
|
|
1012
|
+
36
|
|
1013
|
+
37
|
|
1014
|
+
38
|
|
1015
|
+
39
|
|
1016
|
+
40
|
|
1017
|
+
41
|
|
1018
|
+
42
|
|
1019
|
+
43
|
|
1020
|
+
44
|
|
1021
|
+
45
|
|
1022
|
+
46
|
|
1023
|
+
47
|
|
1024
|
+
48
|
|
1025
|
+
49
|
|
1026
|
+
50
|
|
1027
|
+
51
|
|
1028
|
+
52
|
|
1029
|
+
53
|
|
1030
|
+
54
|
|
1031
|
+
55
|
|
1032
|
+
56
|
|
1033
|
+
57
|
|
1034
|
+
58
|
|
1035
|
+
59
|
|
1036
|
+
60
|
|
1037
|
+
61
|
|
1038
|
+
62
|
|
1039
|
+
63
|
|
1040
|
+
64
|
|
1041
|
+
65
|
|
1042
|
+
66
|
|
1043
|
+
67
|
|
1044
|
+
68
|
|
1045
|
+
69
|
|
1046
|
+
70
|
|
1047
|
+
71
|
|
1048
|
+
72
|
|
1049
|
+
73
|
|
1050
|
+
74
|
|
1051
|
+
75
|
|
1052
|
+
76
|
|
1053
|
+
77
|
|
1054
|
+
78
|
|
1055
|
+
79
|
|
1056
|
+
80
|
|
1057
|
+
81
|
|
1058
|
+
82
|
|
1059
|
+
83
|
|
1060
|
+
84
|
|
1061
|
+
85
|
|
1062
|
+
86
|
|
1063
|
+
87
|
|
1064
|
+
88
|
|
1065
|
+
89
|
|
1066
|
+
90
|
|
1067
|
+
91
|
|
1068
|
+
92
|
|
1069
|
+
93
|
|
1070
|
+
94
|
|
1071
|
+
95
|
|
1072
|
+
96</pre>
|
|
654
1073
|
</td>
|
|
655
1074
|
<td>
|
|
656
1075
|
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line 20</span>
|
|
657
1076
|
|
|
658
|
-
<span class='kw'>
|
|
659
|
-
<span class='
|
|
1077
|
+
<span class='kw'>class</span> <span class='const'>Entry</span>
|
|
1078
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:key</span>
|
|
1079
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:hash</span>
|
|
1080
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:value</span>
|
|
1081
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:ttl</span>
|
|
1082
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:updated_at</span>
|
|
1083
|
+
|
|
1084
|
+
<span class='comment'># Creates a new entry.
|
|
1085
|
+
</span> <span class='comment'>#
|
|
1086
|
+
</span> <span class='comment'># @param key [String] The key for this entry.
|
|
1087
|
+
</span> <span class='comment'># @param value [Object] The value contained in this entry.
|
|
1088
|
+
</span> <span class='comment'># @param hash [String] The hash for this entry. Should be unique. It is automatically created if not provided.
|
|
1089
|
+
</span> <span class='comment'># @param ttl [Integer] The time to live (TTL) for this entry. If set to 0 then the entry is not cached.
|
|
1090
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='int'>360000</span><span class='rparen'>)</span>
|
|
1091
|
+
<span class='ivar'>@key</span> <span class='op'>=</span> <span class='id identifier rubyid_key'>key</span>
|
|
1092
|
+
<span class='ivar'>@hash</span> <span class='op'>=</span> <span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>:</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
1093
|
+
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
1094
|
+
<span class='ivar'>@ttl</span> <span class='op'>=</span> <span class='id identifier rubyid_ttl'>ttl</span>
|
|
1095
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>
|
|
1096
|
+
<span class='kw'>end</span>
|
|
1097
|
+
|
|
1098
|
+
<span class='comment'># Refreshes the entry.
|
|
1099
|
+
</span> <span class='comment'>#
|
|
1100
|
+
</span> <span class='comment'># @param save [Boolean] If to save the refresh value in the cache.
|
|
1101
|
+
</span> <span class='comment'># @return [Float] The new updated_at value.
|
|
1102
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_refresh'>refresh</span><span class='lparen'>(</span><span class='id identifier rubyid_save'>save</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
|
1103
|
+
<span class='ivar'>@updated_at</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>
|
|
1104
|
+
<span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='ivar'>@hash</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_save'>save</span>
|
|
1105
|
+
<span class='ivar'>@updated_at</span>
|
|
1106
|
+
<span class='kw'>end</span>
|
|
1107
|
+
|
|
1108
|
+
<span class='comment'># Checks if the entry is still valid.
|
|
1109
|
+
</span> <span class='comment'>#
|
|
1110
|
+
</span> <span class='comment'># @param provider [Provider::Base] The provider to use for the check.
|
|
1111
|
+
</span> <span class='comment'># @return [Boolean] `true` if the entry is still valid, `false` otherwise.
|
|
1112
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_valid?'>valid?</span><span class='lparen'>(</span><span class='id identifier rubyid_provider'>provider</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
|
1113
|
+
<span class='id identifier rubyid_provider'>provider</span> <span class='op'>||=</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span>
|
|
1114
|
+
<span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span> <span class='op'>-</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span> <span class='op'><</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>/</span> <span class='int'>1000</span>
|
|
1115
|
+
<span class='kw'>end</span>
|
|
1116
|
+
|
|
1117
|
+
<span class='comment'># Compares to another Entry.
|
|
1118
|
+
</span> <span class='comment'>#
|
|
1119
|
+
</span> <span class='comment'># @param other [Entry] The entry to compare with
|
|
1120
|
+
</span> <span class='comment'># @return [Boolean] `true` if the entries are the same, `false` otherwise.
|
|
1121
|
+
</span> <span class='kw'>def</span> <span class='op'>==</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
|
|
1122
|
+
<span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='lbracket'>[</span><span class='ivar'>@key</span><span class='comma'>,</span> <span class='ivar'>@hash</span><span class='comma'>,</span> <span class='ivar'>@value</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='lbracket'>[</span><span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='rbracket'>]</span>
|
|
1123
|
+
<span class='kw'>end</span>
|
|
1124
|
+
|
|
1125
|
+
<span class='comment'># Returns a unique hash for the key.
|
|
1126
|
+
</span> <span class='comment'>#
|
|
1127
|
+
</span> <span class='comment'># @param key [String] The key to hashify.
|
|
1128
|
+
</span> <span class='comment'># @return [String] An unique hash for the key.
|
|
1129
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
1130
|
+
<span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA2</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
|
|
1131
|
+
<span class='kw'>end</span>
|
|
1132
|
+
|
|
1133
|
+
<span class='comment'># Ensures that the value is an Entry.
|
|
1134
|
+
</span> <span class='comment'>#
|
|
1135
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
|
1136
|
+
</span> <span class='comment'># @param key [Object] The key associated to this object.
|
|
1137
|
+
</span> <span class='comment'># @param options [Hash] Options to manage the value.
|
|
1138
|
+
</span> <span class='comment'># @return [Entry] The wrapped object.
|
|
1139
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='kw'>ensure</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
1140
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
1141
|
+
|
|
1142
|
+
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
|
1143
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
|
1144
|
+
|
|
1145
|
+
<span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:ttl</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span>
|
|
1146
|
+
<span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
|
|
1147
|
+
|
|
1148
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span><span class='rparen'>)</span>
|
|
1149
|
+
<span class='kw'>end</span>
|
|
1150
|
+
|
|
1151
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
|
1152
|
+
<span class='kw'>end</span>
|
|
660
1153
|
<span class='kw'>end</span></pre>
|
|
661
1154
|
</td>
|
|
662
1155
|
</tr>
|
|
@@ -668,7 +1161,7 @@
|
|
|
668
1161
|
<div class="method_details ">
|
|
669
1162
|
<h3 class="signature " id="updated_at-instance_method">
|
|
670
1163
|
|
|
671
|
-
- (<tt>
|
|
1164
|
+
- (<tt>Fixnum</tt>) <strong>updated_at</strong>
|
|
672
1165
|
|
|
673
1166
|
|
|
674
1167
|
|
|
@@ -683,6 +1176,23 @@
|
|
|
683
1176
|
</div>
|
|
684
1177
|
<div class="tags">
|
|
685
1178
|
|
|
1179
|
+
<p class="tag_title">Returns:</p>
|
|
1180
|
+
<ul class="return">
|
|
1181
|
+
|
|
1182
|
+
<li>
|
|
1183
|
+
|
|
1184
|
+
|
|
1185
|
+
<span class='type'>(<tt>Fixnum</tt>)</span>
|
|
1186
|
+
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
—
|
|
1190
|
+
<div class='inline'><p>The last update date of the entry, in UNIX timestamp (with milliseconds).</p>
|
|
1191
|
+
</div>
|
|
1192
|
+
|
|
1193
|
+
</li>
|
|
1194
|
+
|
|
1195
|
+
</ul>
|
|
686
1196
|
|
|
687
1197
|
</div><table class="source_code">
|
|
688
1198
|
<tr>
|
|
@@ -690,15 +1200,163 @@
|
|
|
690
1200
|
<pre class="lines">
|
|
691
1201
|
|
|
692
1202
|
|
|
1203
|
+
20
|
|
1204
|
+
21
|
|
1205
|
+
22
|
|
693
1206
|
23
|
|
694
1207
|
24
|
|
695
|
-
25
|
|
1208
|
+
25
|
|
1209
|
+
26
|
|
1210
|
+
27
|
|
1211
|
+
28
|
|
1212
|
+
29
|
|
1213
|
+
30
|
|
1214
|
+
31
|
|
1215
|
+
32
|
|
1216
|
+
33
|
|
1217
|
+
34
|
|
1218
|
+
35
|
|
1219
|
+
36
|
|
1220
|
+
37
|
|
1221
|
+
38
|
|
1222
|
+
39
|
|
1223
|
+
40
|
|
1224
|
+
41
|
|
1225
|
+
42
|
|
1226
|
+
43
|
|
1227
|
+
44
|
|
1228
|
+
45
|
|
1229
|
+
46
|
|
1230
|
+
47
|
|
1231
|
+
48
|
|
1232
|
+
49
|
|
1233
|
+
50
|
|
1234
|
+
51
|
|
1235
|
+
52
|
|
1236
|
+
53
|
|
1237
|
+
54
|
|
1238
|
+
55
|
|
1239
|
+
56
|
|
1240
|
+
57
|
|
1241
|
+
58
|
|
1242
|
+
59
|
|
1243
|
+
60
|
|
1244
|
+
61
|
|
1245
|
+
62
|
|
1246
|
+
63
|
|
1247
|
+
64
|
|
1248
|
+
65
|
|
1249
|
+
66
|
|
1250
|
+
67
|
|
1251
|
+
68
|
|
1252
|
+
69
|
|
1253
|
+
70
|
|
1254
|
+
71
|
|
1255
|
+
72
|
|
1256
|
+
73
|
|
1257
|
+
74
|
|
1258
|
+
75
|
|
1259
|
+
76
|
|
1260
|
+
77
|
|
1261
|
+
78
|
|
1262
|
+
79
|
|
1263
|
+
80
|
|
1264
|
+
81
|
|
1265
|
+
82
|
|
1266
|
+
83
|
|
1267
|
+
84
|
|
1268
|
+
85
|
|
1269
|
+
86
|
|
1270
|
+
87
|
|
1271
|
+
88
|
|
1272
|
+
89
|
|
1273
|
+
90
|
|
1274
|
+
91
|
|
1275
|
+
92
|
|
1276
|
+
93
|
|
1277
|
+
94
|
|
1278
|
+
95
|
|
1279
|
+
96</pre>
|
|
696
1280
|
</td>
|
|
697
1281
|
<td>
|
|
698
|
-
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line
|
|
1282
|
+
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line 20</span>
|
|
699
1283
|
|
|
700
|
-
<span class='kw'>
|
|
701
|
-
<span class='
|
|
1284
|
+
<span class='kw'>class</span> <span class='const'>Entry</span>
|
|
1285
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:key</span>
|
|
1286
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:hash</span>
|
|
1287
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:value</span>
|
|
1288
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:ttl</span>
|
|
1289
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:updated_at</span>
|
|
1290
|
+
|
|
1291
|
+
<span class='comment'># Creates a new entry.
|
|
1292
|
+
</span> <span class='comment'>#
|
|
1293
|
+
</span> <span class='comment'># @param key [String] The key for this entry.
|
|
1294
|
+
</span> <span class='comment'># @param value [Object] The value contained in this entry.
|
|
1295
|
+
</span> <span class='comment'># @param hash [String] The hash for this entry. Should be unique. It is automatically created if not provided.
|
|
1296
|
+
</span> <span class='comment'># @param ttl [Integer] The time to live (TTL) for this entry. If set to 0 then the entry is not cached.
|
|
1297
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='int'>360000</span><span class='rparen'>)</span>
|
|
1298
|
+
<span class='ivar'>@key</span> <span class='op'>=</span> <span class='id identifier rubyid_key'>key</span>
|
|
1299
|
+
<span class='ivar'>@hash</span> <span class='op'>=</span> <span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>:</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
1300
|
+
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
1301
|
+
<span class='ivar'>@ttl</span> <span class='op'>=</span> <span class='id identifier rubyid_ttl'>ttl</span>
|
|
1302
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>
|
|
1303
|
+
<span class='kw'>end</span>
|
|
1304
|
+
|
|
1305
|
+
<span class='comment'># Refreshes the entry.
|
|
1306
|
+
</span> <span class='comment'>#
|
|
1307
|
+
</span> <span class='comment'># @param save [Boolean] If to save the refresh value in the cache.
|
|
1308
|
+
</span> <span class='comment'># @return [Float] The new updated_at value.
|
|
1309
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_refresh'>refresh</span><span class='lparen'>(</span><span class='id identifier rubyid_save'>save</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
|
1310
|
+
<span class='ivar'>@updated_at</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>
|
|
1311
|
+
<span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='ivar'>@hash</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_save'>save</span>
|
|
1312
|
+
<span class='ivar'>@updated_at</span>
|
|
1313
|
+
<span class='kw'>end</span>
|
|
1314
|
+
|
|
1315
|
+
<span class='comment'># Checks if the entry is still valid.
|
|
1316
|
+
</span> <span class='comment'>#
|
|
1317
|
+
</span> <span class='comment'># @param provider [Provider::Base] The provider to use for the check.
|
|
1318
|
+
</span> <span class='comment'># @return [Boolean] `true` if the entry is still valid, `false` otherwise.
|
|
1319
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_valid?'>valid?</span><span class='lparen'>(</span><span class='id identifier rubyid_provider'>provider</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
|
1320
|
+
<span class='id identifier rubyid_provider'>provider</span> <span class='op'>||=</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span>
|
|
1321
|
+
<span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span> <span class='op'>-</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span> <span class='op'><</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>/</span> <span class='int'>1000</span>
|
|
1322
|
+
<span class='kw'>end</span>
|
|
1323
|
+
|
|
1324
|
+
<span class='comment'># Compares to another Entry.
|
|
1325
|
+
</span> <span class='comment'>#
|
|
1326
|
+
</span> <span class='comment'># @param other [Entry] The entry to compare with
|
|
1327
|
+
</span> <span class='comment'># @return [Boolean] `true` if the entries are the same, `false` otherwise.
|
|
1328
|
+
</span> <span class='kw'>def</span> <span class='op'>==</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
|
|
1329
|
+
<span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='lbracket'>[</span><span class='ivar'>@key</span><span class='comma'>,</span> <span class='ivar'>@hash</span><span class='comma'>,</span> <span class='ivar'>@value</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='lbracket'>[</span><span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='rbracket'>]</span>
|
|
1330
|
+
<span class='kw'>end</span>
|
|
1331
|
+
|
|
1332
|
+
<span class='comment'># Returns a unique hash for the key.
|
|
1333
|
+
</span> <span class='comment'>#
|
|
1334
|
+
</span> <span class='comment'># @param key [String] The key to hashify.
|
|
1335
|
+
</span> <span class='comment'># @return [String] An unique hash for the key.
|
|
1336
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
1337
|
+
<span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA2</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
|
|
1338
|
+
<span class='kw'>end</span>
|
|
1339
|
+
|
|
1340
|
+
<span class='comment'># Ensures that the value is an Entry.
|
|
1341
|
+
</span> <span class='comment'>#
|
|
1342
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
|
1343
|
+
</span> <span class='comment'># @param key [Object] The key associated to this object.
|
|
1344
|
+
</span> <span class='comment'># @param options [Hash] Options to manage the value.
|
|
1345
|
+
</span> <span class='comment'># @return [Entry] The wrapped object.
|
|
1346
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='kw'>ensure</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
1347
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
1348
|
+
|
|
1349
|
+
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
|
1350
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
|
1351
|
+
|
|
1352
|
+
<span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:ttl</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span>
|
|
1353
|
+
<span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
|
|
1354
|
+
|
|
1355
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span><span class='rparen'>)</span>
|
|
1356
|
+
<span class='kw'>end</span>
|
|
1357
|
+
|
|
1358
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
|
1359
|
+
<span class='kw'>end</span>
|
|
702
1360
|
<span class='kw'>end</span></pre>
|
|
703
1361
|
</td>
|
|
704
1362
|
</tr>
|
|
@@ -725,6 +1383,23 @@
|
|
|
725
1383
|
</div>
|
|
726
1384
|
<div class="tags">
|
|
727
1385
|
|
|
1386
|
+
<p class="tag_title">Returns:</p>
|
|
1387
|
+
<ul class="return">
|
|
1388
|
+
|
|
1389
|
+
<li>
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
<span class='type'>(<tt>Object</tt>)</span>
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
|
|
1396
|
+
—
|
|
1397
|
+
<div class='inline'><p>The value contained in this entry.</p>
|
|
1398
|
+
</div>
|
|
1399
|
+
|
|
1400
|
+
</li>
|
|
1401
|
+
|
|
1402
|
+
</ul>
|
|
728
1403
|
|
|
729
1404
|
</div><table class="source_code">
|
|
730
1405
|
<tr>
|
|
@@ -732,15 +1407,163 @@
|
|
|
732
1407
|
<pre class="lines">
|
|
733
1408
|
|
|
734
1409
|
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
1410
|
+
20
|
|
1411
|
+
21
|
|
1412
|
+
22
|
|
1413
|
+
23
|
|
1414
|
+
24
|
|
1415
|
+
25
|
|
1416
|
+
26
|
|
1417
|
+
27
|
|
1418
|
+
28
|
|
1419
|
+
29
|
|
1420
|
+
30
|
|
1421
|
+
31
|
|
1422
|
+
32
|
|
1423
|
+
33
|
|
1424
|
+
34
|
|
1425
|
+
35
|
|
1426
|
+
36
|
|
1427
|
+
37
|
|
1428
|
+
38
|
|
1429
|
+
39
|
|
1430
|
+
40
|
|
1431
|
+
41
|
|
1432
|
+
42
|
|
1433
|
+
43
|
|
1434
|
+
44
|
|
1435
|
+
45
|
|
1436
|
+
46
|
|
1437
|
+
47
|
|
1438
|
+
48
|
|
1439
|
+
49
|
|
1440
|
+
50
|
|
1441
|
+
51
|
|
1442
|
+
52
|
|
1443
|
+
53
|
|
1444
|
+
54
|
|
1445
|
+
55
|
|
1446
|
+
56
|
|
1447
|
+
57
|
|
1448
|
+
58
|
|
1449
|
+
59
|
|
1450
|
+
60
|
|
1451
|
+
61
|
|
1452
|
+
62
|
|
1453
|
+
63
|
|
1454
|
+
64
|
|
1455
|
+
65
|
|
1456
|
+
66
|
|
1457
|
+
67
|
|
1458
|
+
68
|
|
1459
|
+
69
|
|
1460
|
+
70
|
|
1461
|
+
71
|
|
1462
|
+
72
|
|
1463
|
+
73
|
|
1464
|
+
74
|
|
1465
|
+
75
|
|
1466
|
+
76
|
|
1467
|
+
77
|
|
1468
|
+
78
|
|
1469
|
+
79
|
|
1470
|
+
80
|
|
1471
|
+
81
|
|
1472
|
+
82
|
|
1473
|
+
83
|
|
1474
|
+
84
|
|
1475
|
+
85
|
|
1476
|
+
86
|
|
1477
|
+
87
|
|
1478
|
+
88
|
|
1479
|
+
89
|
|
1480
|
+
90
|
|
1481
|
+
91
|
|
1482
|
+
92
|
|
1483
|
+
93
|
|
1484
|
+
94
|
|
1485
|
+
95
|
|
1486
|
+
96</pre>
|
|
738
1487
|
</td>
|
|
739
1488
|
<td>
|
|
740
|
-
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line
|
|
1489
|
+
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line 20</span>
|
|
1490
|
+
|
|
1491
|
+
<span class='kw'>class</span> <span class='const'>Entry</span>
|
|
1492
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:key</span>
|
|
1493
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:hash</span>
|
|
1494
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:value</span>
|
|
1495
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:ttl</span>
|
|
1496
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:updated_at</span>
|
|
1497
|
+
|
|
1498
|
+
<span class='comment'># Creates a new entry.
|
|
1499
|
+
</span> <span class='comment'>#
|
|
1500
|
+
</span> <span class='comment'># @param key [String] The key for this entry.
|
|
1501
|
+
</span> <span class='comment'># @param value [Object] The value contained in this entry.
|
|
1502
|
+
</span> <span class='comment'># @param hash [String] The hash for this entry. Should be unique. It is automatically created if not provided.
|
|
1503
|
+
</span> <span class='comment'># @param ttl [Integer] The time to live (TTL) for this entry. If set to 0 then the entry is not cached.
|
|
1504
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='int'>360000</span><span class='rparen'>)</span>
|
|
1505
|
+
<span class='ivar'>@key</span> <span class='op'>=</span> <span class='id identifier rubyid_key'>key</span>
|
|
1506
|
+
<span class='ivar'>@hash</span> <span class='op'>=</span> <span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_hash'>hash</span> <span class='op'>:</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
1507
|
+
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
1508
|
+
<span class='ivar'>@ttl</span> <span class='op'>=</span> <span class='id identifier rubyid_ttl'>ttl</span>
|
|
1509
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>
|
|
1510
|
+
<span class='kw'>end</span>
|
|
1511
|
+
|
|
1512
|
+
<span class='comment'># Refreshes the entry.
|
|
1513
|
+
</span> <span class='comment'>#
|
|
1514
|
+
</span> <span class='comment'># @param save [Boolean] If to save the refresh value in the cache.
|
|
1515
|
+
</span> <span class='comment'># @return [Float] The new updated_at value.
|
|
1516
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_refresh'>refresh</span><span class='lparen'>(</span><span class='id identifier rubyid_save'>save</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
|
1517
|
+
<span class='ivar'>@updated_at</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>
|
|
1518
|
+
<span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='ivar'>@hash</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_save'>save</span>
|
|
1519
|
+
<span class='ivar'>@updated_at</span>
|
|
1520
|
+
<span class='kw'>end</span>
|
|
1521
|
+
|
|
1522
|
+
<span class='comment'># Checks if the entry is still valid.
|
|
1523
|
+
</span> <span class='comment'>#
|
|
1524
|
+
</span> <span class='comment'># @param provider [Provider::Base] The provider to use for the check.
|
|
1525
|
+
</span> <span class='comment'># @return [Boolean] `true` if the entry is still valid, `false` otherwise.
|
|
1526
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_valid?'>valid?</span><span class='lparen'>(</span><span class='id identifier rubyid_provider'>provider</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
|
1527
|
+
<span class='id identifier rubyid_provider'>provider</span> <span class='op'>||=</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span>
|
|
1528
|
+
<span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span> <span class='op'>-</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span> <span class='op'><</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>/</span> <span class='int'>1000</span>
|
|
1529
|
+
<span class='kw'>end</span>
|
|
1530
|
+
|
|
1531
|
+
<span class='comment'># Compares to another Entry.
|
|
1532
|
+
</span> <span class='comment'>#
|
|
1533
|
+
</span> <span class='comment'># @param other [Entry] The entry to compare with
|
|
1534
|
+
</span> <span class='comment'># @return [Boolean] `true` if the entries are the same, `false` otherwise.
|
|
1535
|
+
</span> <span class='kw'>def</span> <span class='op'>==</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
|
|
1536
|
+
<span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='lbracket'>[</span><span class='ivar'>@key</span><span class='comma'>,</span> <span class='ivar'>@hash</span><span class='comma'>,</span> <span class='ivar'>@value</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='lbracket'>[</span><span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='rbracket'>]</span>
|
|
1537
|
+
<span class='kw'>end</span>
|
|
1538
|
+
|
|
1539
|
+
<span class='comment'># Returns a unique hash for the key.
|
|
1540
|
+
</span> <span class='comment'>#
|
|
1541
|
+
</span> <span class='comment'># @param key [String] The key to hashify.
|
|
1542
|
+
</span> <span class='comment'># @return [String] An unique hash for the key.
|
|
1543
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
|
|
1544
|
+
<span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA2</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
|
|
1545
|
+
<span class='kw'>end</span>
|
|
741
1546
|
|
|
742
|
-
<span class='
|
|
743
|
-
<span class='
|
|
1547
|
+
<span class='comment'># Ensures that the value is an Entry.
|
|
1548
|
+
</span> <span class='comment'>#
|
|
1549
|
+
</span> <span class='comment'># @param value [Object] The object to check.
|
|
1550
|
+
</span> <span class='comment'># @param key [Object] The key associated to this object.
|
|
1551
|
+
</span> <span class='comment'># @param options [Hash] Options to manage the value.
|
|
1552
|
+
</span> <span class='comment'># @return [Entry] The wrapped object.
|
|
1553
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='kw'>ensure</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
1554
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
1555
|
+
|
|
1556
|
+
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='kw'>then</span>
|
|
1557
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
|
1558
|
+
|
|
1559
|
+
<span class='id identifier rubyid_ttl'>ttl</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:ttl</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span>
|
|
1560
|
+
<span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:hash</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='period'>.</span><span class='id identifier rubyid_hashify_key'>hashify_key</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
|
|
1561
|
+
|
|
1562
|
+
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_rv'>rv</span><span class='comma'>,</span> <span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_ttl'>ttl</span><span class='rparen'>)</span>
|
|
1563
|
+
<span class='kw'>end</span>
|
|
1564
|
+
|
|
1565
|
+
<span class='id identifier rubyid_rv'>rv</span>
|
|
1566
|
+
<span class='kw'>end</span>
|
|
744
1567
|
<span class='kw'>end</span></pre>
|
|
745
1568
|
</td>
|
|
746
1569
|
</tr>
|
|
@@ -765,7 +1588,7 @@
|
|
|
765
1588
|
|
|
766
1589
|
</h3><div class="docstring">
|
|
767
1590
|
<div class="discussion">
|
|
768
|
-
<p>
|
|
1591
|
+
<p>Ensures that the value is an Entry.</p>
|
|
769
1592
|
|
|
770
1593
|
|
|
771
1594
|
</div>
|
|
@@ -804,6 +1627,23 @@
|
|
|
804
1627
|
|
|
805
1628
|
</li>
|
|
806
1629
|
|
|
1630
|
+
<li>
|
|
1631
|
+
|
|
1632
|
+
<span class='name'>options</span>
|
|
1633
|
+
|
|
1634
|
+
|
|
1635
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
|
1636
|
+
|
|
1637
|
+
|
|
1638
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
|
1639
|
+
|
|
1640
|
+
|
|
1641
|
+
—
|
|
1642
|
+
<div class='inline'><p>Options to manage the value.</p>
|
|
1643
|
+
</div>
|
|
1644
|
+
|
|
1645
|
+
</li>
|
|
1646
|
+
|
|
807
1647
|
</ul>
|
|
808
1648
|
|
|
809
1649
|
<p class="tag_title">Returns:</p>
|
|
@@ -830,7 +1670,6 @@
|
|
|
830
1670
|
<pre class="lines">
|
|
831
1671
|
|
|
832
1672
|
|
|
833
|
-
81
|
|
834
1673
|
82
|
|
835
1674
|
83
|
|
836
1675
|
84
|
|
@@ -843,10 +1682,11 @@
|
|
|
843
1682
|
91
|
|
844
1683
|
92
|
|
845
1684
|
93
|
|
846
|
-
94
|
|
1685
|
+
94
|
|
1686
|
+
95</pre>
|
|
847
1687
|
</td>
|
|
848
1688
|
<td>
|
|
849
|
-
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line
|
|
1689
|
+
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line 82</span>
|
|
850
1690
|
|
|
851
1691
|
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='kw'>ensure</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
|
852
1692
|
<span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
|
@@ -960,7 +1800,7 @@
|
|
|
960
1800
|
|
|
961
1801
|
</h3><div class="docstring">
|
|
962
1802
|
<div class="discussion">
|
|
963
|
-
<p>
|
|
1803
|
+
<p>Compares to another Entry.</p>
|
|
964
1804
|
|
|
965
1805
|
|
|
966
1806
|
</div>
|
|
@@ -1018,7 +1858,7 @@
|
|
|
1018
1858
|
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line 64</span>
|
|
1019
1859
|
|
|
1020
1860
|
<span class='kw'>def</span> <span class='op'>==</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
|
|
1021
|
-
<span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='lbracket'>[</span><span class='
|
|
1861
|
+
<span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Entry</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='lbracket'>[</span><span class='ivar'>@key</span><span class='comma'>,</span> <span class='ivar'>@hash</span><span class='comma'>,</span> <span class='ivar'>@value</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='lbracket'>[</span><span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_hash'>hash</span><span class='comma'>,</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='rbracket'>]</span>
|
|
1022
1862
|
<span class='kw'>end</span></pre>
|
|
1023
1863
|
</td>
|
|
1024
1864
|
</tr>
|
|
@@ -1088,7 +1928,6 @@
|
|
|
1088
1928
|
<pre class="lines">
|
|
1089
1929
|
|
|
1090
1930
|
|
|
1091
|
-
44
|
|
1092
1931
|
45
|
|
1093
1932
|
46
|
|
1094
1933
|
47
|
|
@@ -1096,13 +1935,12 @@
|
|
|
1096
1935
|
49</pre>
|
|
1097
1936
|
</td>
|
|
1098
1937
|
<td>
|
|
1099
|
-
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line
|
|
1938
|
+
<pre class="code"><span class="info file"># File 'lib/elephas/entry.rb', line 45</span>
|
|
1100
1939
|
|
|
1101
1940
|
<span class='kw'>def</span> <span class='id identifier rubyid_refresh'>refresh</span><span class='lparen'>(</span><span class='id identifier rubyid_save'>save</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
|
1102
|
-
<span class='
|
|
1103
|
-
|
|
1104
|
-
<span class='
|
|
1105
|
-
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_updated_at'>updated_at</span>
|
|
1941
|
+
<span class='ivar'>@updated_at</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>
|
|
1942
|
+
<span class='const'>Elephas</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='ivar'>@hash</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_save'>save</span>
|
|
1943
|
+
<span class='ivar'>@updated_at</span>
|
|
1106
1944
|
<span class='kw'>end</span></pre>
|
|
1107
1945
|
</td>
|
|
1108
1946
|
</tr>
|
|
@@ -1194,9 +2032,9 @@
|
|
|
1194
2032
|
</div>
|
|
1195
2033
|
|
|
1196
2034
|
<div id="footer">
|
|
1197
|
-
Generated on
|
|
2035
|
+
Generated on Sat Feb 2 09:15:15 2013 by
|
|
1198
2036
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1199
|
-
0.8.
|
|
2037
|
+
0.8.3 (ruby-1.9.3).
|
|
1200
2038
|
</div>
|
|
1201
2039
|
|
|
1202
2040
|
</body>
|