fastentry 0.1.14 → 0.1.15
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
|
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
|