searchlogic 2.3.10 → 2.3.11

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/VERSION.yml CHANGED
@@ -2,4 +2,4 @@
2
2
  :major: 2
3
3
  :minor: 3
4
4
  :build:
5
- :patch: 10
5
+ :patch: 11
@@ -92,12 +92,12 @@ module Searchlogic
92
92
  else
93
93
  raise UnknownConditionError.new(condition_name)
94
94
  end
95
- elsif scope?(scope_name)
96
- if args.size > 0
95
+ elsif scope?(scope_name) && args.size <= 1
96
+ if args.size == 0
97
+ conditions[condition_name]
98
+ else
97
99
  send("#{condition_name}=", *args)
98
100
  self
99
- else
100
- conditions[condition_name]
101
101
  end
102
102
  else
103
103
  scope = conditions.inject(klass.scoped(current_scope) || {}) do |scope, condition|
@@ -112,8 +112,10 @@ module Searchlogic
112
112
  else
113
113
  scope
114
114
  end
115
+ elsif arity == -1
116
+ scope.send(scope_name, *(value.is_a?(Array) ? value : [value]))
115
117
  else
116
- scope.send(scope_name, *value)
118
+ scope.send(scope_name, value)
117
119
  end
118
120
  end
119
121
  scope.send(name, *args, &block)
data/searchlogic.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{searchlogic}
8
- s.version = "2.3.10"
8
+ s.version = "2.3.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ben Johnson of Binary Logic"]
12
- s.date = %q{2010-01-14}
12
+ s.date = %q{2010-01-19}
13
13
  s.description = %q{Searchlogic makes using ActiveRecord named scopes easier and less repetitive.}
14
14
  s.email = %q{bjohnson@binarylogic.com}
15
15
  s.extra_rdoc_files = [
data/spec/search_spec.rb CHANGED
@@ -340,13 +340,27 @@ describe "Search" do
340
340
  User.search(:order => "ascend_by_username").proxy_options.should == User.ascend_by_username.proxy_options
341
341
  end
342
342
 
343
- it "should pass array values as multiple arguments" do
343
+ it "should pass array values as multiple arguments with arity -1" do
344
344
  User.named_scope(:multiple_args, lambda { |*args|
345
345
  raise "This should not be an array, it should be 1" if args.first.is_a?(Array)
346
346
  {:conditions => ["id IN (?)", args]}
347
347
  })
348
348
  User.search(:multiple_args => [1,2]).proxy_options.should == User.multiple_args(1,2).proxy_options
349
349
  end
350
+
351
+ it "should pass array as a single value with arity >= 0" do
352
+ User.named_scope(:multiple_args, lambda { |args|
353
+ raise "This should be an array" if !args.is_a?(Array)
354
+ {:conditions => ["id IN (?)", args]}
355
+ })
356
+ User.search(:multiple_args => [1,2]).proxy_options.should == User.multiple_args(1,2).proxy_options
357
+ end
358
+
359
+ it "should not split out dates or times (big fix)" do
360
+ s = User.search
361
+ s.created_at_after = Time.now
362
+ lambda { s.count }.should_not raise_error
363
+ end
350
364
  end
351
365
 
352
366
  context "method delegation" do
@@ -366,12 +380,12 @@ describe "Search" do
366
380
  search2.empty?.should == true
367
381
  end
368
382
 
369
- it "should delegate to named scopes with arity > 1" do
370
- User.named_scope :paged, lambda {|start, limit| { :limit => limit, :offset => start }}
371
- User.create(:username => "bjohnson")
372
- search = User.search(:username => "bjohnson")
373
- search.paged(0, 1).count.should == 1
374
- search.paged(0, 0).count.should == 0
375
- end
383
+ it "should delegate to named scopes with arity > 1" do
384
+ User.named_scope :paged, lambda {|start, limit| { :limit => limit, :offset => start }}
385
+ User.create(:username => "bjohnson")
386
+ search = User.search(:username => "bjohnson")
387
+ search.paged(0, 1).count.should == 1
388
+ search.paged(0, 0).count.should == 0
389
+ end
376
390
  end
377
391
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: searchlogic
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.10
4
+ version: 2.3.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Johnson of Binary Logic
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-14 00:00:00 -05:00
12
+ date: 2010-01-19 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency