fake_arel 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
data/fake_arel.gemspec CHANGED
@@ -6,16 +6,16 @@ require 'bundler/version'
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "fake_arel"
9
- s.version = "0.9.1"
9
+ s.version = "0.9.2"
10
10
  s.platform = Gem::Platform::RUBY
11
11
  s.author = "Grant Ammons"
12
12
  s.email = ["grant@pipelinedealsco.com"]
13
13
  s.homepage = "http://github.com/gammons/fake_arel"
14
14
  s.summary = "A library that simulates Rails 3 ActiveRecord Arel calls using extensions to named_scope."
15
15
 
16
- s.add_dependency(['activerecord','>=2.3.5'])
17
- s.rubyforge_project 'fake_arel'
16
+ s.add_dependency('activerecord', '~>2.3.5')
17
+ s.rubyforge_project = 'fake_arel'
18
18
 
19
- s.files = Dir.glob("{bin,lib}/**/*") + %w(LICENSE README.md ROADMAP.md CHANGELOG.md)
19
+ s.files = Dir.glob("{bin,lib}/**/*")
20
20
  s.require_path = 'lib'
21
21
  end
@@ -7,7 +7,6 @@ module Rails3Finders
7
7
  named_scope :offset, lambda {|offset| {:offset => offset}}
8
8
  named_scope :limit, lambda {|limit| {:limit => limit}}
9
9
  named_scope :includes, lambda { |*includes| { :include => includes }}
10
- named_scope :select, lambda {|*select| {:select => select.join(',') }}
11
10
  named_scope :order, lambda {|*order| {:order => order.join(',') }}
12
11
  named_scope :joins, lambda {|*join| {:joins => join } if join[0]}
13
12
  named_scope :from, lambda {|*from| {:from => from }}
@@ -16,6 +15,14 @@ module Rails3Finders
16
15
  named_scope :readonly, lambda {|readonly| {:readonly => readonly }}
17
16
  named_scope :lock, lambda {|lock| {:lock => lock }}
18
17
 
18
+ def self.select(value = Proc.new)
19
+ if block_given?
20
+ all.select {|*block_args| value.call(*block_args) }
21
+ else
22
+ self.scoped(:select => Array.wrap(value).join(','))
23
+ end
24
+ end
25
+
19
26
  __where_fn = lambda do |*where|
20
27
  if where.is_a?(Array) and where.size == 1
21
28
  {:conditions => where.first}
data/lib/fake_arel.rb CHANGED
@@ -6,9 +6,10 @@ require 'fake_arel/singleton_class'
6
6
  require 'fake_arel/extensions'
7
7
  require 'fake_arel/with_scope_replacement'
8
8
  require 'fake_arel/rails_3_finders'
9
+ require 'fake_arel/calculations'
9
10
 
10
11
  module FakeArel
11
- VERSION = '0.9.1'
12
+ VERSION = '0.9.2'
12
13
  ActiveRecord::Base.send :include, Rails3Finders
13
14
  ActiveRecord::Base.send :include, WithScopeReplacement
14
15
  end
@@ -174,5 +174,20 @@ describe "Fake Arel" do
174
174
  # an example using joins, as well as a query that returns nothing
175
175
  Reply.or(Reply.recent_joins_topic, Reply.topic_title_is("Nothin")).all.map(&:id).should == [5]
176
176
  end
177
+
178
+ it "should use select like rails 3 uses select" do
179
+ lambda { Reply.all.select {|r| r.id == 1 }}.should_not raise_error
180
+ Reply.all.select {|r| r.id == 1 }.size.should == 1
181
+ Reply.all.select {|r| r.id == 1 }.first.id.should == 1
182
+ lambda { Reply.select(:id).first.content }.should raise_error(ActiveRecord::MissingAttributeError)
183
+ end
184
+ end
185
+
186
+ describe "NameScope bug" do
187
+ context "group named_scope" do
188
+ it "should be equal to count(:group => '')" do
189
+ Reply.group('replies.topic_id').count.should == Reply.count(:group => 'replies.topic_id')
190
+ end
191
+ end
177
192
  end
178
193
 
data/spec/test.db CHANGED
Binary file
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fake_arel
3
3
  version: !ruby/object:Gem::Version
4
- hash: 57
4
+ hash: 63
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 1
10
- version: 0.9.1
9
+ - 2
10
+ version: 0.9.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Grant Ammons
@@ -15,12 +15,10 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-17 00:00:00 -05:00
18
+ date: 2010-12-10 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: activerecord
23
- prerelease: false
24
22
  requirement: &id001 !ruby/object:Gem::Requirement
25
23
  none: false
26
24
  requirements:
@@ -33,10 +31,10 @@ dependencies:
33
31
  - 5
34
32
  version: 2.3.5
35
33
  type: :runtime
34
+ name: activerecord
35
+ prerelease: false
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- name: rubyforge
39
- prerelease: false
40
38
  requirement: &id002 !ruby/object:Gem::Requirement
41
39
  none: false
42
40
  requirements:
@@ -49,10 +47,10 @@ dependencies:
49
47
  - 4
50
48
  version: 2.0.4
51
49
  type: :development
50
+ name: rubyforge
51
+ prerelease: false
52
52
  version_requirements: *id002
53
53
  - !ruby/object:Gem::Dependency
54
- name: hoe
55
- prerelease: false
56
54
  requirement: &id003 !ruby/object:Gem::Requirement
57
55
  none: false
58
56
  requirements:
@@ -65,6 +63,8 @@ dependencies:
65
63
  - 2
66
64
  version: 2.6.2
67
65
  type: :development
66
+ name: hoe
67
+ prerelease: false
68
68
  version_requirements: *id003
69
69
  description: |-
70
70
  * Tired of waiting for Rails 3 and its new super-sweet query interface? Try fake_arel!