fastentry 0.1.14 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b8ed78f5b7497884d9be2d8e4f62bdd2979fdcde1216d54c478c3449d9f5587
|
4
|
+
data.tar.gz: 96080622837fa0b1073a5341483bb6256aa829512d2ed8f984380a79c6dabf9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d37427bae29e736d78a49f1896cbd48bb99ec56f7ab6731432cb8acde23b379e01b312c8b7b6eb8de407d8de01fa4eb7702c86d32896d0ce7a990fe7a7ab70c6
|
7
|
+
data.tar.gz: 35742b6d78495a8df86b0137ea553b06692b6eaa46ede57702ccd558da809e79941b37f52b05f6982d5b0bd7bd811ac9becb793d5c5040f6ee0b27865df5cd33
|
@@ -3,14 +3,18 @@ module Fastentry
|
|
3
3
|
before_action :set_page, only: [:index]
|
4
4
|
|
5
5
|
def index
|
6
|
-
|
6
|
+
total_keys = 0
|
7
7
|
|
8
8
|
if params[:query].present?
|
9
|
-
@keys
|
9
|
+
@keys = Fastentry.cache.search(query: params[:query])
|
10
|
+
total_keys = @keys.count
|
11
|
+
@keys = @keys.try(:[], @page * @per_page, @per_page) || []
|
12
|
+
else
|
13
|
+
@keys = Fastentry.cache.select(from: @page * @per_page, amount: @per_page)
|
14
|
+
total_keys = Fastentry.cache.number_of_keys
|
10
15
|
end
|
11
16
|
|
12
|
-
@number_of_pages = (
|
13
|
-
@keys = @keys[@offset, @per_page] || []
|
17
|
+
@number_of_pages = (total_keys / @per_page.to_f).ceil
|
14
18
|
|
15
19
|
@cached =
|
16
20
|
@keys.map do |key|
|
data/lib/fastentry/version.rb
CHANGED
data/lib/fastentry.rb
CHANGED
@@ -6,6 +6,19 @@ module Fastentry
|
|
6
6
|
class Cache < SimpleDelegator
|
7
7
|
alias cache __getobj__
|
8
8
|
|
9
|
+
def number_of_keys
|
10
|
+
keys.size
|
11
|
+
end
|
12
|
+
|
13
|
+
def select(from: 0, amount: 20)
|
14
|
+
count = adjusted_amount(from, amount)
|
15
|
+
keys.try(:[], from, count) || []
|
16
|
+
end
|
17
|
+
|
18
|
+
def search(query: '')
|
19
|
+
keys.select! { |key| key.downcase.include?(query.downcase) } || []
|
20
|
+
end
|
21
|
+
|
9
22
|
def expiration_for(key)
|
10
23
|
expires_at = cache.send(:read_entry, key, {}).expires_at
|
11
24
|
expires_at.to_s.strip.empty? ? nil : Time.at(expires_at)
|
@@ -48,6 +61,12 @@ module Fastentry
|
|
48
61
|
end
|
49
62
|
end
|
50
63
|
end
|
64
|
+
|
65
|
+
private
|
66
|
+
|
67
|
+
def adjusted_amount(from, amount)
|
68
|
+
from + amount > number_of_keys ? (number_of_keys - from) : amount
|
69
|
+
end
|
51
70
|
end
|
52
71
|
|
53
72
|
class MemcacheCache < Cache
|
@@ -72,6 +91,19 @@ module Fastentry
|
|
72
91
|
def keys
|
73
92
|
cache.redis.keys
|
74
93
|
end
|
94
|
+
|
95
|
+
def number_of_keys
|
96
|
+
cache.redis.dbsize
|
97
|
+
end
|
98
|
+
|
99
|
+
def select(from: 0, amount: 20)
|
100
|
+
count = adjusted_amount(from, amount)
|
101
|
+
cache.redis.scan(from, count: count)[1]
|
102
|
+
end
|
103
|
+
|
104
|
+
def search(query: '')
|
105
|
+
cache.redis.scan_each(match: "*#{query.downcase}*").to_a.uniq
|
106
|
+
end
|
75
107
|
end
|
76
108
|
|
77
109
|
def self.cache
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastentry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tiago Alves
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03-
|
11
|
+
date: 2019-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|