acts_as_hashish 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,13 +7,15 @@ module Hashish
7
7
  # Redis namespace for keys
8
8
  attr_writer :redis_namespace
9
9
 
10
- # Redis namespace for keys
10
+ # Redis search keys ttl (minutes)
11
11
  attr_writer :redis_search_keys_ttl
12
12
 
13
+ # Redis namespace for keys
13
14
  def redis_namespace
14
15
  @redis_namespace ||= 'hashish'
15
16
  end
16
17
 
18
+ # Redis search keys ttl (minutes)
17
19
  def redis_search_keys_ttl
18
20
  @redis_search_keys_ttl ||= 5 # minutes
19
21
  end
@@ -20,7 +20,6 @@ module Hashish
20
20
  end
21
21
 
22
22
  public
23
- # this needs some improvisation
24
23
  def rebuild_indexes
25
24
  get_list(:page_size => 0).each do |item|
26
25
  hashish_insert(item)
@@ -65,12 +64,12 @@ module Hashish
65
64
  end
66
65
  @options[:sorters].each do |sort_field, sort|
67
66
  sort_value = sort.is_a?(Proc) ? sort.call(o) : o[sort]
68
- Hashish.redis_connection.set("#{prefix}:#{key}:#{sort}", sort_value)
67
+ Hashish.redis_connection.set("#{prefix}:#{key}:#{sort_field}", sort_value)
69
68
  end
70
69
  Hashish.redis_connection.set("#{prefix}:#{key}", data)
71
70
  true
72
71
  end
73
-
72
+
74
73
  def hashish_list(*args)
75
74
  category = nil
76
75
 
@@ -155,7 +154,7 @@ module Hashish
155
154
  Hashish.redis_connection.expire(custom_sort, Hashish.redis_search_keys_ttl * 60)
156
155
  result = Hashish.redis_connection.lrange(custom_sort, offset, limit -1)
157
156
  else
158
- res_keys = Hashish.redis_connection.zrevrange(result_key, offset, limit - 1)
157
+ res_keys = Hashish.redis_connection.send("z#{(sort_order == 'DESC' ? 'rev' : '')}range".to_sym, result_key, offset, limit - 1)
159
158
  if res_keys.empty?
160
159
  result = []
161
160
  else
@@ -1,3 +1,3 @@
1
1
  module Hashish
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: acts_as_hashish
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.0
5
+ version: 0.2.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Schubert Cardozo
@@ -112,3 +112,4 @@ specification_version: 3
112
112
  summary: A sortable and searchable list backed by Redis
113
113
  test_files: []
114
114
 
115
+ has_rdoc: