searchlogic 2.3.3 → 2.3.4

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 3
2
+ :patch: 4
3
3
  :major: 2
4
4
  :minor: 3
@@ -15,7 +15,17 @@ module Searchlogic
15
15
  # the merge_joins method to delete duplicates.
16
16
  def merge_joins_with_searchlogic(*args)
17
17
  joins = merge_joins_without_searchlogic(*args)
18
- joins.collect { |j| j.is_a?(String) ? j.split(" ") : j }.flatten.uniq
18
+ joins = joins.collect { |j| j.is_a?(String) ? j.split(" ") : j }.flatten.uniq
19
+ joins = joins.collect do |j|
20
+ if j.is_a?(String)
21
+ j.gsub(/(.*) ON (.*) = (.*)/) do |m|
22
+ sorted = [$2,$3].sort
23
+ "#{$1} ON #{sorted[0]} = #{sorted[1]}"
24
+ end
25
+ else
26
+ j
27
+ end
28
+ end
19
29
  end
20
30
  end
21
31
  end
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.3"
8
+ s.version = "2.3.4"
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{2009-09-02}
12
+ s.date = %q{2009-09-12}
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 = [
@@ -131,4 +131,11 @@ describe "Association Conditions" do
131
131
  User.named_scope(:orders_big_id, :joins => User.inner_joins(:orders))
132
132
  Company.users_orders_big_id.proxy_options.should == {:joins=>[" INNER JOIN \"users\" ON users.company_id = companies.id ", " INNER JOIN \"orders\" ON orders.user_id = users.id "]}
133
133
  end
134
+
135
+ it "should order the join statements ascending by the fieldnames so that we don't get double joins where the only difference is that the order of the fields is different" do
136
+ company = Company.create
137
+ user = company.users.create(:company_id => company.id)
138
+ company.users.company_id_eq(company.id).should == [user]
139
+ end
140
+
134
141
  end
@@ -292,4 +292,10 @@ describe "Conditions" do
292
292
  User.company_id_null.count.should == 1
293
293
  User.company_id_not_null.count.should == 0
294
294
  end
295
+
296
+ it "should fix bug for issue 26" do
297
+ count1 = User.id_ne(10).username_not_like("root").count
298
+ count2 = User.id_ne(10).username_not_like("root").count
299
+ count1.should == count2
300
+ end
295
301
  end
data/spec/spec_helper.rb CHANGED
@@ -6,7 +6,7 @@ require 'activerecord'
6
6
  ENV['TZ'] = 'UTC'
7
7
  Time.zone = 'Eastern Time (US & Canada)'
8
8
 
9
- ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :dbfile => ":memory:")
9
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
10
10
  ActiveRecord::Base.configurations = true
11
11
 
12
12
  ActiveRecord::Schema.verbose = false
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.3
4
+ version: 2.3.4
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: 2009-09-02 00:00:00 -05:00
12
+ date: 2009-09-12 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency