fake_arel 1.0.0.a → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0.a
1
+ 1.0.0
data/fake_arel.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fake_arel}
8
- s.version = "1.0.0.a"
8
+ s.version = "1.0.0"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Grant Ammons"]
12
- s.date = %q{2011-10-27}
12
+ s.date = %q{2012-04-03}
13
13
  s.description = %q{fake_arel will simulate rails 3 arel syntax for Rails 2.}
14
14
  s.email = %q{grant@pipelinedealsco.com}
15
15
  s.extra_rdoc_files = [
@@ -51,7 +51,7 @@ Gem::Specification.new do |s|
51
51
  s.homepage = %q{http://github.com/gammons/fake_arel}
52
52
  s.licenses = ["MIT"]
53
53
  s.require_paths = ["lib"]
54
- s.rubygems_version = %q{1.4.2}
54
+ s.rubygems_version = %q{1.6.2}
55
55
  s.summary = %q{fake_arel: a Rails 3 query interface to Rails 2}
56
56
 
57
57
  if s.respond_to? :specification_version then
@@ -21,6 +21,7 @@ module ActiveRecord
21
21
 
22
22
  class Scope
23
23
  undef select
24
+ undef from
24
25
 
25
26
  alias initialize_without_arel initialize
26
27
  def initialize(proxy_scope, options = {}, &block)
@@ -51,7 +52,9 @@ module ActiveRecord
51
52
  ret[:joins] = merge_joins((ret[:joins] || []), (local_scope.proxy_options[:joins] || []))
52
53
  end
53
54
  end
54
- ret[:order] = [local_scope.proxy_options[:order], ret[:order]].select{|o| !o.blank?}.join(',') if ret[:order] || local_scope.proxy_options[:order]
55
+ local_proxy_order_options = local_scope.proxy_options[:order].split(',') unless local_scope.proxy_options[:order].nil?
56
+ ret_order_options = ret[:order].split(',') unless ret[:order].nil?
57
+ ret[:order] = [local_proxy_order_options, ret_order_options].flatten.uniq.select{|o| !o.blank?}.join(',') if ret[:order] || local_scope.proxy_options[:order]
55
58
  local_scope = local_scope.proxy_scope
56
59
  end
57
60
  ret
@@ -11,7 +11,7 @@ module Rails3Finders
11
11
  named_scope :joins, lambda {|*join| {:joins => join } if join[0]}
12
12
  named_scope :from, lambda {|*from| {:from => from }}
13
13
  named_scope :having, lambda {|*having| {:having => having }}
14
- named_scope :group, lambda {|*group| {:group => group }}
14
+ named_scope :group, lambda {|*group| {:group => group.join(',') }}
15
15
  named_scope :readonly, lambda {|readonly| {:readonly => readonly }}
16
16
  named_scope :lock, lambda {|lock| {:lock => lock }}
17
17
 
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
1
+ require 'spec_helper'
2
2
  require 'reply'
3
3
  require 'topic'
4
4
  require 'author'
@@ -48,6 +48,12 @@ describe "Fake Arel" do
48
48
  sql.should =~ /"topic_id" = 4/
49
49
  sql.should =~ /ORDER BY id desc/i
50
50
  end
51
+
52
+ it "should generate same sql always" do
53
+ first_sql = Topic.first_four_sorted_by_date.to_sql
54
+ second_sql = Topic.first_four_sorted_by_date.to_sql
55
+ first_sql.should == second_sql
56
+ end
51
57
  it "should not dublication conditions" do
52
58
  sql = Topic.select('content').joins(:replies).limit(1).order('id desc').where(:author_id => 1).to_sql
53
59
  sql.should_not =~ /"author_id" = 1.+"author_id" = 1/
@@ -71,6 +77,10 @@ describe "Fake Arel" do
71
77
  replies[0].attributes.should == {"id" => 5}
72
78
  end
73
79
 
80
+ it "should be able to group properly" do
81
+ Reply.group(:topic_id).map(&:topic_id).sort.should == [1, 2, 4].sort
82
+ end
83
+
74
84
  it "should properly chain order scope in definitions" do
75
85
  Reply.topic_4_id_asc.all.should == Reply.find(:all, :conditions => {:topic_id => 4}, :order=>'id asc')
76
86
  Reply.topic_4_id_desc.all.should == Reply.find(:all, :conditions => {:topic_id => 4}, :order=>'id desc')
@@ -15,4 +15,5 @@ class Topic < ActiveRecord::Base
15
15
  named_scope :join_replies_by_string_and_author, join_replies_by_string.joins(:author)
16
16
  named_scope :join_replies_by_string_and_author_lambda, join_replies_by_string.joins(:author)
17
17
  named_scope :select_only_id, select('id as super_duper_id').includes(:replies)
18
+ named_scope :first_four_sorted_by_date, order('id ASC').order('created_at DESC').limit(4)
18
19
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fake_arel
3
3
  version: !ruby/object:Gem::Version
4
- hash: 58
5
- prerelease: 6
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
9
  - 0
10
- - a
11
- version: 1.0.0.a
10
+ version: 1.0.0
12
11
  platform: ruby
13
12
  authors:
14
13
  - Grant Ammons
@@ -16,14 +15,11 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2011-10-27 00:00:00 -04:00
18
+ date: 2012-04-03 00:00:00 -04:00
20
19
  default_executable:
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
23
- prerelease: false
24
- name: activerecord
25
- type: :runtime
26
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
+ requirement: &id001 !ruby/object:Gem::Requirement
27
23
  none: false
28
24
  requirements:
29
25
  - - ~>
@@ -34,12 +30,12 @@ dependencies:
34
30
  - 3
35
31
  - 11
36
32
  version: 2.3.11
37
- requirement: *id001
38
- - !ruby/object:Gem::Dependency
39
33
  prerelease: false
40
- name: bundler
41
- type: :development
42
- version_requirements: &id002 !ruby/object:Gem::Requirement
34
+ name: activerecord
35
+ version_requirements: *id001
36
+ type: :runtime
37
+ - !ruby/object:Gem::Dependency
38
+ requirement: &id002 !ruby/object:Gem::Requirement
43
39
  none: false
44
40
  requirements:
45
41
  - - ~>
@@ -50,12 +46,12 @@ dependencies:
50
46
  - 0
51
47
  - 0
52
48
  version: 1.0.0
53
- requirement: *id002
54
- - !ruby/object:Gem::Dependency
55
49
  prerelease: false
56
- name: jeweler
50
+ name: bundler
51
+ version_requirements: *id002
57
52
  type: :development
58
- version_requirements: &id003 !ruby/object:Gem::Requirement
53
+ - !ruby/object:Gem::Dependency
54
+ requirement: &id003 !ruby/object:Gem::Requirement
59
55
  none: false
60
56
  requirements:
61
57
  - - ~>
@@ -66,12 +62,12 @@ dependencies:
66
62
  - 6
67
63
  - 4
68
64
  version: 1.6.4
69
- requirement: *id003
70
- - !ruby/object:Gem::Dependency
71
65
  prerelease: false
72
- name: rcov
66
+ name: jeweler
67
+ version_requirements: *id003
73
68
  type: :development
74
- version_requirements: &id004 !ruby/object:Gem::Requirement
69
+ - !ruby/object:Gem::Dependency
70
+ requirement: &id004 !ruby/object:Gem::Requirement
75
71
  none: false
76
72
  requirements:
77
73
  - - ">="
@@ -80,12 +76,12 @@ dependencies:
80
76
  segments:
81
77
  - 0
82
78
  version: "0"
83
- requirement: *id004
84
- - !ruby/object:Gem::Dependency
85
79
  prerelease: false
86
- name: rspec
80
+ name: rcov
81
+ version_requirements: *id004
87
82
  type: :development
88
- version_requirements: &id005 !ruby/object:Gem::Requirement
83
+ - !ruby/object:Gem::Dependency
84
+ requirement: &id005 !ruby/object:Gem::Requirement
89
85
  none: false
90
86
  requirements:
91
87
  - - "="
@@ -96,12 +92,12 @@ dependencies:
96
92
  - 3
97
93
  - 1
98
94
  version: 1.3.1
99
- requirement: *id005
100
- - !ruby/object:Gem::Dependency
101
95
  prerelease: false
102
- name: sqlite3-ruby
96
+ name: rspec
97
+ version_requirements: *id005
103
98
  type: :development
104
- version_requirements: &id006 !ruby/object:Gem::Requirement
99
+ - !ruby/object:Gem::Dependency
100
+ requirement: &id006 !ruby/object:Gem::Requirement
105
101
  none: false
106
102
  requirements:
107
103
  - - ">="
@@ -110,7 +106,10 @@ dependencies:
110
106
  segments:
111
107
  - 0
112
108
  version: "0"
113
- requirement: *id006
109
+ prerelease: false
110
+ name: sqlite3-ruby
111
+ version_requirements: *id006
112
+ type: :development
114
113
  description: fake_arel will simulate rails 3 arel syntax for Rails 2.
115
114
  email: grant@pipelinedealsco.com
116
115
  executables: []
@@ -172,18 +171,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
172
171
  required_rubygems_version: !ruby/object:Gem::Requirement
173
172
  none: false
174
173
  requirements:
175
- - - ">"
174
+ - - ">="
176
175
  - !ruby/object:Gem::Version
177
- hash: 25
176
+ hash: 3
178
177
  segments:
179
- - 1
180
- - 3
181
- - 1
182
- version: 1.3.1
178
+ - 0
179
+ version: "0"
183
180
  requirements: []
184
181
 
185
182
  rubyforge_project:
186
- rubygems_version: 1.4.2
183
+ rubygems_version: 1.6.2
187
184
  signing_key:
188
185
  specification_version: 3
189
186
  summary: "fake_arel: a Rails 3 query interface to Rails 2"