acts-as-joinable 0.1.7.5 → 0.1.7.6

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.
Files changed (3) hide show
  1. data/Rakefile +1 -1
  2. data/lib/acts_as_joinable/core.rb +5 -2
  3. metadata +4 -4
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake/gempackagetask'
5
5
  spec = Gem::Specification.new do |s|
6
6
  s.name = "acts-as-joinable"
7
7
  s.authors = ["Lance Pollard"]
8
- s.version = "0.1.7.5"
8
+ s.version = "0.1.7.6"
9
9
  s.summary = "ActsAsJoinable: DRYing up Many-to-Many Relationships in ActiveRecord"
10
10
  s.homepage = "http://github.com/viatropos/acts-as-joinable"
11
11
  s.email = "lancejpollard@gmail.com"
@@ -325,7 +325,10 @@ module ActsAsJoinable
325
325
 
326
326
  module InstanceMethods
327
327
  def destroy_relationships
328
- conditions = %Q|(`relationships`.parent_type IN ("#{self.class.name}","#{self.class.base_class.name}") AND `relationships`.parent_id = #{self.id}) OR (`relationships`.child_type IN ("#{self.class.name}","#{self.class.base_class.name}") AND `relationships`.child_id = #{self.id})|
328
+ #conditions = %Q|(`relationships`.parent_type IN ("#{self.class.name}","#{self.class.base_class.name}") AND `relationships`.parent_id = #{self.id}) OR (`relationships`.child_type IN ("#{self.class.name}","#{self.class.base_class.name}") AND `relationships`.child_id = #{self.id})|
329
+ classes = [self.class.name, self.class.base_class.name].compact.uniq.map {|i| %Q|"#{i}"|}.join(",")
330
+ relationship_table_name = ActsAsJoinable::Relationship.quoted_table_name
331
+ conditions = %Q|(#{relationship_table_name}.parent_type IN (#{classes}) AND #{relationship_table_name}.parent_id = #{self.id}) OR (#{relationship_table_name}.child_type IN (#{classes}) AND #{relationship_table_name}.child_id = #{self.id})|
329
332
  ActsAsJoinable::Relationship.delete_all(conditions)
330
333
  end
331
334
 
@@ -335,7 +338,7 @@ module ActsAsJoinable
335
338
  return false if conditions[:context] && !Array(conditions[:context]).include?(relationship.context)
336
339
  true
337
340
  end
338
-
341
+
339
342
  def parent_relationships_for(conditions = {})
340
343
  parent_relationships.select do |relationship|
341
344
  relationship_matches?(relationship, conditions)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts-as-joinable
3
3
  version: !ruby/object:Gem::Version
4
- hash: 81
4
+ hash: 87
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
9
  - 7
10
- - 5
11
- version: 0.1.7.5
10
+ - 6
11
+ version: 0.1.7.6
12
12
  platform: ruby
13
13
  authors:
14
14
  - Lance Pollard
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-10-17 00:00:00 -05:00
19
+ date: 2010-10-20 00:00:00 -05:00
20
20
  default_executable:
21
21
  dependencies: []
22
22