acts_as_sourceable 2.2.3 → 2.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b39a604c011e7ad62a4d071d63093c283aed6ab1
4
+ data.tar.gz: 43a9703b587064fc173ef5024343797270fe81db
5
+ SHA512:
6
+ metadata.gz: c5e7688ce6b8a3adaee332625f49f10cbdce63a1a25722b4545480b9859f7e2e337a5cf24b3b2d166a73b8c131d23c95be277fdf95084d64cee18912d487a5ef
7
+ data.tar.gz: a3b5be49c223e0f105c6af9fa09ff8c60e717c491622b7d1f32d6e00d68d05d79eedb8070497add11c9086a0b18a7621883c77bea6ad2dd009cd4cfe6b5cd0a5
@@ -47,6 +47,7 @@ module ActsAsSourceable
47
47
  # Create a scope that returns record that is not used by the associations in options[:used_by]
48
48
  if options[:used_by]
49
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 :used, lambda { where(Array(options[:used_by]).collect {|usage_association| "#{table_name}.id IN (" + select("#{table_name}.id").joins(usage_association).group("#{table_name}.id").to_sql + ")"}.join(' OR ')) }
50
51
  scope :orphaned, lambda { unsourced.unused }
51
52
  else
52
53
  scope :orphaned, lambda { unsourced }
@@ -93,6 +94,18 @@ module ActsAsSourceable
93
94
  !sourced?
94
95
  end
95
96
 
97
+ def used?
98
+ acts_as_sourceable_options[:used_by].any?{|association| send(association).present? }
99
+ end
100
+
101
+ def unused?
102
+ !used?
103
+ end
104
+
105
+ def usages
106
+ Hash[acts_as_sourceable_options[:used_by].collect{|association| [association, send(association)] }]
107
+ end
108
+
96
109
  # Add the given holding_institutions, collections, and items
97
110
  def add_sources(*sources)
98
111
  raise "Cannot set sources of a #{self.class.name}. They are sourced through #{acts_as_sourceable_options[:through]}" if acts_as_sourceable_options[:through]
@@ -138,7 +151,7 @@ module ActsAsSourceable
138
151
  # Removes registry entries that no longer belong to a sourceable, item, collection, or holding institution
139
152
  def self.garbage_collect
140
153
  # Remove all registry entries where the sourceable is gone
141
- ActsAsSourceable::RegistryEntry.pluck(:sourceable_type).uniq.each do |sourceable_type|
154
+ ActsAsSourceable::RegistryEntry.uniq.pluck(:sourceable_type).each do |sourceable_type|
142
155
  sourceable_table_name = sourceable_type.constantize.table_name
143
156
  sourceable_id_sql = ActsAsSourceable::RegistryEntry
144
157
  .select("#{ActsAsSourceable::RegistryEntry.table_name}.id")
@@ -150,7 +163,7 @@ module ActsAsSourceable
150
163
  end
151
164
 
152
165
  # Remove all registry entries where the source is gone
153
- ActsAsSourceable::RegistryEntry.pluck(:source_type).uniq.each do |source_type|
166
+ ActsAsSourceable::RegistryEntry.uniq.pluck(:source_type).each do |source_type|
154
167
  source_class = source_type.constantize
155
168
  source_table_name = source_class.table_name
156
169
  source_id_sql = ActsAsSourceable::RegistryEntry
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.2.3
5
- prerelease:
4
+ version: 2.2.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Nicholas Jakobsen
@@ -10,22 +9,20 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-09-09 00:00:00.000000000 Z
12
+ date: 2013-10-26 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rails
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ~>
18
+ - - "~>"
21
19
  - !ruby/object:Gem::Version
22
20
  version: '4.0'
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ~>
25
+ - - "~>"
29
26
  - !ruby/object:Gem::Version
30
27
  version: '4.0'
31
28
  description: Allows the RRN to perform garbage collection on categories that are no
@@ -35,32 +32,31 @@ executables: []
35
32
  extensions: []
36
33
  extra_rdoc_files: []
37
34
  files:
35
+ - README.md
36
+ - lib/acts_as_sourceable.rb
38
37
  - lib/acts_as_sourceable/acts_as_sourceable.rb
39
38
  - lib/acts_as_sourceable/registry_entry.rb
40
- - lib/acts_as_sourceable.rb
41
- - README.md
42
39
  homepage: http://github.com/rrn/acts_as_sourceable
43
40
  licenses: []
41
+ metadata: {}
44
42
  post_install_message:
45
43
  rdoc_options: []
46
44
  require_paths:
47
45
  - lib
48
46
  required_ruby_version: !ruby/object:Gem::Requirement
49
- none: false
50
47
  requirements:
51
- - - '>='
48
+ - - ">="
52
49
  - !ruby/object:Gem::Version
53
50
  version: '0'
54
51
  required_rubygems_version: !ruby/object:Gem::Requirement
55
- none: false
56
52
  requirements:
57
- - - '>='
53
+ - - ">="
58
54
  - !ruby/object:Gem::Version
59
55
  version: '0'
60
56
  requirements: []
61
57
  rubyforge_project:
62
- rubygems_version: 1.8.25
58
+ rubygems_version: 2.2.2
63
59
  signing_key:
64
- specification_version: 3
60
+ specification_version: 4
65
61
  summary: perform garbage collection on categories that are no longer referenced
66
62
  test_files: []