acts_as_sourceable 2.1.3 → 2.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -30,10 +30,14 @@ module ActsAsSourceable
30
30
  scope :sourced, where(options[:cache_column] => true)
31
31
  scope :unsourced, where(options[:cache_column] => false)
32
32
  elsif options[:through]
33
- scope :sourced, joins(options[:through]).uniq
33
+ scope :sourced, joins(options[:through]).group("#{table_name}.#{primary_key}") do
34
+ include ActsAsSourceable::GroupScopeExtensions
35
+ end
34
36
  scope :unsourced, joins("LEFT OUTER JOIN (#{sourced.to_sql}) sourced ON sourced.id = #{table_name}.id").where("sourced.id IS NULL")
35
37
  else
36
- scope :sourced, joins(:sourceable_registry_entries).uniq
38
+ scope :sourced, joins(:sourceable_registry_entries).group("#{table_name}.#{primary_key}") do
39
+ include ActsAsSourceable::GroupScopeExtensions
40
+ end
37
41
  scope :unsourced, joins("LEFT OUTER JOIN (#{ActsAsSourceable::RegistryEntry.select('sourceable_id AS id').where(:sourceable_type => self).to_sql}) sourced ON sourced.id = #{table_name}.id").where("sourced.id IS NULL")
38
42
  end
39
43
 
@@ -83,6 +87,13 @@ module ActsAsSourceable
83
87
  end
84
88
  end
85
89
 
90
+ module GroupScopeExtensions
91
+ # Extension for scopes where we're grouping but want to be able to call count
92
+ def count
93
+ connection.select_value("SELECT count(1) FROM (#{to_sql}) AS count_all").to_i
94
+ end
95
+ end
96
+
86
97
  module ClassMethods
87
98
  def acts_like_sourceable?
88
99
  true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_sourceable
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-02-12 00:00:00.000000000 Z
13
+ date: 2013-02-13 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: Allows the RRN to perform garbage collection on categories that are no
16
16
  longer referenced.