opinio 0.3.4 → 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 +23 -3
- data/app/views/opinio/comments/_new.html.erb +1 -1
- data/lib/generators/opinio/install/install_generator.rb +4 -0
- data/lib/generators/opinio/install/templates/initializers/opinio.erb +9 -0
- data/lib/opinio.rb +0 -1
- data/lib/opinio/controllers/extensions.rb +9 -5
- data/lib/opinio/shared_examples.rb +51 -0
- data/lib/opinio/version.rb +1 -1
- metadata +9 -8
data/README.rdoc
CHANGED
@@ -49,13 +49,20 @@ If you want to display the comments for the item outside of the resource, you ca
|
|
49
49
|
<%= comments_for @post %>
|
50
50
|
|
51
51
|
And there you go, you can now comment in your post.
|
52
|
-
Aditional options can be found on the {RDocs}[http://rubydoc.info/github/Draiken/opinio/master/frames]
|
53
52
|
|
54
53
|
Alternatively you can render just the comments or just the form like this:
|
55
54
|
|
56
55
|
<%= render_comments @post %>
|
57
56
|
<%= render_comments_form @post %>
|
58
57
|
|
58
|
+
If you need to render the comments with a specific page or limit
|
59
|
+
you can use Kaminari's configurations like `paginates_per 10` on your comment model
|
60
|
+
or you can customize it for specific views on the helpers
|
61
|
+
|
62
|
+
<%= render_comments @post, :page => params[:page], :limit => 5 %>
|
63
|
+
|
64
|
+
This can also be used on the `comments_for` helper.
|
65
|
+
|
59
66
|
== Customization
|
60
67
|
|
61
68
|
=== Views
|
@@ -113,13 +120,26 @@ Another example would be using the *CanCan*:
|
|
113
120
|
You get the picture, you're inside your controller's methods on that block
|
114
121
|
so you can call anything your normal controllers call on actions.
|
115
122
|
|
123
|
+
=== Testing
|
124
|
+
|
125
|
+
Opinio provides a few shared examples for testing of your model with rspec
|
126
|
+
On your opinio model test case you can require opinio's shared examples and use them
|
127
|
+
|
128
|
+
require 'opinio/shared_examples'
|
129
|
+
|
130
|
+
describe Comment do
|
131
|
+
it_should_behave_like :opinio
|
132
|
+
end
|
133
|
+
|
134
|
+
describe Post do
|
135
|
+
it_should_behave_like :opinio_subjectum
|
136
|
+
end
|
137
|
+
|
116
138
|
== Contribution
|
117
139
|
|
118
140
|
If you want to help in any way with *Opinio* please message me or fork the project, make the changes and send me a pull request.
|
119
141
|
For issues please use the github {issues tracker}[https://github.com/Draiken/opinio/issues]
|
120
142
|
|
121
|
-
Remember this engine is still in development :)
|
122
|
-
|
123
143
|
=== TODO
|
124
144
|
|
125
145
|
* Haml views
|
@@ -5,4 +5,13 @@ Opinio.setup do |config|
|
|
5
5
|
# Use this to change the class that calls +opinio+ method
|
6
6
|
config.model_name = "<%= class_name %>"
|
7
7
|
|
8
|
+
# This is the owner class of the comment (opinio model)
|
9
|
+
# config.owner_class_name = "User"
|
10
|
+
|
11
|
+
# Change this if you do not want to allow replies on your comments
|
12
|
+
# config.accept_replies = true
|
13
|
+
|
14
|
+
# Here you can change the method called to check who is the current user
|
15
|
+
# config.current_user_method = :current_user
|
16
|
+
|
8
17
|
end
|
data/lib/opinio.rb
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
module Opinio
|
2
2
|
module Controllers
|
3
3
|
module Extensions
|
4
|
-
extend ActiveSupport::Concern
|
5
4
|
|
6
|
-
included
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
def self.included(base)
|
6
|
+
base.extend ClassMethods
|
7
|
+
base.send :include, InstanceMethods
|
8
|
+
|
9
|
+
base.class_eval do
|
10
|
+
(class << self; self; end).instance_eval do
|
11
|
+
define_method "#{Opinio.model_name.underscore}_destroy_conditions" do |&block|
|
12
|
+
Opinio.set_destroy_conditions( &block )
|
13
|
+
end
|
10
14
|
end
|
11
15
|
end
|
12
16
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
shared_examples_for :opinio do
|
2
|
+
let(:comment) { Comment.new }
|
3
|
+
before(:all) do
|
4
|
+
@post = Post.new(:title => "My first post", :body => "Damn I really suck at writing")
|
5
|
+
@post.save
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should have the correct attributes" do
|
9
|
+
should respond_to(:owner)
|
10
|
+
should respond_to(:body)
|
11
|
+
should respond_to(:commentable)
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
it "should not allow comments of comments" do
|
16
|
+
Comment.class_eval do
|
17
|
+
include Opinio::OpinioModel::RepliesSupport
|
18
|
+
end
|
19
|
+
|
20
|
+
c = Comment.new(:body => "The Comment !")
|
21
|
+
c.commentable = @post
|
22
|
+
c.owner_id = 1
|
23
|
+
c.save
|
24
|
+
|
25
|
+
c2 = c.dup
|
26
|
+
c2.commentable = c
|
27
|
+
c.save.should == true
|
28
|
+
|
29
|
+
c3 = c2.dup
|
30
|
+
c3.commentable = c2
|
31
|
+
c3.save.should == false
|
32
|
+
|
33
|
+
c3.errors[:base].count.should == 1
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should validate presence of body and commentable" do
|
37
|
+
comment.should be_invalid
|
38
|
+
comment.errors[:body].should be_present
|
39
|
+
comment.errors[:commentable].should be_present
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
shared_examples_for :opinio_subjectum do
|
46
|
+
|
47
|
+
it "and should add opinio_subjectum functionallity" do
|
48
|
+
should respond_to(:comments)
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
data/lib/opinio/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opinio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.4'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-02-07 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &2156948880 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2156948880
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: kaminari
|
27
|
-
requirement: &
|
27
|
+
requirement: &2156948260 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2156948260
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jquery-rails
|
38
|
-
requirement: &
|
38
|
+
requirement: &2156947720 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2156947720
|
47
47
|
description: Opinio is an engine used to add comments functionallity to rails 3 applications.
|
48
48
|
email:
|
49
49
|
- luiz.felipe.gp@gmail.com
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- lib/opinio/rails.rb
|
76
76
|
- lib/opinio/railtie.rb
|
77
77
|
- lib/opinio/schema.rb
|
78
|
+
- lib/opinio/shared_examples.rb
|
78
79
|
- lib/opinio/version.rb
|
79
80
|
- lib/opinio.rb
|
80
81
|
- MIT-LICENSE
|