acts_as_relatable 0.0.3 → 0.0.4
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.
- data/README.rdoc +7 -3
- data/lib/acts_as_relatable/relatable.rb +1 -1
- data/spec/acts_as_relatable/relatable_spec.rb +16 -0
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -10,7 +10,7 @@ Gem installation :
|
|
10
10
|
|
11
11
|
Or you can put it in your Gemfile :
|
12
12
|
|
13
|
-
gem "acts_as_relatable", "~> 0.0.
|
13
|
+
gem "acts_as_relatable", "~> 0.0.4"
|
14
14
|
|
15
15
|
and then run :
|
16
16
|
|
@@ -48,7 +48,7 @@ Followed by :
|
|
48
48
|
@mixer = Tool.create(:name => "Mixer")
|
49
49
|
|
50
50
|
|
51
|
-
|
51
|
+
=== Creating relationships
|
52
52
|
|
53
53
|
@butter.relates_to!(@pancake) # #<ActsAsRelatable::Relationship id: 2, relator_id: 2, relator_type: "Product", related_id: 1, related_type: "Recipe">
|
54
54
|
@pancake.relates_to!(@mixer) # #<ActsAsRelatable::Relationship id: 3, relator_id: 1, relator_type: "Recipe", related_id: 1, related_type: "Tool">
|
@@ -62,7 +62,7 @@ Followed by :
|
|
62
62
|
@butter.relates_to!(@pancake, false)
|
63
63
|
|
64
64
|
|
65
|
-
|
65
|
+
=== Fetching relationships
|
66
66
|
|
67
67
|
@butter.related_recipes # [#<Recipe id: 1, name: "Pancakes">]
|
68
68
|
@butter.related_products # [#<Product id: 1, name: "Bread"]
|
@@ -81,6 +81,10 @@ Followed by :
|
|
81
81
|
|
82
82
|
@butter.destroy_relation_with @pancake
|
83
83
|
|
84
|
+
=== Getting Relatable types
|
85
|
+
|
86
|
+
@pancake.relatable_types # [:product, :tool]
|
87
|
+
|
84
88
|
== Configuration
|
85
89
|
|
86
90
|
To create the acts_as_relatable config file, open a shell and run :
|
@@ -12,7 +12,7 @@ module ActsAsRelatable
|
|
12
12
|
# Create polymorphic associations
|
13
13
|
class_attribute :relatable_types
|
14
14
|
|
15
|
-
self.relatable_types = relatable_models.to_a.flatten.compact.map(&:to_sym) << self.to_s.underscore
|
15
|
+
self.relatable_types = relatable_models.to_a.flatten.compact.map(&:to_sym) << self.to_s.underscore.to_sym
|
16
16
|
|
17
17
|
has_many :relationships, :as => :relator, :order => "created_at desc", :class_name => "ActsAsRelatable::Relationship", :dependent => :destroy
|
18
18
|
has_many :incoming_relationships, :as => :related, :class_name => "ActsAsRelatable::Relationship", :dependent => :destroy
|
@@ -34,6 +34,22 @@ describe ActsAsRelatable::Relatable do
|
|
34
34
|
}
|
35
35
|
}
|
36
36
|
|
37
|
+
context :relatable_types do
|
38
|
+
|
39
|
+
it "for product" do
|
40
|
+
@products[:product1].relatable_types.should == [:shop, :tag, :product]
|
41
|
+
end
|
42
|
+
|
43
|
+
it "for shop" do
|
44
|
+
@shops[:shop1].relatable_types.should == [:tag, :product, :shop]
|
45
|
+
end
|
46
|
+
|
47
|
+
it "for tag" do
|
48
|
+
@tag.relatable_types.should == [:product, :shop, :tag]
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
37
53
|
context :relates_to! do
|
38
54
|
|
39
55
|
context :both_sided do
|