liszt 0.0.4 → 0.0.5

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- liszt (0.0.3)
4
+ liszt (0.0.5)
5
5
  rails (>= 2.3.2)
6
6
  redis
7
7
 
@@ -82,7 +82,7 @@ GEM
82
82
  sprockets (2.0.0)
83
83
  hike (~> 1.2)
84
84
  rack (~> 1.0)
85
- tilt (!= 1.3.0, ~> 1.1)
85
+ tilt (~> 1.1, != 1.3.0)
86
86
  sqlite3 (1.3.4)
87
87
  thor (0.14.6)
88
88
  tilt (1.3.3)
data/Gemfile.rails2.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- liszt (0.0.3)
4
+ liszt (0.0.5)
5
5
  rails (>= 2.3.2)
6
6
  redis
7
7
 
data/lib/liszt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Liszt
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/liszt.rb CHANGED
@@ -78,13 +78,14 @@ module Liszt
78
78
  end
79
79
  end
80
80
 
81
- def ordered_list_items(obj={}, double_check=false)
81
+ def ordered_list_items(obj={}, opts={})
82
+ force_refresh = opts.delete(:force_refresh) || false
82
83
  was_initialized = ordered_list_initialized?(obj)
83
84
  ids = ordered_list_ids(obj)
84
85
 
85
86
  # If ordered_list_ids just did the initialization, we can trust that
86
- # the list of ids is accurate and ignore the double_check flag.
87
- if double_check and was_initialized
87
+ # the list of ids is accurate and ignore the force_refresh flag.
88
+ if force_refresh and was_initialized
88
89
  objs = find(:all, :conditions => liszt_query(obj))
89
90
  real_ids = objs.map(&:id)
90
91
  unlisted_ids = real_ids - ids
@@ -92,7 +93,7 @@ module Liszt
92
93
  ids = ordered_list(obj).clear_and_populate!(unlisted_ids + ids)
93
94
  end
94
95
  else
95
- objs = find_all_by_id(ids)
96
+ objs = find(:all, {:conditions => ['id in (?)', ids]}.merge(opts))
96
97
  end
97
98
 
98
99
  objs.sort_by { |obj| ids.index(obj.id) }
data/test/liszt_test.rb CHANGED
@@ -83,25 +83,30 @@ class LisztTest < ActiveSupport::TestCase
83
83
  end
84
84
  end
85
85
 
86
- context "double_check" do
86
+ context "options" do
87
87
  setup do
88
88
  Person.initialize_list!(:group_id => 1, :is_male => true)
89
89
  @person = Person.new(:name => "John Smith", :group_id => 1, :is_male => true)
90
90
  end
91
91
 
92
- should "not confirm the list when double_check=false" do
92
+ should "not confirm the list when force_refresh is nil" do
93
93
  @person.save
94
94
  @person.remove_from_list
95
95
  assert !@person.ordered_list_items.include?(@person)
96
96
  assert !@person.ordered_list_ids.include?(@person.id)
97
97
  end
98
98
 
99
- should "confirm the list when double_check=true" do
99
+ should "confirm the list when force_refresh is true" do
100
100
  @person.save
101
101
  @person.remove_from_list
102
- assert @person.ordered_list_items(true).include?(@person)
102
+ assert @person.ordered_list_items(:force_refresh => true).include?(@person)
103
103
  assert @person.ordered_list_ids.include?(@person.id)
104
104
  end
105
+
106
+ should "pass any other options through to the ActiveRecord query" do
107
+ @person.save
108
+ assert @person.ordered_list_items(:limit => 2).count == 2
109
+ end
105
110
  end
106
111
  end
107
112
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liszt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-23 00:00:00.000000000Z
12
+ date: 2011-11-28 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70165237093020 !ruby/object:Gem::Requirement
16
+ requirement: &70233352439880 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.3.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70165237093020
24
+ version_requirements: *70233352439880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: redis
27
- requirement: &70165237092600 !ruby/object:Gem::Requirement
27
+ requirement: &70233352439380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70165237092600
35
+ version_requirements: *70233352439380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: yard
38
- requirement: &70165237092140 !ruby/object:Gem::Requirement
38
+ requirement: &70233352438860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70165237092140
46
+ version_requirements: *70233352438860
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rdiscount
49
- requirement: &70165237091720 !ruby/object:Gem::Requirement
49
+ requirement: &70233352438280 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70165237091720
57
+ version_requirements: *70233352438280
58
58
  description: Liszt is an alternative to acts_as_list and sortable that uses atomic
59
59
  Redis operations to maintain scoped ordering information for ActiveRecord objects.
60
60
  email:
@@ -162,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
162
  version: '0'
163
163
  requirements: []
164
164
  rubyforge_project:
165
- rubygems_version: 1.8.6
165
+ rubygems_version: 1.8.11
166
166
  signing_key:
167
167
  specification_version: 3
168
168
  summary: ActiveRecord sorting using Redis lists