blogit 0.4.8 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/README.md +11 -3
  2. data/app/assets/javascripts/blogit/archive.js +8 -0
  3. data/app/assets/javascripts/blogit/index.js +1 -1
  4. data/app/assets/stylesheets/blogit/index.css +10 -1
  5. data/app/controllers/blogit/comments_controller.rb +7 -7
  6. data/app/controllers/blogit/posts_controller.rb +12 -10
  7. data/app/helpers/blogit/application_helper.rb +23 -4
  8. data/app/helpers/blogit/posts_helper.rb +47 -3
  9. data/app/models/blogit/comment.rb +2 -0
  10. data/app/models/blogit/post.rb +26 -8
  11. data/app/views/blogit/comments/_admin_links.html.erb +2 -2
  12. data/app/views/blogit/comments/_comment.html.erb +8 -8
  13. data/app/views/blogit/comments/_form.html.erb +17 -18
  14. data/app/views/blogit/posts/_active_record_comments.html.erb +4 -0
  15. data/app/views/blogit/posts/_blogger_information.html.erb +1 -1
  16. data/app/views/blogit/posts/_comments_count.html.erb +2 -2
  17. data/app/views/blogit/posts/_disqus_comments.html.erb +14 -0
  18. data/app/views/blogit/posts/_empty.html.erb +2 -2
  19. data/app/views/blogit/posts/_form.html.erb +9 -9
  20. data/app/views/blogit/posts/_no_comments.html.erb +0 -0
  21. data/app/views/blogit/posts/_post.html.erb +6 -6
  22. data/app/views/blogit/posts/_post_links.html.erb +1 -1
  23. data/app/views/blogit/posts/_share_bar.html.erb +45 -0
  24. data/app/views/blogit/posts/edit.html.erb +2 -2
  25. data/app/views/blogit/posts/index.html.erb +7 -7
  26. data/app/views/blogit/posts/new.html.erb +1 -1
  27. data/app/views/blogit/posts/show.html.erb +2 -6
  28. data/config/locales/en.yml +48 -0
  29. data/config/locales/fr.yml +61 -0
  30. data/lib/blogit/configuration.rb +69 -30
  31. data/lib/blogit/version.rb +1 -1
  32. data/lib/generators/templates/blogit.rb +34 -18
  33. data/spec/controllers/blogit/posts_controller_spec.rb +75 -75
  34. data/spec/dummy/app/helpers/application_helper.rb +1 -0
  35. data/spec/dummy/app/views/layouts/application.html.erb +8 -4
  36. data/spec/dummy/config/application.rb +1 -1
  37. data/spec/dummy/config/initializers/blogit.rb +21 -12
  38. data/spec/dummy/db/development.sqlite3 +0 -0
  39. data/spec/dummy/db/test.sqlite3 +0 -0
  40. data/spec/dummy/log/development.log +155 -0
  41. data/spec/dummy/log/test.log +7310 -0
  42. data/spec/helpers/blogit/application_helper_spec.rb +63 -8
  43. data/spec/helpers/blogit/posts_helper_spec.rb +114 -6
  44. data/spec/lib/blogit/parsers/markdown_parser_spec.rb +7 -3
  45. data/spec/lib/configuration_spec.rb +43 -19
  46. data/spec/models/blogit/post_spec.rb +51 -53
  47. data/spec/spec_helper.rb +1 -1
  48. metadata +158 -36
@@ -1,3 +1,3 @@
1
1
  module Blogit
2
- VERSION = "0.4.8"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -1,8 +1,17 @@
1
1
  # These configuration options can be used to customise the behaviour of Blogit
2
2
  Blogit.configure do |config|
3
-
4
- # Do you want to add comments to your blog?
5
- # config.include_comments = true
3
+
4
+ # What kind of comments do you want to add to your blog ? (:active_record, :disqus or :no)
5
+ # config.include_comments = :active_record
6
+
7
+ # When using disqus comments, what is the shortname of your forum ?
8
+ # config.disqus_shortname = ""
9
+
10
+ # Should there be a share bar on every post ?
11
+ # config.include_share_bar = false
12
+
13
+ # Twitter username used in the share bar
14
+ # config.twitter_username = ""
6
15
 
7
16
  # The name of the controller method we'll call to return the current blogger.
8
17
  # Change this if you use something other than current_user.
@@ -14,7 +23,7 @@ Blogit.configure do |config|
14
23
 
15
24
  # Which DateTime::FORMATS format do we use to display blog and comment publish time
16
25
  # config.datetime_format = :short
17
-
26
+
18
27
  # Should the controllers cache the blog pages as HTML?
19
28
  # config.cache_pages = false
20
29
 
@@ -24,17 +33,17 @@ Blogit.configure do |config|
24
33
  # The name of the before filter we'll call to authenticate the current user.
25
34
  # config.authentication_method = :login_required
26
35
 
27
- # If set to true, the comments form will POST and DELETE to the comments
36
+ # If set to true, the comments form will POST and DELETE to the comments
28
37
  # controller using AJAX calls.
29
38
  # config.ajax_comments = true
30
39
 
31
40
  # If set to true, the create, edit, update and destroy actions
32
- # will be included. If set to false, you'll have to set these
41
+ # will be included. If set to false, you'll have to set these
33
42
  # yourself elsewhere in the app.
34
43
  # config.include_admin_actions = true
35
44
 
36
45
  # If set to true, links for new posts, editing posts and deleting comments
37
- # will be available. If set to false, you'll have to set these
46
+ # will be available. If set to false, you'll have to set these
38
47
  # yourself in the templates.
39
48
  # config.include_admin_links = true
40
49
 
@@ -44,25 +53,32 @@ Blogit.configure do |config|
44
53
  # If blog content contains code, this should be highlighted using
45
54
  # albino.
46
55
  # config.highlight_code_syntax = true
47
-
56
+
48
57
  # RSS Feed title content
49
58
  # config.rss_feed_title = "A blog about ponies!"
50
-
59
+
51
60
  # RSS Feed description content
52
61
  # config.rss_feed_description = "Get your daily pony news here!"
53
-
62
+
54
63
  # RSS Feed language
55
64
  # config.rss_feed_language = "en"
56
-
65
+
57
66
  # When using redcarpet as content parser, pass these options as defaults.
58
67
  # @see here for more options: https://github.com/tanoku/redcarpet
59
68
  config.redcarpet_options = {
60
- hard_wrap: true,
61
- filter_html: true,
62
- autolink: true,
63
- no_intraemphasis: true,
64
- fenced_code_blocks: true,
69
+ hard_wrap: true,
70
+ filter_html: true,
71
+ autolink: true,
72
+ no_intraemphasis: true,
73
+ fenced_code_blocks: true,
65
74
  gh_blockcode: true
66
75
  }
67
-
68
- end
76
+
77
+ # If set to true, it will be possible to call named routes of the main app
78
+ # directly, without the "main_app." prefix.
79
+ # Useful in the case where you don't want to change the main app's layout,
80
+ # but it does not expand correctly from inside blogit because some main
81
+ # app's named routes are missing.
82
+ # config.inline_main_app_named_routes = true
83
+
84
+ end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe PostsController do
4
-
4
+
5
5
  before do
6
6
  reset_configuration
7
7
  end
@@ -11,268 +11,268 @@ describe PostsController do
11
11
  describe "GET 'index'" do
12
12
 
13
13
  let(:posts) { [] }
14
-
14
+
15
15
  def do_get(page=nil)
16
16
  get :index, :use_route => :blogit, page: page.to_s
17
17
  end
18
-
18
+
19
19
  it "should set posts to Blogit::Post.for_index" do
20
20
  Blogit::Post.expects(:for_index).returns(posts)
21
21
  do_get
22
22
  assigns(:posts).should == posts
23
23
  end
24
-
24
+
25
25
  it "should pass the page param to for_index" do
26
26
  Blogit::Post.expects(:for_index).with("2").returns(posts)
27
27
  do_get("2")
28
28
  assigns(:posts).should == posts
29
29
  end
30
-
30
+
31
31
  end
32
-
32
+
33
33
  describe "GET /index.xml" do
34
-
34
+
35
35
 
36
36
  let(:posts) { [] }
37
-
37
+
38
38
  def do_get(page=nil)
39
39
  get :index, :use_route => :blogit, page: page.to_s, format: :xml
40
40
  end
41
-
41
+
42
42
  it "should load all posts in reverse date order" do
43
43
  Blogit::Post.expects(:order).with('created_at DESC').returns(posts)
44
44
  do_get
45
45
  assigns(:posts).should == posts
46
46
  end
47
-
47
+
48
48
  end
49
-
49
+
50
50
  describe "GET 'new'" do
51
-
51
+
52
52
  context "when logged in" do
53
-
53
+
54
54
  before do
55
55
  mock_login
56
56
  end
57
-
57
+
58
58
  def do_get
59
59
  get :new, use_route: :blogit
60
60
  end
61
-
61
+
62
62
  it "should be successful" do
63
63
  do_get
64
64
  response.should be_success
65
65
  end
66
-
66
+
67
67
  it "should set post to a new blog post" do
68
68
  do_get
69
69
  assigns(:post).should be_a(Blogit::Post)
70
70
  assigns(:post).should be_a_new_record
71
71
  end
72
-
72
+
73
73
  end
74
-
74
+
75
75
  context "when not logged in" do
76
-
76
+
77
77
  def do_get
78
78
  get :new, use_route: :blogit
79
79
  end
80
-
81
- # It's not really the responsibility of the gem to manage authentication
80
+
81
+ # It's not really the responsibility of the gem to manage authentication
82
82
  # so testing for specific behaviour here is not required
83
83
  # at the very least though, we'd expect the status not to be 200
84
84
  it "should redirect to another page" do
85
85
  do_get
86
86
  response.should_not be_success
87
87
  end
88
-
88
+
89
89
  end
90
90
  end
91
-
91
+
92
92
  describe "POST /create" do
93
-
93
+
94
94
  context "when logged in" do
95
-
95
+
96
96
  before do
97
97
  mock_login
98
98
  end
99
-
99
+
100
100
  context "with valid params" do
101
-
101
+
102
102
  let(:post_attributes) { attributes_for(:post) }
103
-
103
+
104
104
  def do_post
105
105
  post :create, use_route: :blogit, post: post_attributes
106
106
  end
107
-
107
+
108
108
  before do
109
109
  @blog_posts = []
110
110
  @current_blogger.expects(:blog_posts).returns(@blog_posts)
111
111
  @blog_posts.expects(:new).with(post_attributes.stringify_keys).returns(blog_post)
112
112
  blog_post.expects(:save).returns(true)
113
113
  end
114
-
114
+
115
115
  it "should redirect to the blog post page" do
116
116
  do_post
117
117
  response.should redirect_to(controller.posts_url)
118
118
  end
119
-
119
+
120
120
  end
121
-
121
+
122
122
  end
123
-
123
+
124
124
  end
125
125
 
126
-
126
+
127
127
  describe "GET 'edit'" do
128
-
128
+
129
129
  context "when logged in" do
130
-
130
+
131
131
  before do
132
132
  mock_login
133
133
  @current_blogger.expects(:blog_posts).returns(@blog_posts = [])
134
134
  @blog_posts.expects(:find).with("1").returns(blog_post)
135
135
  end
136
-
136
+
137
137
  def do_get
138
138
  get :edit, :id => 1, use_route: :blogit
139
139
  end
140
-
140
+
141
141
  it "should find the blog post by the ID" do
142
142
  do_get
143
143
  assigns(:post).should eql(blog_post)
144
144
  end
145
-
145
+
146
146
  end
147
-
147
+
148
148
  context "when not logged in" do
149
-
149
+
150
150
  def do_get
151
151
  get :edit, :id => 1, use_route: :blogit
152
152
  end
153
-
154
- # It's not really the responsibility of the gem to manage authentication
153
+
154
+ # It's not really the responsibility of the gem to manage authentication
155
155
  # so testing for specific behaviour here is not required
156
156
  # at the very least though, we'd expect the status not to be 200
157
157
  it "should redirect to another pages" do
158
158
  do_get
159
159
  response.should_not be_success
160
160
  end
161
-
161
+
162
162
  end
163
163
 
164
164
  end
165
-
165
+
166
166
  describe "PUT 'update'" do
167
-
167
+
168
168
  context "when logged in" do
169
-
169
+
170
170
  before do
171
171
  @post_attributes = { "title" => "Something new" }
172
172
  mock_login
173
173
  @current_blogger.expects(:blog_posts).returns(@blog_posts = [])
174
174
  @blog_posts.expects(:find).with("1").returns(blog_post)
175
175
  end
176
-
176
+
177
177
  def do_put
178
178
  put :update, id: "1", use_route: :blogit, post: @post_attributes
179
179
  end
180
-
180
+
181
181
  it "should update the post attributes from params" do
182
182
  blog_post.expects(:update_attributes).with(@post_attributes).returns(true)
183
183
  do_put
184
184
  end
185
-
185
+
186
186
  it "should redirect to the blog post page" do
187
187
  do_put
188
188
  response.should redirect_to(controller.post_url(blog_post))
189
189
  end
190
-
190
+
191
191
  it "should set a flash notice" do
192
192
  do_put
193
193
  flash[:notice].should be_present
194
194
  end
195
195
  end
196
-
196
+
197
197
  context "when not logged in" do
198
-
198
+
199
199
  before do
200
200
  @post_attributes = { "title" => "Something new" }
201
201
  end
202
-
202
+
203
203
  def do_put
204
204
  put :update, id: "1", use_route: :blogit, post: @post_attributes
205
205
  end
206
-
207
- # It's not really the responsibility of the gem to manage authentication
206
+
207
+ # It's not really the responsibility of the gem to manage authentication
208
208
  # so testing for specific behaviour here is not required
209
209
  # at the very least though, we'd expect the status not to be 200
210
210
  it "should redirect to another page" do
211
211
  do_put
212
212
  response.should_not be_success
213
213
  end
214
-
214
+
215
215
  end
216
-
216
+
217
217
  end
218
-
218
+
219
219
  describe "GET 'show'" do
220
-
220
+
221
221
  before do
222
222
  Blogit::Post.expects(:find).with("1").returns(blog_post)
223
223
  end
224
-
224
+
225
225
  def do_get
226
226
  get :show, :id => 1, use_route: :blogit
227
227
  end
228
-
228
+
229
229
  it "should find blog post by id" do
230
230
  do_get
231
231
  assigns(:post).should eql(blog_post)
232
232
  end
233
233
 
234
234
  end
235
-
235
+
236
236
  describe "DELETE 'destroy'" do
237
-
237
+
238
238
  def do_delete
239
239
  delete :destroy, id: "1", use_route: :blogit
240
240
  end
241
-
241
+
242
242
  describe "when logged in" do
243
-
243
+
244
244
  before do
245
245
  mock_login
246
246
  @current_blogger.expects(:blog_posts).returns(@blog_posts = [])
247
247
  @blog_posts.expects(:find).with("1").returns(blog_post)
248
248
  end
249
-
249
+
250
250
  it "should destroy the blog post" do
251
251
  blog_post.expects(:destroy)
252
252
  do_delete
253
253
  end
254
-
254
+
255
255
  it "should redirect to the blog posts url" do
256
256
  do_delete
257
257
  response.should redirect_to(controller.posts_url)
258
258
  end
259
-
259
+
260
260
  it "should show a flash notice" do
261
261
  do_delete
262
262
  flash[:notice].should be_present
263
263
  end
264
-
264
+
265
265
  end
266
-
266
+
267
267
  describe "when not logged in" do
268
-
268
+
269
269
  it "should redirect to another page" do
270
270
  do_delete
271
271
  response.should_not be_success
272
272
  end
273
-
273
+
274
274
  end
275
-
275
+
276
276
  end
277
277
 
278
- end
278
+ end