acts_as_commentable 3.0.0 → 3.0.1

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,59 @@
1
+ Acts As Commentable
2
+ =================
3
+
4
+ Allows for comments to be added to multiple and different models.
5
+
6
+ == Resources
7
+
8
+ Install
9
+
10
+ * To install as a gem (recommended):
11
+ ** gem install acts_as_commentable
12
+ ** add the following line to your environment.rb: config.gem 'acts_as_commentable'
13
+ ** If using bundler then just add "gem 'acts_as_commentable'" to your Gemfile and "bundle install"
14
+
15
+
16
+ * To install as a plugin
17
+ ** Rails 3: script/plugin install http://github.com/jackdempsey/acts_as_commentable.git
18
+ ** Rails 2: script/plugin install http://github.com/jackdempsey/acts_as_commentable.git -r 2.x
19
+
20
+
21
+ Generate your comment model:
22
+
23
+ script/generate comment
24
+
25
+ Then migrate your database:
26
+
27
+ rake db:migrate
28
+
29
+ == Usage
30
+
31
+ * Make your ActiveRecord model act as commentable.
32
+
33
+ class Post < ActiveRecord::Base
34
+ acts_as_commentable
35
+ end
36
+
37
+ * Add a comment to a model instance
38
+
39
+ commentable = Post.create
40
+ commentable.comments.create(:title => "First comment.", :comment => "This is the first comment.")
41
+
42
+ * Fetch comments for a commentable model:
43
+
44
+ commentable = Post.find(1)
45
+ comments = commentable.comments.recent.limit(10).all
46
+
47
+
48
+ == Credits
49
+
50
+ Xelipe - This plugin is heavily influenced by Acts As Taggable.
51
+
52
+ == Contributors
53
+
54
+ Jack Dempsey, Chris Eppstein, Jim Ray, Matthew Van Horn, Ole Riesenberg, ZhangJinzhu, maddox, monocle
55
+
56
+ == More
57
+
58
+ http://www.juixe.com/techknow/index.php/2006/06/18/acts-as-commentable-plugin/
59
+ http://www.juixe.com/projects/acts_as_commentable
@@ -29,8 +29,9 @@ module ActsAsCommentable
29
29
  # Helper class method to look up a commentable object
30
30
  # given the commentable class name and id
31
31
  def find_commentable(commentable_str, commentable_id)
32
- commentable_str.constantize.find(commentable_id)
33
- end
32
+ model = commentable_str.constantize
33
+ model.respond_to?(:find_comments_for) ? model.find(commentable_id) : nil
34
+ end
34
35
  end
35
36
  end
36
37
  end
@@ -10,8 +10,8 @@ module Juixe
10
10
  end
11
11
 
12
12
  module ClassMethods
13
- def acts_as_commentable
14
- has_many :comments, :as => :commentable, :dependent => :destroy
13
+ def acts_as_commentable(options={})
14
+ has_many :comments, {:as => :commentable, :dependent => :destroy}.merge(options)
15
15
  include Juixe::Acts::Commentable::InstanceMethods
16
16
  extend Juixe::Acts::Commentable::SingletonMethods
17
17
  end
@@ -22,7 +22,7 @@ module Juixe
22
22
  # Helper method to lookup for comments for a given object.
23
23
  # This method is equivalent to obj.comments.
24
24
  def find_comments_for(obj)
25
- commentable = ActiveRecord::Base.send(:class_name_of_active_record_descendant, self).to_s
25
+ commentable = self.base_class.name
26
26
  Comment.find_comments_for_commentable(commentable, obj.id)
27
27
  end
28
28
 
@@ -30,7 +30,7 @@ module Juixe
30
30
  # the mixin commentable type written by a given user.
31
31
  # This method is NOT equivalent to Comment.find_comments_for_user
32
32
  def find_comments_by_user(user)
33
- commentable = ActiveRecord::Base.send(:class_name_of_active_record_descendant, self).to_s
33
+ commentable = self.base_class.name
34
34
  Comment.where(["user_id = ? and commentable_type = ?", user.id, commentable]).order("created_at DESC")
35
35
  end
36
36
  end
@@ -2,7 +2,7 @@ class CreateComments < ActiveRecord::Migration
2
2
  def self.up
3
3
  create_table :comments do |t|
4
4
  t.string :title, :limit => 50, :default => ""
5
- t.text :comment, :default => ""
5
+ t.text :comment
6
6
  t.references :commentable, :polymorphic => true
7
7
  t.references :user
8
8
  t.timestamps
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 3
7
7
  - 0
8
- - 0
9
- version: 3.0.0
8
+ - 1
9
+ version: 3.0.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Cosmin Radoi, Jack Dempsey, Xelipe, Chris Eppstein
@@ -14,7 +14,7 @@ autorequire: acts_as_commentable
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-07 00:00:00 -05:00
17
+ date: 2010-10-28 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
@@ -25,11 +25,11 @@ executables: []
25
25
  extensions: []
26
26
 
27
27
  extra_rdoc_files:
28
- - README
28
+ - README.rdoc
29
29
  - MIT-LICENSE
30
30
  files:
31
31
  - MIT-LICENSE
32
- - README
32
+ - README.rdoc
33
33
  - lib/acts_as_commentable.rb
34
34
  - lib/comment_methods.rb
35
35
  - lib/commentable_methods.rb
@@ -50,6 +50,7 @@ rdoc_options: []
50
50
  require_paths:
51
51
  - lib
52
52
  required_ruby_version: !ruby/object:Gem::Requirement
53
+ none: false
53
54
  requirements:
54
55
  - - ">="
55
56
  - !ruby/object:Gem::Version
@@ -57,6 +58,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
57
58
  - 0
58
59
  version: "0"
59
60
  required_rubygems_version: !ruby/object:Gem::Requirement
61
+ none: false
60
62
  requirements:
61
63
  - - ">="
62
64
  - !ruby/object:Gem::Version
@@ -66,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
68
  requirements: []
67
69
 
68
70
  rubyforge_project:
69
- rubygems_version: 1.3.6
71
+ rubygems_version: 1.3.7
70
72
  signing_key:
71
73
  specification_version: 3
72
74
  summary: Plugin/gem that provides comment functionality
data/README DELETED
@@ -1,73 +0,0 @@
1
- Acts As Commentable
2
- =================
3
-
4
- Allows for comments to be added to multiple and different models.
5
-
6
- == Resources
7
-
8
- Install
9
-
10
- Rails
11
-
12
- * To install as a plugin:
13
-
14
- script/plugin install http://github.com/jackdempsey/acts_as_commentable.git
15
-
16
- * To install as a gem
17
- sudo gem install
18
-
19
- Merb/Rails
20
-
21
- * To install as a gem:
22
- Run the following if you haven't already:
23
- gem sources -a http://gems.github.com
24
-
25
- Install the gem(s):
26
- sudo gem install jackdempsey-acts_as_commentable
27
-
28
- add the folloowing line to your environment.rb
29
- config.gem 'jackdempsey-acts_as_commentable', :lib => 'acts_as_commentable', :source => "http://gems.github.com"
30
-
31
-
32
- Generate your comment model:
33
-
34
- script/generate comment
35
-
36
- Then migrate your database:
37
-
38
- rake db:migrate
39
-
40
- == Usage
41
- Merb Users:
42
- * add 'dependency "acts_as_commentable"' to your init.rb or dependencies.rb if using merb-stack
43
-
44
- * Make your ActiveRecord model act as commentable.
45
-
46
- class Model < ActiveRecord::Base
47
- acts_as_commentable
48
- end
49
-
50
- * Add a comment to a model instance
51
-
52
- commentable = Model.create
53
- commentable.comments.create(:title => "First comment.", :comment => "This is the first comment.")
54
-
55
- * Fetch comments for a commentable model:
56
-
57
- commentable = Model.find(1)
58
- comments = commentable.comments.recent.limit(10).all
59
-
60
- # Following doesn't work/make sense to me. Leaving for historical sake -- Jack
61
- # * Each comment reference commentable object
62
- #
63
- # model = Model.find(1)
64
- # model.comments.get(0).commentable == model
65
-
66
- == Credits
67
-
68
- Xelipe - This plugin is heavily influenced by Acts As Taggable.
69
-
70
- == More
71
-
72
- http://www.juixe.com/techknow/index.php/2006/06/18/acts-as-commentable-plugin/
73
- http://www.juixe.com/projects/acts_as_commentable