libcache 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.idea/workspace.xml +190 -127
- data/README.md +8 -5
- data/exe/libcache +7 -5
- data/lib/libcache/cache.rb +31 -5
- data/lib/libcache/cache_builder.rb +5 -0
- data/lib/libcache/file_cache.rb +3 -7
- data/lib/libcache/version.rb +1 -1
- data/libcache.gemspec +2 -2
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2606c35b38b5771dfb5a9a29d91672d2d3d016a
|
4
|
+
data.tar.gz: d8813f052b2043e69ca42b8d7f18fa748a83c3fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37ab981d406628c118e30d7a08f8cd77da8f0d7fccf28427a7768467b435a71805236fc75d0e2062a8162018c1839ffa7da3e6382c5ce9dc0c14c8049330b032
|
7
|
+
data.tar.gz: 6acb3338121bdcfdc8b2af7c20ba7cebbbdb3d178941e2a613a94170b735ef7c805694756330c87118c1df1ebc10aba4e671066f0008bae3611dcdd33a2e0971
|
data/.idea/workspace.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<project version="4">
|
3
3
|
<component name="ChangeListManager">
|
4
|
-
<list default="true" id="fad7315f-a081-431c-8fbc-46af4841158f" name="Default" comment="">
|
4
|
+
<list default="true" id="fad7315f-a081-431c-8fbc-46af4841158f" name="Default" comment="Max size functionality now works">
|
5
5
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libcache.iml" />
|
6
6
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/misc.xml" />
|
7
7
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/modules.xml" />
|
@@ -9,7 +9,6 @@
|
|
9
9
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/console" />
|
10
10
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/setup" />
|
11
11
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/exe/libcache" />
|
12
|
-
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/libcache.gemspec" afterPath="$PROJECT_DIR$/libcache.gemspec" />
|
13
12
|
</list>
|
14
13
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
15
14
|
<option name="TRACKING_ENABLED" value="true" />
|
@@ -19,53 +18,43 @@
|
|
19
18
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
20
19
|
</component>
|
21
20
|
<component name="CoverageDataManager">
|
22
|
-
<SUITE FILE_PATH="coverage/libcache@libcache.coverage" NAME="libcache Coverage Results" MODIFIED="
|
21
|
+
<SUITE FILE_PATH="coverage/libcache@libcache.coverage" NAME="libcache Coverage Results" MODIFIED="1484394784716" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/exe" MODULE_NAME="libcache" />
|
23
22
|
</component>
|
24
23
|
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
|
25
24
|
<component name="FileEditorManager">
|
26
25
|
<leaf>
|
27
|
-
<file leaf-file-name="
|
28
|
-
<entry file="file://$PROJECT_DIR$/
|
26
|
+
<file leaf-file-name="version.rb" pinned="false" current-in-tab="true">
|
27
|
+
<entry file="file://$PROJECT_DIR$/lib/libcache/version.rb">
|
29
28
|
<provider selected="true" editor-type-id="text-editor">
|
30
|
-
<state relative-caret-position="
|
31
|
-
<caret line="
|
29
|
+
<state relative-caret-position="32">
|
30
|
+
<caret line="2" column="3" lean-forward="true" selection-start-line="2" selection-start-column="3" selection-end-line="2" selection-end-column="3" />
|
32
31
|
<folding />
|
33
32
|
</state>
|
34
33
|
</provider>
|
35
34
|
</entry>
|
36
35
|
</file>
|
37
|
-
<file leaf-file-name="
|
38
|
-
<entry file="file://$PROJECT_DIR$/
|
39
|
-
<provider selected="true" editor-type-id="
|
40
|
-
<state
|
41
|
-
<
|
42
|
-
|
43
|
-
<folding>
|
44
|
-
<marker date="1484353847762" expanded="true" signature="565:584" ph="{ ... }" />
|
45
|
-
<marker date="1484353847762" expanded="true" signature="705:791" ph="##..." />
|
46
|
-
<marker date="1484353847762" expanded="true" signature="800:828" ph="do ... end" />
|
47
|
-
<marker date="1484353847762" expanded="true" signature="1159:1178" ph="{ ... }" />
|
48
|
-
<marker date="1484353847762" expanded="true" signature="1299:1395" ph="##..." />
|
49
|
-
<marker date="1484353847762" expanded="true" signature="1404:1432" ph="do ... end" />
|
50
|
-
</folding>
|
51
|
-
</first_editor>
|
52
|
-
<second_editor />
|
36
|
+
<file leaf-file-name="cache_builder.rb" pinned="false" current-in-tab="false">
|
37
|
+
<entry file="file://$PROJECT_DIR$/lib/libcache/cache_builder.rb">
|
38
|
+
<provider selected="true" editor-type-id="text-editor">
|
39
|
+
<state relative-caret-position="0">
|
40
|
+
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
41
|
+
<folding />
|
53
42
|
</state>
|
54
43
|
</provider>
|
55
44
|
</entry>
|
56
45
|
</file>
|
57
|
-
<file leaf-file-name="
|
58
|
-
<entry file="file://$PROJECT_DIR
|
46
|
+
<file leaf-file-name="libcache" pinned="false" current-in-tab="false">
|
47
|
+
<entry file="file://$PROJECT_DIR$/exe/libcache">
|
59
48
|
<provider selected="true" editor-type-id="text-editor">
|
60
49
|
<state relative-caret-position="80">
|
61
|
-
<caret line="5" column="
|
50
|
+
<caret line="5" column="81" lean-forward="true" selection-start-line="5" selection-start-column="68" selection-end-line="5" selection-end-column="81" />
|
62
51
|
<folding />
|
63
52
|
</state>
|
64
53
|
</provider>
|
65
54
|
</entry>
|
66
55
|
</file>
|
67
|
-
<file leaf-file-name="
|
68
|
-
<entry file="file://$PROJECT_DIR$/
|
56
|
+
<file leaf-file-name="Rakefile" pinned="false" current-in-tab="false">
|
57
|
+
<entry file="file://$PROJECT_DIR$/Rakefile">
|
69
58
|
<provider selected="true" editor-type-id="text-editor">
|
70
59
|
<state relative-caret-position="0">
|
71
60
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
@@ -74,21 +63,21 @@
|
|
74
63
|
</provider>
|
75
64
|
</entry>
|
76
65
|
</file>
|
77
|
-
<file leaf-file-name="
|
78
|
-
<entry file="file://$PROJECT_DIR$/
|
66
|
+
<file leaf-file-name="Gemfile" pinned="false" current-in-tab="false">
|
67
|
+
<entry file="file://$PROJECT_DIR$/Gemfile">
|
79
68
|
<provider selected="true" editor-type-id="text-editor">
|
80
|
-
<state relative-caret-position="
|
81
|
-
<caret line="
|
69
|
+
<state relative-caret-position="48">
|
70
|
+
<caret line="3" column="7" lean-forward="false" selection-start-line="3" selection-start-column="7" selection-end-line="3" selection-end-column="7" />
|
82
71
|
<folding />
|
83
72
|
</state>
|
84
73
|
</provider>
|
85
74
|
</entry>
|
86
75
|
</file>
|
87
|
-
<file leaf-file-name="
|
88
|
-
<entry file="file://$PROJECT_DIR$/
|
76
|
+
<file leaf-file-name="libcache.gemspec" pinned="false" current-in-tab="false">
|
77
|
+
<entry file="file://$PROJECT_DIR$/libcache.gemspec">
|
89
78
|
<provider selected="true" editor-type-id="text-editor">
|
90
|
-
<state relative-caret-position="
|
91
|
-
<caret line="
|
79
|
+
<state relative-caret-position="259">
|
80
|
+
<caret line="17" column="39" lean-forward="true" selection-start-line="17" selection-start-column="39" selection-end-line="17" selection-end-column="39" />
|
92
81
|
<folding />
|
93
82
|
</state>
|
94
83
|
</provider>
|
@@ -97,42 +86,41 @@
|
|
97
86
|
<file leaf-file-name="cache.rb" pinned="false" current-in-tab="false">
|
98
87
|
<entry file="file://$PROJECT_DIR$/lib/libcache/cache.rb">
|
99
88
|
<provider selected="true" editor-type-id="text-editor">
|
100
|
-
<state relative-caret-position="
|
101
|
-
<caret line="
|
89
|
+
<state relative-caret-position="112">
|
90
|
+
<caret line="7" column="16" lean-forward="true" selection-start-line="7" selection-start-column="16" selection-end-line="7" selection-end-column="16" />
|
102
91
|
<folding />
|
103
92
|
</state>
|
104
93
|
</provider>
|
105
94
|
</entry>
|
106
95
|
</file>
|
107
|
-
<file leaf-file-name="
|
108
|
-
<entry file="file://$PROJECT_DIR$/
|
109
|
-
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
110
|
-
<state split_layout="SPLIT">
|
111
|
-
<first_editor relative-caret-position="0">
|
112
|
-
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
113
|
-
<folding />
|
114
|
-
</first_editor>
|
115
|
-
<second_editor />
|
116
|
-
</state>
|
117
|
-
</provider>
|
118
|
-
</entry>
|
119
|
-
</file>
|
120
|
-
<file leaf-file-name="Gemfile" pinned="false" current-in-tab="false">
|
121
|
-
<entry file="file://$PROJECT_DIR$/Gemfile">
|
96
|
+
<file leaf-file-name="file_cache.rb" pinned="false" current-in-tab="false">
|
97
|
+
<entry file="file://$PROJECT_DIR$/lib/libcache/file_cache.rb">
|
122
98
|
<provider selected="true" editor-type-id="text-editor">
|
123
|
-
<state relative-caret-position="
|
124
|
-
<caret line="
|
99
|
+
<state relative-caret-position="272">
|
100
|
+
<caret line="17" column="53" lean-forward="true" selection-start-line="17" selection-start-column="53" selection-end-line="17" selection-end-column="53" />
|
125
101
|
<folding />
|
126
102
|
</state>
|
127
103
|
</provider>
|
128
104
|
</entry>
|
129
105
|
</file>
|
130
|
-
<file leaf-file-name="
|
131
|
-
<entry file="file://$PROJECT_DIR$/
|
132
|
-
<provider selected="true" editor-type-id="text-editor">
|
133
|
-
<state
|
134
|
-
<
|
135
|
-
|
106
|
+
<file leaf-file-name="README.md" pinned="false" current-in-tab="false">
|
107
|
+
<entry file="file://$PROJECT_DIR$/README.md">
|
108
|
+
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
109
|
+
<state split_layout="FIRST">
|
110
|
+
<first_editor relative-caret-position="284">
|
111
|
+
<caret line="49" column="0" lean-forward="true" selection-start-line="49" selection-start-column="0" selection-end-line="49" selection-end-column="0" />
|
112
|
+
<folding>
|
113
|
+
<marker date="1484395044567" expanded="true" signature="944:963" ph="{ ... }" />
|
114
|
+
<marker date="1484395044567" expanded="true" signature="1084:1276" ph="##..." />
|
115
|
+
<marker date="1484395044567" expanded="true" signature="1150:1276" ph="##..." />
|
116
|
+
<marker date="1484395044567" expanded="true" signature="1285:1313" ph="do ... end" />
|
117
|
+
<marker date="1484395044567" expanded="true" signature="1801:1820" ph="{ ... }" />
|
118
|
+
<marker date="1484395044567" expanded="true" signature="1941:2144" ph="##..." />
|
119
|
+
<marker date="1484395044567" expanded="true" signature="2007:2144" ph="##..." />
|
120
|
+
<marker date="1484395044567" expanded="true" signature="2153:2181" ph="do ... end" />
|
121
|
+
</folding>
|
122
|
+
</first_editor>
|
123
|
+
<second_editor />
|
136
124
|
</state>
|
137
125
|
</provider>
|
138
126
|
</entry>
|
@@ -153,12 +141,14 @@
|
|
153
141
|
<option name="CHANGED_PATHS">
|
154
142
|
<list>
|
155
143
|
<option value="$PROJECT_DIR$/Gemfile" />
|
156
|
-
<option value="$PROJECT_DIR$/
|
157
|
-
<option value="$PROJECT_DIR$/lib/libcache/cache_builder.rb" />
|
144
|
+
<option value="$PROJECT_DIR$/test/libcache_test.rb" />
|
158
145
|
<option value="$PROJECT_DIR$/lib/libcache/file_cache.rb" />
|
146
|
+
<option value="$PROJECT_DIR$/lib/libcache/cache_builder.rb" />
|
147
|
+
<option value="$PROJECT_DIR$/lib/libcache/cache.rb" />
|
148
|
+
<option value="$PROJECT_DIR$/libcache.gemspec" />
|
159
149
|
<option value="$PROJECT_DIR$/exe/libcache" />
|
160
150
|
<option value="$PROJECT_DIR$/README.md" />
|
161
|
-
<option value="$PROJECT_DIR$/libcache.
|
151
|
+
<option value="$PROJECT_DIR$/lib/libcache/version.rb" />
|
162
152
|
</list>
|
163
153
|
</option>
|
164
154
|
</component>
|
@@ -427,7 +417,7 @@
|
|
427
417
|
<option name="number" value="Default" />
|
428
418
|
<option name="presentableId" value="Default" />
|
429
419
|
<updated>1484342488609</updated>
|
430
|
-
<workItem from="1484342491002" duration="
|
420
|
+
<workItem from="1484342491002" duration="16293000" />
|
431
421
|
</task>
|
432
422
|
<task id="LOCAL-00001" summary="Initial commit">
|
433
423
|
<created>1484352837659</created>
|
@@ -457,24 +447,86 @@
|
|
457
447
|
<option name="project" value="LOCAL" />
|
458
448
|
<updated>1484353976281</updated>
|
459
449
|
</task>
|
460
|
-
<
|
450
|
+
<task id="LOCAL-00005" summary="Completed deployment to Rubygems.org">
|
451
|
+
<created>1484354716135</created>
|
452
|
+
<option name="number" value="00005" />
|
453
|
+
<option name="presentableId" value="LOCAL-00005" />
|
454
|
+
<option name="project" value="LOCAL" />
|
455
|
+
<updated>1484354716135</updated>
|
456
|
+
</task>
|
457
|
+
<task id="LOCAL-00006" summary="Removed useless test">
|
458
|
+
<created>1484354778910</created>
|
459
|
+
<option name="number" value="00006" />
|
460
|
+
<option name="presentableId" value="LOCAL-00006" />
|
461
|
+
<option name="project" value="LOCAL" />
|
462
|
+
<updated>1484354778910</updated>
|
463
|
+
</task>
|
464
|
+
<task id="LOCAL-00007" summary="Added travis badge">
|
465
|
+
<created>1484354873007</created>
|
466
|
+
<option name="number" value="00007" />
|
467
|
+
<option name="presentableId" value="LOCAL-00007" />
|
468
|
+
<option name="project" value="LOCAL" />
|
469
|
+
<updated>1484354873007</updated>
|
470
|
+
</task>
|
471
|
+
<task id="LOCAL-00008" summary="Reduced some code redundancy and introduced max_size and exists functionality">
|
472
|
+
<created>1484388395659</created>
|
473
|
+
<option name="number" value="00008" />
|
474
|
+
<option name="presentableId" value="LOCAL-00008" />
|
475
|
+
<option name="project" value="LOCAL" />
|
476
|
+
<updated>1484388395659</updated>
|
477
|
+
</task>
|
478
|
+
<task id="LOCAL-00009" summary="Max size functionality now works">
|
479
|
+
<created>1484390193329</created>
|
480
|
+
<option name="number" value="00009" />
|
481
|
+
<option name="presentableId" value="LOCAL-00009" />
|
482
|
+
<option name="project" value="LOCAL" />
|
483
|
+
<updated>1484390193329</updated>
|
484
|
+
</task>
|
485
|
+
<task id="LOCAL-00010" summary="Made made size opitonal">
|
486
|
+
<created>1484394646216</created>
|
487
|
+
<option name="number" value="00010" />
|
488
|
+
<option name="presentableId" value="LOCAL-00010" />
|
489
|
+
<option name="project" value="LOCAL" />
|
490
|
+
<updated>1484394646216</updated>
|
491
|
+
</task>
|
492
|
+
<task id="LOCAL-00011" summary="Updated description for gemspec">
|
493
|
+
<created>1484394749138</created>
|
494
|
+
<option name="number" value="00011" />
|
495
|
+
<option name="presentableId" value="LOCAL-00011" />
|
496
|
+
<option name="project" value="LOCAL" />
|
497
|
+
<updated>1484394749138</updated>
|
498
|
+
</task>
|
499
|
+
<task id="LOCAL-00012" summary="Updated readme to better describe functionality">
|
500
|
+
<created>1484395061383</created>
|
501
|
+
<option name="number" value="00012" />
|
502
|
+
<option name="presentableId" value="LOCAL-00012" />
|
503
|
+
<option name="project" value="LOCAL" />
|
504
|
+
<updated>1484395061383</updated>
|
505
|
+
</task>
|
506
|
+
<task id="LOCAL-00013" summary="Updated version to 0.2.0">
|
507
|
+
<created>1484395089315</created>
|
508
|
+
<option name="number" value="00013" />
|
509
|
+
<option name="presentableId" value="LOCAL-00013" />
|
510
|
+
<option name="project" value="LOCAL" />
|
511
|
+
<updated>1484395089315</updated>
|
512
|
+
</task>
|
513
|
+
<option name="localTasksCounter" value="14" />
|
461
514
|
<servers />
|
462
515
|
</component>
|
463
516
|
<component name="TimeTrackingManager">
|
464
|
-
<option name="totallyTimeSpent" value="
|
517
|
+
<option name="totallyTimeSpent" value="16293000" />
|
465
518
|
</component>
|
466
519
|
<component name="ToolWindowManager">
|
467
520
|
<frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
|
468
|
-
<editor active="true" />
|
469
521
|
<layout>
|
470
522
|
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24743778" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
471
523
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
472
524
|
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
473
525
|
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
474
526
|
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
475
|
-
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.
|
527
|
+
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33438987" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
476
528
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
477
|
-
<window_info id="Terminal" active="
|
529
|
+
<window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3296355" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
478
530
|
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
479
531
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
480
532
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
@@ -497,14 +549,23 @@
|
|
497
549
|
<MESSAGE value="Update links" />
|
498
550
|
<MESSAGE value="Updated readme" />
|
499
551
|
<MESSAGE value="Fixed typos" />
|
500
|
-
<
|
552
|
+
<MESSAGE value="Completed deployment to Rubygems.org" />
|
553
|
+
<MESSAGE value="Removed useless test" />
|
554
|
+
<MESSAGE value="Added travis badge" />
|
555
|
+
<MESSAGE value="Reduced some code redundancy and introduced max_size and exists functionality" />
|
556
|
+
<MESSAGE value="Max size functionality now works" />
|
557
|
+
<MESSAGE value="Made made size opitonal" />
|
558
|
+
<MESSAGE value="Updated description for gemspec" />
|
559
|
+
<MESSAGE value="Updated readme to better describe functionality" />
|
560
|
+
<MESSAGE value="Updated version to 0.2.0" />
|
561
|
+
<option name="LAST_COMMIT_MESSAGE" value="Updated version to 0.2.0" />
|
501
562
|
</component>
|
502
563
|
<component name="XDebuggerManager">
|
503
564
|
<breakpoint-manager />
|
504
565
|
<watches-manager />
|
505
566
|
</component>
|
506
567
|
<component name="editorHistoryManager">
|
507
|
-
<entry file="file://$PROJECT_DIR$/
|
568
|
+
<entry file="file://$PROJECT_DIR$/lib/libcache.rb">
|
508
569
|
<provider selected="true" editor-type-id="text-editor">
|
509
570
|
<state relative-caret-position="0">
|
510
571
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
@@ -512,7 +573,7 @@
|
|
512
573
|
</state>
|
513
574
|
</provider>
|
514
575
|
</entry>
|
515
|
-
<entry file="file://$PROJECT_DIR$/
|
576
|
+
<entry file="file://$PROJECT_DIR$/Gemfile.lock">
|
516
577
|
<provider selected="true" editor-type-id="text-editor">
|
517
578
|
<state relative-caret-position="0">
|
518
579
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
@@ -520,15 +581,15 @@
|
|
520
581
|
</state>
|
521
582
|
</provider>
|
522
583
|
</entry>
|
523
|
-
<entry file="file://$PROJECT_DIR
|
584
|
+
<entry file="file://$PROJECT_DIR$/.travis.yml">
|
524
585
|
<provider selected="true" editor-type-id="text-editor">
|
525
|
-
<state relative-caret-position="
|
526
|
-
<caret line="
|
586
|
+
<state relative-caret-position="80">
|
587
|
+
<caret line="5" column="0" lean-forward="true" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
|
527
588
|
<folding />
|
528
589
|
</state>
|
529
590
|
</provider>
|
530
591
|
</entry>
|
531
|
-
<entry file="file://$PROJECT_DIR$/
|
592
|
+
<entry file="file://$PROJECT_DIR$/test/test_helper.rb">
|
532
593
|
<provider selected="true" editor-type-id="text-editor">
|
533
594
|
<state relative-caret-position="0">
|
534
595
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
@@ -536,57 +597,58 @@
|
|
536
597
|
</state>
|
537
598
|
</provider>
|
538
599
|
</entry>
|
539
|
-
<entry file="file://$PROJECT_DIR$/
|
600
|
+
<entry file="file://$PROJECT_DIR$/CODE_OF_CONDUCT.md">
|
601
|
+
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
602
|
+
<state split_layout="SPLIT">
|
603
|
+
<first_editor relative-caret-position="0">
|
604
|
+
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
605
|
+
<folding />
|
606
|
+
</first_editor>
|
607
|
+
<second_editor />
|
608
|
+
</state>
|
609
|
+
</provider>
|
610
|
+
</entry>
|
611
|
+
<entry file="file://$PROJECT_DIR$/test/libcache_test.rb">
|
540
612
|
<provider selected="true" editor-type-id="text-editor">
|
541
|
-
<state relative-caret-position="
|
542
|
-
<caret line="
|
613
|
+
<state relative-caret-position="112">
|
614
|
+
<caret line="7" column="0" lean-forward="true" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
|
543
615
|
<folding />
|
544
616
|
</state>
|
545
617
|
</provider>
|
546
618
|
</entry>
|
547
|
-
<entry file="file://$PROJECT_DIR$/
|
619
|
+
<entry file="file://$PROJECT_DIR$/Gemfile">
|
548
620
|
<provider selected="true" editor-type-id="text-editor">
|
549
|
-
<state relative-caret-position="
|
550
|
-
<caret line="
|
621
|
+
<state relative-caret-position="48">
|
622
|
+
<caret line="3" column="7" lean-forward="false" selection-start-line="3" selection-start-column="7" selection-end-line="3" selection-end-column="7" />
|
551
623
|
<folding />
|
552
624
|
</state>
|
553
625
|
</provider>
|
554
626
|
</entry>
|
555
|
-
<entry file="file://$PROJECT_DIR$/
|
627
|
+
<entry file="file://$PROJECT_DIR$/libcache.gemspec">
|
556
628
|
<provider selected="true" editor-type-id="text-editor">
|
557
|
-
<state relative-caret-position="
|
558
|
-
<caret line="
|
629
|
+
<state relative-caret-position="259">
|
630
|
+
<caret line="17" column="39" lean-forward="true" selection-start-line="17" selection-start-column="39" selection-end-line="17" selection-end-column="39" />
|
559
631
|
<folding />
|
560
632
|
</state>
|
561
633
|
</provider>
|
562
634
|
</entry>
|
563
|
-
<entry file="file://$PROJECT_DIR$/
|
564
|
-
<provider selected="true" editor-type-id="
|
565
|
-
<state
|
566
|
-
<
|
567
|
-
|
568
|
-
<folding>
|
569
|
-
<marker date="1484353847762" expanded="true" signature="565:584" ph="{ ... }" />
|
570
|
-
<marker date="1484353847762" expanded="true" signature="705:791" ph="##..." />
|
571
|
-
<marker date="1484353847762" expanded="true" signature="800:828" ph="do ... end" />
|
572
|
-
<marker date="1484353847762" expanded="true" signature="1159:1178" ph="{ ... }" />
|
573
|
-
<marker date="1484353847762" expanded="true" signature="1299:1395" ph="##..." />
|
574
|
-
<marker date="1484353847762" expanded="true" signature="1404:1432" ph="do ... end" />
|
575
|
-
</folding>
|
576
|
-
</first_editor>
|
577
|
-
<second_editor />
|
635
|
+
<entry file="file://$PROJECT_DIR$/lib/libcache/cache_builder.rb">
|
636
|
+
<provider selected="true" editor-type-id="text-editor">
|
637
|
+
<state relative-caret-position="0">
|
638
|
+
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
639
|
+
<folding />
|
578
640
|
</state>
|
579
641
|
</provider>
|
580
642
|
</entry>
|
581
|
-
<entry file="file://$PROJECT_DIR
|
643
|
+
<entry file="file://$PROJECT_DIR$/lib/libcache/file_cache.rb">
|
582
644
|
<provider selected="true" editor-type-id="text-editor">
|
583
|
-
<state relative-caret-position="
|
584
|
-
<caret line="
|
645
|
+
<state relative-caret-position="272">
|
646
|
+
<caret line="17" column="53" lean-forward="true" selection-start-line="17" selection-start-column="53" selection-end-line="17" selection-end-column="53" />
|
585
647
|
<folding />
|
586
648
|
</state>
|
587
649
|
</provider>
|
588
650
|
</entry>
|
589
|
-
<entry file="file://$PROJECT_DIR$/
|
651
|
+
<entry file="file://$PROJECT_DIR$/Rakefile">
|
590
652
|
<provider selected="true" editor-type-id="text-editor">
|
591
653
|
<state relative-caret-position="0">
|
592
654
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
@@ -594,45 +656,46 @@
|
|
594
656
|
</state>
|
595
657
|
</provider>
|
596
658
|
</entry>
|
597
|
-
<entry file="file://$PROJECT_DIR$/
|
659
|
+
<entry file="file://$PROJECT_DIR$/exe/libcache">
|
598
660
|
<provider selected="true" editor-type-id="text-editor">
|
599
|
-
<state relative-caret-position="
|
600
|
-
<caret line="
|
661
|
+
<state relative-caret-position="80">
|
662
|
+
<caret line="5" column="81" lean-forward="true" selection-start-line="5" selection-start-column="68" selection-end-line="5" selection-end-column="81" />
|
601
663
|
<folding />
|
602
664
|
</state>
|
603
665
|
</provider>
|
604
666
|
</entry>
|
605
|
-
<entry file="file://$PROJECT_DIR$/lib/libcache/
|
667
|
+
<entry file="file://$PROJECT_DIR$/lib/libcache/cache.rb">
|
606
668
|
<provider selected="true" editor-type-id="text-editor">
|
607
|
-
<state relative-caret-position="
|
608
|
-
<caret line="
|
669
|
+
<state relative-caret-position="112">
|
670
|
+
<caret line="7" column="16" lean-forward="true" selection-start-line="7" selection-start-column="16" selection-end-line="7" selection-end-column="16" />
|
609
671
|
<folding />
|
610
672
|
</state>
|
611
673
|
</provider>
|
612
674
|
</entry>
|
613
|
-
<entry file="file://$PROJECT_DIR$/
|
675
|
+
<entry file="file://$PROJECT_DIR$/README.md">
|
614
676
|
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
615
|
-
<state split_layout="
|
616
|
-
<first_editor relative-caret-position="
|
617
|
-
<caret line="
|
618
|
-
<folding
|
677
|
+
<state split_layout="FIRST">
|
678
|
+
<first_editor relative-caret-position="284">
|
679
|
+
<caret line="49" column="0" lean-forward="true" selection-start-line="49" selection-start-column="0" selection-end-line="49" selection-end-column="0" />
|
680
|
+
<folding>
|
681
|
+
<marker date="1484395044567" expanded="true" signature="944:963" ph="{ ... }" />
|
682
|
+
<marker date="1484395044567" expanded="true" signature="1084:1276" ph="##..." />
|
683
|
+
<marker date="1484395044567" expanded="true" signature="1150:1276" ph="##..." />
|
684
|
+
<marker date="1484395044567" expanded="true" signature="1285:1313" ph="do ... end" />
|
685
|
+
<marker date="1484395044567" expanded="true" signature="1801:1820" ph="{ ... }" />
|
686
|
+
<marker date="1484395044567" expanded="true" signature="1941:2144" ph="##..." />
|
687
|
+
<marker date="1484395044567" expanded="true" signature="2007:2144" ph="##..." />
|
688
|
+
<marker date="1484395044567" expanded="true" signature="2153:2181" ph="do ... end" />
|
689
|
+
</folding>
|
619
690
|
</first_editor>
|
620
691
|
<second_editor />
|
621
692
|
</state>
|
622
693
|
</provider>
|
623
694
|
</entry>
|
624
|
-
<entry file="file://$PROJECT_DIR$/
|
625
|
-
<provider selected="true" editor-type-id="text-editor">
|
626
|
-
<state relative-caret-position="48">
|
627
|
-
<caret line="3" column="7" lean-forward="false" selection-start-line="3" selection-start-column="7" selection-end-line="3" selection-end-column="7" />
|
628
|
-
<folding />
|
629
|
-
</state>
|
630
|
-
</provider>
|
631
|
-
</entry>
|
632
|
-
<entry file="file://$PROJECT_DIR$/libcache.gemspec">
|
695
|
+
<entry file="file://$PROJECT_DIR$/lib/libcache/version.rb">
|
633
696
|
<provider selected="true" editor-type-id="text-editor">
|
634
|
-
<state relative-caret-position="
|
635
|
-
<caret line="
|
697
|
+
<state relative-caret-position="32">
|
698
|
+
<caret line="2" column="3" lean-forward="true" selection-start-line="2" selection-start-column="3" selection-end-line="2" selection-end-column="3" />
|
636
699
|
<folding />
|
637
700
|
</state>
|
638
701
|
</provider>
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Libcache
|
1
|
+
# Libcache [![Build Status](https://travis-ci.org/silk8192/libcache.svg?branch=master)](https://travis-ci.org/silk8192/libcache) [![Gem Version](https://badge.fury.io/rb/libcache.svg)](https://badge.fury.io/rb/libcache)
|
2
2
|
|
3
3
|
A caching library that provides in-memory and file based cache
|
4
4
|
|
@@ -20,15 +20,16 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
For an in memory Cache with an expiry time of 3 seconds, store location at 'foo\bar', and refresh method where 100 is added to the key (of course more sophisticated value retrieving operations will replace this method)
|
23
|
+
For an in memory Cache with an expiry time of 3 seconds, store location at 'foo\bar', a max size of 500, and refresh method where 100 is added to the key (of course more sophisticated value retrieving operations will replace this method). Of course these additions are optional and configurable. The simplest form of an in-memory cache is ```CacheBuilder.with(Cache).build```
|
24
24
|
```ruby
|
25
25
|
|
26
|
-
cache = CacheBuilder.with(Cache).set_expiry('3s').set_refresh(Proc.new { |key| key + 100 }).build
|
26
|
+
cache = CacheBuilder.with(Cache).set_expiry('3s').set_max(500).set_refresh(Proc.new { |key| key + 100 }).build
|
27
27
|
|
28
28
|
cache.put(1, 5)
|
29
29
|
cache.get(1) # will return 5
|
30
30
|
sleep 4 # note that this is more than the expiry time
|
31
31
|
cache.get(1) # will return 105 as the data has been refreshed
|
32
|
+
cache.exists?(1) # will return true. if there is no set_refresh method provided then it will return false
|
32
33
|
|
33
34
|
# delete all data on exit of program
|
34
35
|
at_exit do
|
@@ -37,14 +38,16 @@ end
|
|
37
38
|
|
38
39
|
```
|
39
40
|
|
40
|
-
For an file-based Cache with an expiry time of 3 seconds, store location at 'foo\bar', and refresh method where 100 is added to the key (of course more sophisticated value retrieving operations will replace this method)
|
41
|
+
For an file-based Cache with an expiry time of 3 seconds, store location at 'foo\bar', and refresh method where 100 is added to the key (of course more sophisticated value retrieving operations will replace this method). Of course these additions are optional and configurable. The only thing that is non-removable is the ```set_store``` method.
|
41
42
|
```ruby
|
42
|
-
cache = CacheBuilder.with(FileCache).set_store('foo\bar').set_expiry('3s').set_refresh(Proc.new { |key| key + 100 }).build
|
43
|
+
cache = CacheBuilder.with(FileCache).set_store('foo\bar').set_expiry('3s').set_expiry('3s').set_max(500).set_refresh(Proc.new { |key| key + 100 }).build
|
43
44
|
|
44
45
|
cache.put(1, 5)
|
45
46
|
cache.get(1) # will return 5
|
46
47
|
sleep 4 # note that this is more than the expiry time
|
47
48
|
cache.get(1) # will return 105 as the data has been refreshed
|
49
|
+
cache.exists?(1) # will return true. if there is no set_refresh method provided then it will return false
|
50
|
+
|
48
51
|
|
49
52
|
# delete all leftover files on exit of program
|
50
53
|
at_exit do
|
data/exe/libcache
CHANGED
@@ -3,15 +3,17 @@
|
|
3
3
|
require "../lib/libcache/cache_builder"
|
4
4
|
require_relative "../lib/libcache/file_cache"
|
5
5
|
|
6
|
-
cache = CacheBuilder.with(Cache).set_store(ARGV[0]).set_expiry('3s').
|
6
|
+
cache = CacheBuilder.with(Cache).set_store(ARGV[0]).set_expiry('3s').set_max(500).build
|
7
7
|
|
8
|
-
cache.put(
|
8
|
+
cache.put("1as", 2)
|
9
9
|
|
10
|
-
|
11
|
-
puts cache.
|
12
|
-
sleep i
|
10
|
+
7.times do |i|
|
11
|
+
puts cache.exists?("1as")
|
12
|
+
sleep i / 2
|
13
13
|
end
|
14
14
|
|
15
|
+
puts "yeet"
|
16
|
+
|
15
17
|
at_exit do
|
16
18
|
cache.invalidateAll
|
17
19
|
end
|
data/lib/libcache/cache.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
require 'rufus-scheduler'
|
2
|
+
require 'pp'
|
2
3
|
|
3
4
|
class Cache
|
4
5
|
|
5
|
-
attr_accessor :expiry_time, :refresh, :store
|
6
|
+
attr_accessor :expiry_time, :refresh, :store, :max_size
|
6
7
|
|
7
8
|
def initialize
|
8
9
|
ENV['TZ'] = 'UTC'
|
9
10
|
@scheduler = Rufus::Scheduler.new
|
11
|
+
@time_tracker = Hash.new
|
10
12
|
end
|
11
13
|
|
12
14
|
def create_store
|
@@ -14,6 +16,15 @@ class Cache
|
|
14
16
|
end
|
15
17
|
|
16
18
|
def put(key, value)
|
19
|
+
# removed oldest entry if max_size is approached
|
20
|
+
if max_size != nil
|
21
|
+
if @cache.size >= max_size
|
22
|
+
key, value = @time_tracker.values.sort {|v| Time.now - v }.reverse.first
|
23
|
+
invalidate(key)
|
24
|
+
@time_tracker.delete(key)
|
25
|
+
end
|
26
|
+
@time_tracker[key] = Time.now
|
27
|
+
end
|
17
28
|
@cache[key] = value
|
18
29
|
@scheduler.in expiry_time, :blocking => true do
|
19
30
|
invalidate key
|
@@ -21,12 +32,27 @@ class Cache
|
|
21
32
|
end
|
22
33
|
|
23
34
|
def get(key)
|
24
|
-
|
25
|
-
return refresh.call key
|
26
|
-
end
|
35
|
+
check_refresh(key)
|
27
36
|
return @cache[key]
|
28
37
|
end
|
29
38
|
|
39
|
+
def exists?(key)
|
40
|
+
return @cache.key?(key)
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
def check_refresh(key)
|
45
|
+
if @cache[key] == nil && !has_refresh?
|
46
|
+
val = refresh.call(key)
|
47
|
+
put(key, val)
|
48
|
+
return val
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def has_refresh?
|
53
|
+
return refresh == nil
|
54
|
+
end
|
55
|
+
|
30
56
|
def invalidate(key)
|
31
57
|
@cache.delete key
|
32
58
|
end
|
@@ -35,4 +61,4 @@ class Cache
|
|
35
61
|
@cache.clear
|
36
62
|
end
|
37
63
|
|
38
|
-
end
|
64
|
+
end
|
data/lib/libcache/file_cache.rb
CHANGED
@@ -24,11 +24,7 @@ class FileCache < Cache
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def get(key)
|
27
|
-
|
28
|
-
val = refresh.call(key)
|
29
|
-
put(key, val)
|
30
|
-
return val
|
31
|
-
end
|
27
|
+
refresh
|
32
28
|
return File.read(File.join(store, key.to_s))
|
33
29
|
end
|
34
30
|
|
@@ -39,9 +35,9 @@ class FileCache < Cache
|
|
39
35
|
|
40
36
|
def invalidateAll
|
41
37
|
super
|
42
|
-
Dir.foreach(store)
|
38
|
+
Dir.foreach(store) do |f|
|
43
39
|
File.delete(File.join(store, f)) if f != '.' && f != '..'
|
44
|
-
|
40
|
+
end
|
45
41
|
end
|
46
42
|
|
47
43
|
end
|
data/lib/libcache/version.rb
CHANGED
data/libcache.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["silk8192"]
|
10
10
|
spec.email = ["silk8192@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary = "A caching library that provides in-memory and file based cache"
|
13
|
-
spec.description = "A caching library that provides in-memory and file based cache"
|
12
|
+
spec.summary = "A caching library that provides an in-memory and file based cache"
|
13
|
+
spec.description = "A caching library that provides an in-memory and file based cache with various functionality similar to Guava's Caching system. For information on how to use: https://github.com/silk8192/libcache"
|
14
14
|
spec.homepage = "https://github.com/silk8192/libcache"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libcache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- silk8192
|
@@ -52,7 +52,9 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '5.0'
|
55
|
-
description: A caching library that provides in-memory and file based cache
|
55
|
+
description: 'A caching library that provides an in-memory and file based cache with
|
56
|
+
various functionality similar to Guava''s Caching system. For information on how
|
57
|
+
to use: https://github.com/silk8192/libcache'
|
56
58
|
email:
|
57
59
|
- silk8192@gmail.com
|
58
60
|
executables:
|
@@ -103,5 +105,5 @@ rubyforge_project:
|
|
103
105
|
rubygems_version: 2.6.8
|
104
106
|
signing_key:
|
105
107
|
specification_version: 4
|
106
|
-
summary: A caching library that provides in-memory and file based cache
|
108
|
+
summary: A caching library that provides an in-memory and file based cache
|
107
109
|
test_files: []
|