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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f40f2854d61e701f86b7a283b0263007e4272fb6
4
- data.tar.gz: 6a35287703e0ddc7741add12abb3deb0b31a59dc
3
+ metadata.gz: a2606c35b38b5771dfb5a9a29d91672d2d3d016a
4
+ data.tar.gz: d8813f052b2043e69ca42b8d7f18fa748a83c3fe
5
5
  SHA512:
6
- metadata.gz: d6da62f3842bffae825518fb3f62500ccf72cda402d636222ada3227e7df0029983cc5fd91a2df85a4a12091b32bdcb1fef13b6a7511d3838d95be19edeb494c
7
- data.tar.gz: 5a951aea30ce3044a0e5b952c60bff0bc33199489e725afab05670d391c98fbf21328b7a8ca68624fb216a11dd9a9d0ccdc04eb973a4d3d906214bdc7c52b362
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="1484353334009" 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" />
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="libcache" pinned="false" current-in-tab="false">
28
- <entry file="file://$PROJECT_DIR$/exe/libcache">
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="80">
31
- <caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="16" selection-end-column="3" />
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="README.md" pinned="false" current-in-tab="false">
38
- <entry file="file://$PROJECT_DIR$/README.md">
39
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
40
- <state split_layout="FIRST">
41
- <first_editor relative-caret-position="742">
42
- <caret line="53" column="0" lean-forward="true" selection-start-line="53" selection-start-column="0" selection-end-line="53" selection-end-column="0" />
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=".travis.yml" pinned="false" current-in-tab="false">
58
- <entry file="file://$PROJECT_DIR$/.travis.yml">
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="0" lean-forward="true" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
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="test_helper.rb" pinned="false" current-in-tab="false">
68
- <entry file="file://$PROJECT_DIR$/test/test_helper.rb">
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="libcache_test.rb" pinned="false" current-in-tab="false">
78
- <entry file="file://$PROJECT_DIR$/test/libcache_test.rb">
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="176">
81
- <caret line="11" column="0" lean-forward="true" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="0" />
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="version.rb" pinned="false" current-in-tab="false">
88
- <entry file="file://$PROJECT_DIR$/lib/libcache/version.rb">
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="0">
91
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
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="192">
101
- <caret line="18" column="17" lean-forward="false" selection-start-line="18" selection-start-column="17" selection-end-line="18" selection-end-column="17" />
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="CODE_OF_CONDUCT.md" pinned="false" current-in-tab="false">
108
- <entry file="file://$PROJECT_DIR$/CODE_OF_CONDUCT.md">
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="48">
124
- <caret line="3" column="7" lean-forward="false" selection-start-line="3" selection-start-column="7" selection-end-line="3" selection-end-column="7" />
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="libcache.gemspec" pinned="false" current-in-tab="true">
131
- <entry file="file://$PROJECT_DIR$/libcache.gemspec">
132
- <provider selected="true" editor-type-id="text-editor">
133
- <state relative-caret-position="91">
134
- <caret line="14" column="28" lean-forward="false" selection-start-line="14" selection-start-column="28" selection-end-line="14" selection-end-column="28" />
135
- <folding />
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$/lib/libcache/cache.rb" />
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.gemspec" />
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="11654000" />
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
- <option name="localTasksCounter" value="5" />
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="11654000" />
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.3296355" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
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="false" 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" />
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
- <option name="LAST_COMMIT_MESSAGE" value="Fixed typos" />
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$/Rakefile">
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$/lib/libcache.rb">
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$/lib/libcache/cache_builder.rb">
584
+ <entry file="file://$PROJECT_DIR$/.travis.yml">
524
585
  <provider selected="true" editor-type-id="text-editor">
525
- <state relative-caret-position="288">
526
- <caret line="28" column="23" lean-forward="false" selection-start-line="28" selection-start-column="23" selection-end-line="28" selection-end-column="23" />
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$/Gemfile.lock">
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$/lib/libcache/file_cache.rb">
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="219">
542
- <caret line="41" column="16" lean-forward="true" selection-start-line="41" selection-start-column="16" selection-end-line="41" selection-end-column="16" />
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$/exe/libcache">
619
+ <entry file="file://$PROJECT_DIR$/Gemfile">
548
620
  <provider selected="true" editor-type-id="text-editor">
549
- <state relative-caret-position="80">
550
- <caret line="5" column="0" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="16" selection-end-column="3" />
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$/lib/libcache/cache.rb">
627
+ <entry file="file://$PROJECT_DIR$/libcache.gemspec">
556
628
  <provider selected="true" editor-type-id="text-editor">
557
- <state relative-caret-position="192">
558
- <caret line="18" column="17" lean-forward="false" selection-start-line="18" selection-start-column="17" selection-end-line="18" selection-end-column="17" />
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$/README.md">
564
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
565
- <state split_layout="FIRST">
566
- <first_editor relative-caret-position="742">
567
- <caret line="53" column="0" lean-forward="true" selection-start-line="53" selection-start-column="0" selection-end-line="53" selection-end-column="0" />
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$/.travis.yml">
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="80">
584
- <caret line="5" column="0" lean-forward="true" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
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$/test/test_helper.rb">
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$/test/libcache_test.rb">
659
+ <entry file="file://$PROJECT_DIR$/exe/libcache">
598
660
  <provider selected="true" editor-type-id="text-editor">
599
- <state relative-caret-position="176">
600
- <caret line="11" column="0" lean-forward="true" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="0" />
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/version.rb">
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="0">
608
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
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$/CODE_OF_CONDUCT.md">
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="SPLIT">
616
- <first_editor relative-caret-position="0">
617
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
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$/Gemfile">
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="91">
635
- <caret line="14" column="28" lean-forward="false" selection-start-line="14" selection-start-column="28" selection-end-line="14" selection-end-column="28" />
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').set_refresh(Proc.new { |key| key + 12 }).build
6
+ cache = CacheBuilder.with(Cache).set_store(ARGV[0]).set_expiry('3s').set_max(500).build
7
7
 
8
- cache.put(1, 2)
8
+ cache.put("1as", 2)
9
9
 
10
- 2.times do |i|
11
- puts cache.get(1)
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
@@ -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
- if @cache[key] == nil
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
@@ -25,6 +25,11 @@ class CacheBuilder
25
25
  return self
26
26
  end
27
27
 
28
+ def set_max(max_size)
29
+ @cache.max_size = max_size
30
+ return self
31
+ end
32
+
28
33
  def build
29
34
  @cache.create_store
30
35
  return @cache.dup
@@ -24,11 +24,7 @@ class FileCache < Cache
24
24
  end
25
25
 
26
26
  def get(key)
27
- if @cache[key] == nil
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) { |f|
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
@@ -1,3 +1,3 @@
1
1
  module Libcache
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
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.1.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: []