acts_as_sourceable 2.1.4 → 2.1.5

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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OTM4YjRkMGUzYTZhNjE3NTJkYjk4ZmRjOTRlNTg1Zjg1OTg5YmQ0Yw==
5
+ data.tar.gz: !binary |-
6
+ NDRiMjZjMDczZGI1YTVhMmY1MWVmYzc2N2I4YjRhNGZlNjdmNmUxNQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ODc4ZTMwMWI2MjUwNjYxOTRmMGQ1NjgxZDRiOTQ1MzEwZmYxYTJhYzI1OThj
10
+ ZmJkMjhhODM4OTY1MThiYmU5ZGE2YjVlYTE0NzM2ZmRiZGNmMDBjNTJiYjIw
11
+ YThlYzFiMDJjM2QxYWYzZTk3ZjViOThlYTk1OWZhOTgyYTgwYTc=
12
+ data.tar.gz: !binary |-
13
+ MTA1M2M1ZGYyNzUzYTY0OGNjYTI4MjFmZTM1ZWUzYzI2OWJjM2VhNjllNzRk
14
+ ZGYxMGYxZDZkODZhNTc2M2IwNjJjMTA1Y2RiZTdlYWUwMWI5MzU5NzZlN2Rh
15
+ NGYzMDBkNzBmYWNmMTJjYmE5YjhiZWViMmQ5MDU0ZTYyOTQzNTA=
@@ -27,37 +27,29 @@ module ActsAsSourceable
27
27
  # Elsif the records can be derived, we need to check the flattened item tables for any references
28
28
  # Else we check the registry_entries to see if the record has a recorded source
29
29
  if options[:cache_column]
30
- scope :sourced, where(options[:cache_column] => true)
31
- scope :unsourced, where(options[:cache_column] => false)
30
+ scope :sourced, lambda { where(options[:cache_column] => true) }
31
+ scope :unsourced, lambda { where(options[:cache_column] => false) }
32
32
  elsif options[:through]
33
- scope :sourced, joins(options[:through]).group("#{table_name}.#{primary_key}") do
34
- include ActsAsSourceable::GroupScopeExtensions
35
- end
36
- scope :unsourced, joins("LEFT OUTER JOIN (#{sourced.to_sql}) sourced ON sourced.id = #{table_name}.id").where("sourced.id IS NULL")
33
+ scope :sourced, lambda { joins(options[:through]).group("#{table_name}.#{primary_key}") } do include ActsAsSourceable::GroupScopeExtensions; end
34
+ scope :unsourced, lambda { joins("LEFT OUTER JOIN (#{sourced.to_sql}) sourced ON sourced.id = #{table_name}.id").where("sourced.id IS NULL") }
37
35
  else
38
- scope :sourced, joins(:sourceable_registry_entries).group("#{table_name}.#{primary_key}") do
39
- include ActsAsSourceable::GroupScopeExtensions
40
- end
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")
36
+ scope :sourced, lambda { joins(:sourceable_registry_entries).group("#{table_name}.#{primary_key}") } do include ActsAsSourceable::GroupScopeExtensions; end
37
+ scope :unsourced, lambda { 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") }
42
38
  end
43
39
 
44
40
  # Add a way of finding everything sourced by a particular set of records
45
41
  if options[:through]
46
- def self.sourced_by(source)
47
- self.joins(acts_as_sourceable_options[:through]).where(reflect_on_association(acts_as_sourceable_options[:through]).table_name => {:id => source.id})
48
- end
42
+ scope :sourced_by, lambda { |source| joins(options[:through]).where(reflect_on_association(options[:through]).table_name => {:id => source.id}) }
49
43
  else
50
- def self.sourced_by(source)
51
- self.joins(:sourceable_registry_entries).where(ActsAsSourceable::RegistryEntry.table_name => {:source_type => source.class, :source_id => source.id}).uniq
52
- end
44
+ scope :sourced_by, lambda { |source| joins(:sourceable_registry_entries).where(ActsAsSourceable::RegistryEntry.table_name => {:source_type => source.class, :source_id => source.id}).uniq }
53
45
  end
54
46
 
55
47
  # Create a scope that returns record that is not used by the associations in options[:used_by]
56
48
  if options[:used_by]
57
- scope :unused, where(Array(options[:used_by]).collect {|usage_association| "#{table_name}.id NOT IN (" + select("#{table_name}.id").joins(usage_association).group("#{table_name}.id").to_sql + ")"}.join(' AND '))
58
- scope :orphaned, unsourced.unused
49
+ scope :unused, lambda { where(Array(options[:used_by]).collect {|usage_association| "#{table_name}.id NOT IN (" + select("#{table_name}.id").joins(usage_association).group("#{table_name}.id").to_sql + ")"}.join(' AND ')) }
50
+ scope :orphaned, lambda { unsourced.unused }
59
51
  else
60
- scope :orphaned, unsourced
52
+ scope :orphaned, lambda { unsourced }
61
53
  end
62
54
 
63
55
  # ACTIVE RELATION SETUP
metadata CHANGED
@@ -1,8 +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.4
5
- prerelease:
4
+ version: 2.1.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Nicholas Jakobsen
@@ -10,7 +9,7 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-02-13 00:00:00.000000000 Z
12
+ date: 2013-03-07 00:00:00.000000000 Z
14
13
  dependencies: []
15
14
  description: Allows the RRN to perform garbage collection on categories that are no
16
15
  longer referenced.
@@ -25,26 +24,25 @@ files:
25
24
  - README.md
26
25
  homepage: http://github.com/rrn/acts_as_sourceable
27
26
  licenses: []
27
+ metadata: {}
28
28
  post_install_message:
29
29
  rdoc_options: []
30
30
  require_paths:
31
31
  - lib
32
32
  required_ruby_version: !ruby/object:Gem::Requirement
33
- none: false
34
33
  requirements:
35
34
  - - ! '>='
36
35
  - !ruby/object:Gem::Version
37
36
  version: '0'
38
37
  required_rubygems_version: !ruby/object:Gem::Requirement
39
- none: false
40
38
  requirements:
41
39
  - - ! '>='
42
40
  - !ruby/object:Gem::Version
43
41
  version: '0'
44
42
  requirements: []
45
43
  rubyforge_project:
46
- rubygems_version: 1.8.25
44
+ rubygems_version: 2.0.0
47
45
  signing_key:
48
- specification_version: 3
46
+ specification_version: 4
49
47
  summary: perform garbage collection on categories that are no longer referenced
50
48
  test_files: []