blogit 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.
Files changed (175) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.md +3 -0
  3. data/Rakefile +39 -0
  4. data/app/assets/javascripts/blogit/index.js +1 -0
  5. data/app/assets/stylesheets/blogit/comments.css +16 -0
  6. data/app/assets/stylesheets/blogit/index.css +3 -0
  7. data/app/assets/stylesheets/blogit/posts.css +59 -0
  8. data/app/controllers/blogit/application_controller.rb +41 -0
  9. data/app/controllers/blogit/comments_controller.rb +44 -0
  10. data/app/controllers/blogit/posts_controller.rb +55 -0
  11. data/app/helpers/blogit/application_helper.rb +64 -0
  12. data/app/helpers/blogit/comments_helper.rb +19 -0
  13. data/app/helpers/blogit/posts_helper.rb +26 -0
  14. data/app/models/blogit/comment.rb +59 -0
  15. data/app/models/blogit/post.rb +57 -0
  16. data/app/views/blogit/comments/_comment.html.erb +16 -0
  17. data/app/views/blogit/comments/_form.html.erb +42 -0
  18. data/app/views/blogit/comments/create.js.erb +7 -0
  19. data/app/views/blogit/comments/destroy.js.erb +1 -0
  20. data/app/views/blogit/posts/_blog_post_spacer.html.erb +1 -0
  21. data/app/views/blogit/posts/_blogger_information.html.erb +4 -0
  22. data/app/views/blogit/posts/_comments_count.html.erb +5 -0
  23. data/app/views/blogit/posts/_form.html.erb +43 -0
  24. data/app/views/blogit/posts/_pagination.html.erb +1 -0
  25. data/app/views/blogit/posts/_post.html.erb +19 -0
  26. data/app/views/blogit/posts/_post_body.html.erb +1 -0
  27. data/app/views/blogit/posts/_post_head.html.erb +3 -0
  28. data/app/views/blogit/posts/_post_links.html.erb +5 -0
  29. data/app/views/blogit/posts/edit.html.erb +3 -0
  30. data/app/views/blogit/posts/index.html.erb +10 -0
  31. data/app/views/blogit/posts/new.html.erb +3 -0
  32. data/app/views/blogit/posts/show.html.erb +7 -0
  33. data/config/routes.rb +9 -0
  34. data/db/migrate/20110814091434_create_blog_posts.rb +12 -0
  35. data/db/migrate/20110814093229_create_blog_comments.rb +15 -0
  36. data/db/migrate/20110814103306_acts_as_taggable_on_migration.rb +28 -0
  37. data/lib/blogit.rb +24 -0
  38. data/lib/blogit/blogs.rb +19 -0
  39. data/lib/blogit/configuration.rb +74 -0
  40. data/lib/blogit/engine.rb +14 -0
  41. data/lib/blogit/parsers.rb +5 -0
  42. data/lib/blogit/parsers/html_parser.rb +9 -0
  43. data/lib/blogit/parsers/markdown_parser.rb +21 -0
  44. data/lib/blogit/parsers/textile_parser.rb +13 -0
  45. data/lib/blogit/version.rb +3 -0
  46. data/lib/generators/blogit/USAGE +8 -0
  47. data/lib/generators/blogit/install_generator.rb +15 -0
  48. data/lib/generators/templates/blogit.rb +42 -0
  49. data/lib/tasks/blog_tasks.rake +4 -0
  50. data/lib/validators.rb +3 -0
  51. data/lib/validators/absence_validator.rb +13 -0
  52. data/spec/blogit_spec.rb +20 -0
  53. data/spec/controllers/blogit/comments_controller_spec.rb +111 -0
  54. data/spec/controllers/blogit/posts_controller_spec.rb +261 -0
  55. data/spec/dummy/Rakefile +7 -0
  56. data/spec/dummy/app/assets/javascripts/application.js +3 -0
  57. data/spec/dummy/app/assets/stylesheets/application.css +18 -0
  58. data/spec/dummy/app/controllers/application_controller.rb +19 -0
  59. data/spec/dummy/app/controllers/people_controller.rb +83 -0
  60. data/spec/dummy/app/controllers/sessions_controller.rb +23 -0
  61. data/spec/dummy/app/controllers/users_controller.rb +83 -0
  62. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  63. data/spec/dummy/app/helpers/people_helper.rb +2 -0
  64. data/spec/dummy/app/helpers/sessions_helper.rb +2 -0
  65. data/spec/dummy/app/helpers/users_helper.rb +2 -0
  66. data/spec/dummy/app/models/person.rb +2 -0
  67. data/spec/dummy/app/models/user.rb +11 -0
  68. data/spec/dummy/app/views/layouts/application.html.erb +28 -0
  69. data/spec/dummy/app/views/people/_form.html.erb +21 -0
  70. data/spec/dummy/app/views/people/edit.html.erb +6 -0
  71. data/spec/dummy/app/views/people/index.html.erb +23 -0
  72. data/spec/dummy/app/views/people/new.html.erb +5 -0
  73. data/spec/dummy/app/views/people/show.html.erb +10 -0
  74. data/spec/dummy/app/views/sessions/new.html.erb +17 -0
  75. data/spec/dummy/app/views/users/_form.html.erb +25 -0
  76. data/spec/dummy/app/views/users/edit.html.erb +6 -0
  77. data/spec/dummy/app/views/users/index.html.erb +25 -0
  78. data/spec/dummy/app/views/users/new.html.erb +5 -0
  79. data/spec/dummy/app/views/users/show.html.erb +15 -0
  80. data/spec/dummy/config.ru +4 -0
  81. data/spec/dummy/config/application.rb +25 -0
  82. data/spec/dummy/config/boot.rb +10 -0
  83. data/spec/dummy/config/database.yml +25 -0
  84. data/spec/dummy/config/environment.rb +5 -0
  85. data/spec/dummy/config/environments/development.rb +30 -0
  86. data/spec/dummy/config/environments/production.rb +51 -0
  87. data/spec/dummy/config/environments/test.rb +39 -0
  88. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  89. data/spec/dummy/config/initializers/blogit.rb +40 -0
  90. data/spec/dummy/config/initializers/inflections.rb +10 -0
  91. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  92. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  93. data/spec/dummy/config/initializers/session_store.rb +8 -0
  94. data/spec/dummy/config/initializers/wrap_parameters.rb +12 -0
  95. data/spec/dummy/config/locales/en.yml +5 -0
  96. data/spec/dummy/config/routes.rb +11 -0
  97. data/spec/dummy/db/development.sqlite3 +0 -0
  98. data/spec/dummy/db/migrate/20110814091304_create_users.rb +10 -0
  99. data/spec/dummy/db/migrate/20110819103335_create_people.rb +9 -0
  100. data/spec/dummy/db/schema.rb +71 -0
  101. data/spec/dummy/db/test.sqlite3 +0 -0
  102. data/spec/dummy/log/development.log +21145 -0
  103. data/spec/dummy/log/test.log +32053 -0
  104. data/spec/dummy/public/404.html +26 -0
  105. data/spec/dummy/public/422.html +26 -0
  106. data/spec/dummy/public/500.html +26 -0
  107. data/spec/dummy/public/favicon.ico +0 -0
  108. data/spec/dummy/script/rails +6 -0
  109. data/spec/dummy/test/fixtures/people.yml +7 -0
  110. data/spec/dummy/test/fixtures/users.yml +9 -0
  111. data/spec/dummy/test/functional/people_controller_test.rb +49 -0
  112. data/spec/dummy/test/functional/sessions_controller_test.rb +9 -0
  113. data/spec/dummy/test/functional/users_controller_test.rb +49 -0
  114. data/spec/dummy/test/unit/helpers/people_helper_test.rb +4 -0
  115. data/spec/dummy/test/unit/helpers/sessions_helper_test.rb +4 -0
  116. data/spec/dummy/test/unit/helpers/users_helper_test.rb +4 -0
  117. data/spec/dummy/test/unit/person_test.rb +7 -0
  118. data/spec/dummy/test/unit/user_test.rb +7 -0
  119. data/spec/dummy/tmp/cache/assets/BC4/870/sprockets%2F64a399278031122c8576726e146081d5 +0 -0
  120. data/spec/dummy/tmp/cache/assets/C49/710/sprockets%2F8a389a2323475a7053fc419c4103814f +0 -0
  121. data/spec/dummy/tmp/cache/assets/C9E/F00/sprockets%2Fdbb1755717649d42fe9df99326657618 +0 -0
  122. data/spec/dummy/tmp/cache/assets/CAA/0C0/sprockets%2Feec4505e23136c45e543a609b0c69554 +0 -0
  123. data/spec/dummy/tmp/cache/assets/CDE/240/sprockets%2Fcf7da81f64139020d3a4a78f904609c4 +0 -0
  124. data/spec/dummy/tmp/cache/assets/CEF/560/sprockets%2Fa1bf08ab120c72351b460a65e4800af6 +0 -0
  125. data/spec/dummy/tmp/cache/assets/CF0/1D0/sprockets%2F6fc757c2c8329244ca95d6909865bbc2 +0 -0
  126. data/spec/dummy/tmp/cache/assets/D08/D50/sprockets%2F36daa544802ddf93249b8d07dab81125 +0 -0
  127. data/spec/dummy/tmp/cache/assets/D0A/410/sprockets%2F7e74a40717d2324f9a30ddff29ea5124 +0 -0
  128. data/spec/dummy/tmp/cache/assets/D0E/C00/sprockets%2F3091a34f307d562f44ee24f4c776baa9 +0 -0
  129. data/spec/dummy/tmp/cache/assets/D0F/180/sprockets%2F1ea0059d1fca1d25898ff37c7c150944 +0 -0
  130. data/spec/dummy/tmp/cache/assets/D10/610/sprockets%2F5883b6e94dcea7e32d57de13201563c3 +0 -0
  131. data/spec/dummy/tmp/cache/assets/D11/D20/sprockets%2Fcac21eac42152981882bf9e489316af4 +0 -0
  132. data/spec/dummy/tmp/cache/assets/D1F/730/sprockets%2F2f81ed50f6f293b326c576a8528ce9f3 +0 -0
  133. data/spec/dummy/tmp/cache/assets/D22/380/sprockets%2Fda1670e413fe4633d84eb9394fd7797c +0 -0
  134. data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  135. data/spec/dummy/tmp/cache/assets/D33/240/sprockets%2Ffd4446a4ab97006a073ba30d57fdd617 +0 -0
  136. data/spec/dummy/tmp/cache/assets/D34/140/sprockets%2F0d8b2740eca50a83fc91e51292f9f00c +0 -0
  137. data/spec/dummy/tmp/cache/assets/D34/680/sprockets%2Fb2cb3891a4cb197ecb1a37299d14c531 +0 -0
  138. data/spec/dummy/tmp/cache/assets/D3C/3A0/sprockets%2F40c65286b76c2cbc9d2bd92a60e7f126 +0 -0
  139. data/spec/dummy/tmp/cache/assets/D3D/C40/sprockets%2F4654852579bc0bea406bcd54d38a7dc3 +0 -0
  140. data/spec/dummy/tmp/cache/assets/D46/650/sprockets%2Ff56253b5f374fff1a33fbbc9881c9124 +0 -0
  141. data/spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -0
  142. data/spec/dummy/tmp/cache/assets/D58/1E0/sprockets%2Fdd863e40bd669f77bb549b257d88d6b5 +0 -0
  143. data/spec/dummy/tmp/cache/assets/D61/6F0/sprockets%2F02da53eeca228bcef0c49278517111fe +0 -0
  144. data/spec/dummy/tmp/cache/assets/D63/720/sprockets%2Fe625e6b0d13c0bd8ca548a48e1d4508b +0 -0
  145. data/spec/dummy/tmp/cache/assets/D70/D70/sprockets%2Fc9ac544160bbcc29d775b54ca8f0269f +0 -0
  146. data/spec/dummy/tmp/cache/assets/D73/220/sprockets%2F3dbc0a37f98fb43ec819b85a64d32c55 +0 -0
  147. data/spec/dummy/tmp/cache/assets/D7A/BD0/sprockets%2Ff645c87585af5bf4be27a271f20b39ff +0 -0
  148. data/spec/dummy/tmp/cache/assets/D80/960/sprockets%2F269feebf3271f38b09bd01e9b748f77d +0 -0
  149. data/spec/dummy/tmp/cache/assets/D82/800/sprockets%2F72f633d76779cbfb7d9a57b5623c3faf +0 -0
  150. data/spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
  151. data/spec/dummy/tmp/cache/assets/D8D/EA0/sprockets%2Fe64949cb167a0aa27a33a1adf1d544be +0 -0
  152. data/spec/dummy/tmp/cache/assets/DCA/9B0/sprockets%2Fdf0e8f8a85e5d4056b3fe1cec3b7131a +0 -0
  153. data/spec/dummy/tmp/cache/assets/DF3/BA0/sprockets%2Ffddeae525be5a563ca0d194b614bf64b +0 -0
  154. data/spec/dummy/tmp/cache/assets/DFF/B40/sprockets%2Fe0d60af9df95b2a58c278acd3f2beb55 +0 -0
  155. data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  156. data/spec/dummy/tmp/cache/assets/E0A/870/sprockets%2Fbba31cc2875be0fddf5901fef9b99e48 +0 -0
  157. data/spec/dummy/tmp/cache/assets/E27/590/sprockets%2F097d2347f3f9d2ec19abefaaa5dd0ec1 +0 -0
  158. data/spec/dummy/tmp/cache/assets/E30/DC0/sprockets%2F9ddd7093ee1d47cbacd526f4bdd36e3c +0 -0
  159. data/spec/dummy/tmp/cache/assets/E49/530/sprockets%2F10dadda372ee79deb251d7bbbb025cec +0 -0
  160. data/spec/dummy/tmp/cache/assets/E82/4C0/sprockets%2F0d49c3fa07b559dbecbaabf2a4bad9c8 +0 -0
  161. data/spec/dummy/tmp/pids/server.pid +1 -0
  162. data/spec/factories.rb +28 -0
  163. data/spec/helpers/blogit/application_helper_spec.rb +14 -0
  164. data/spec/helpers/blogit/posts_helper_spec.rb +34 -0
  165. data/spec/lib/blogs_spec.rb +23 -0
  166. data/spec/lib/configuration_spec.rb +57 -0
  167. data/spec/lib/parsers/html_parser_spec.rb +12 -0
  168. data/spec/lib/parsers/markdown_parser_spec.rb +12 -0
  169. data/spec/lib/parsers/textile_parser_spec.rb +12 -0
  170. data/spec/models/blogit/comment_spec.rb +64 -0
  171. data/spec/models/blogit/post_spec.rb +153 -0
  172. data/spec/spec_helper.rb +16 -0
  173. data/spec/support/authentication.rb +9 -0
  174. data/spec/support/configuration.rb +5 -0
  175. metadata +415 -0
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe Blogit::Blogs do
4
+
5
+ it "should be included in ActiveRecord::Base" do
6
+ ActiveRecord::Base.included_modules.should include(Blogit::Blogs)
7
+ end
8
+
9
+ describe :blogs do
10
+ it "should be a class macro to AR Base" do
11
+ ActiveRecord::Base.methods.should include(:blogs)
12
+ end
13
+
14
+
15
+ it "should build a hm assosciation on the model it's called in" do
16
+ lambda { User.new.blog_posts }.should_not raise_exception(NoMethodError)
17
+ User.new.blog_posts.should be_an(Array)
18
+ end
19
+
20
+ end
21
+
22
+
23
+ end
@@ -0,0 +1,57 @@
1
+ require "spec_helper"
2
+
3
+ describe Blogit::Configuration do
4
+
5
+ let(:blog_configuration) { @blog_configuration = Blogit::Configuration.new }
6
+
7
+ it "should set :include_comments to true" do
8
+ blog_configuration.include_comments.should be_true
9
+ end
10
+
11
+ it "should set :current_blogger_method to :current_user" do
12
+ blog_configuration.current_blogger_method.should eql(:current_user)
13
+ end
14
+
15
+ it "should set :blogger_display_name_method to :username" do
16
+ blog_configuration.blogger_display_name_method.should eql(:username)
17
+ end
18
+
19
+ it "should set :posts_per_page to 5" do
20
+ blog_configuration.posts_per_page.should eql(5)
21
+ end
22
+
23
+ it "should set :authentication_method to :login_required" do
24
+ blog_configuration.authentication_method.should == :login_required
25
+ end
26
+
27
+ it "should set datetime format to :short" do
28
+ blog_configuration.datetime_format.should == :short
29
+ end
30
+
31
+ it "should set author_edits_only to false" do
32
+ blog_configuration.author_edits_only.should be_false
33
+ end
34
+
35
+ it "should set ajax comments to true" do
36
+ blog_configuration.ajax_comments.should be_true
37
+ end
38
+
39
+ it "should set include admin actions to true" do
40
+ blog_configuration.include_admin_actions.should be_true
41
+ end
42
+
43
+ it "should set default_parser to :markdown" do
44
+ blog_configuration.default_parser.should eql(:markdown)
45
+ end
46
+
47
+ it "should return default_parser as class with default_parser_class" do
48
+ blog_configuration.default_parser = :textile
49
+ blog_configuration.default_parser_class.should eql(Blogit::Parsers::TextileParser)
50
+ end
51
+
52
+ it "should set redcarpet default options" do
53
+ blog_configuration.redcarpet_options.should ==
54
+ [:hard_wrap, :filter_html, :autolink, :no_intraemphasis, :fenced_code, :gh_blockcode]
55
+ end
56
+
57
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe Blogit::Parsers::HtmlParser do
4
+
5
+ let(:parser) { Blogit::Parsers::TextileParser.new("<h2>Some textile</h2>\n<p>A paragraph</p>") }
6
+ let(:desired_output) { "<h2>Some textile</h2>\n<p>A paragraph</p>" }
7
+
8
+ it "should return an html string of content passed when calling parsed" do
9
+ parser.parsed.should == desired_output
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe Blogit::Parsers::MarkdownParser do
4
+
5
+ let(:parser) { Blogit::Parsers::MarkdownParser.new("## Some textile\n\nA paragraph") }
6
+ let(:desired_output) { "<h2>Some textile</h2>\n\n<p>A paragraph</p>\n" }
7
+
8
+ it "should return an html string of content passed when calling parsed" do
9
+ parser.parsed.should == desired_output
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe Blogit::Parsers::TextileParser do
4
+
5
+ let(:parser) { Blogit::Parsers::TextileParser.new("h2. Some textile\n\np. A paragraph") }
6
+ let(:desired_output) { "<h2>Some textile</h2>\n<p>A paragraph</p>" }
7
+
8
+ it "should return an html string of content passed when calling parsed" do
9
+ parser.parsed.should == desired_output
10
+ end
11
+
12
+ end
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+
3
+ describe Comment do
4
+
5
+ describe "should not be valid if it" do
6
+
7
+ let(:comment) { build(:comment) }
8
+
9
+ # nickname is a honey-pot
10
+ it "has a value for nickname" do
11
+ comment.nickname = "Gavin"
12
+ comment.should_not be_valid
13
+ comment.should have(1).error_on(:nickname)
14
+ end
15
+
16
+ it "doesn't have a value for name" do
17
+ comment.name = ""
18
+ comment.should_not be_valid
19
+ comment.should have(1).error_on(:name)
20
+ end
21
+
22
+ it "doesn't have a value for email" do
23
+ comment.email = ""
24
+ comment.should_not be_valid
25
+ comment.should have(1).error_on(:email)
26
+ end
27
+
28
+ it "doesn't have a valid email" do
29
+ comment.email = "notvalid.com"
30
+ comment.should_not be_valid
31
+ comment.should have(1).error_on(:email)
32
+
33
+ # has a space
34
+ comment.email = "something else"
35
+ comment.should_not be_valid
36
+ comment.should have(1).error_on(:email)
37
+
38
+ # Has two @s
39
+ comment.email = "gavin@gavin@notvalid.com"
40
+ comment.should_not be_valid
41
+ comment.should have(1).error_on(:email)
42
+ end
43
+
44
+ it "doesn't have a value for body" do
45
+ comment.body = ""
46
+ comment.should_not be_valid
47
+ comment.should have(1).error_on(:body)
48
+ end
49
+
50
+ it "doesn't have at least 4 characters in the body" do
51
+ comment.body = "abc"
52
+ comment.should_not be_valid
53
+ comment.should have(1).error_on(:body)
54
+ end
55
+
56
+ it "doesn't have a valid website url" do
57
+ comment.website = "not valid"
58
+ comment.should_not be_valid
59
+ comment.should have(1).error_on(:website)
60
+ end
61
+
62
+ end
63
+
64
+ end
@@ -0,0 +1,153 @@
1
+ require "spec_helper"
2
+
3
+ describe Blogit::Post do
4
+
5
+ context "should not be valid" do
6
+
7
+ context "if blogger" do
8
+
9
+ it "is nil" do
10
+ @blog_post = Blogit::Post.new
11
+ @blog_post.should_not be_valid
12
+ @blog_post.should have(1).error_on(:blogger_id)
13
+ end
14
+
15
+ end
16
+
17
+ context "if title" do
18
+ before do
19
+ @blog_post = Blogit::Post.new
20
+ end
21
+
22
+ after do
23
+ @blog_post.should_not be_valid
24
+ @blog_post.errors[:title].should_not be_blank
25
+ end
26
+
27
+ it "is blank" do
28
+ # before and after block cover this
29
+ end
30
+
31
+ it "is less than 10 characters" do
32
+ @blog_post.title = "a" * 9
33
+ end
34
+
35
+ it "is longer than 66 characters" do
36
+ @blog_post.title = "a" * 67
37
+ end
38
+
39
+ end
40
+
41
+ context "if body" do
42
+ before do
43
+ @blog_post = Blogit::Post.new
44
+ end
45
+
46
+ after do
47
+ @blog_post.should_not be_valid
48
+ @blog_post.errors[:body].should_not be_blank
49
+ end
50
+
51
+ it "is blank" do
52
+ # defined above
53
+ end
54
+
55
+ it "is shorter than 10 characters" do
56
+ @blog_post.body = "a" * 9
57
+ end
58
+
59
+ end
60
+
61
+ end
62
+
63
+ context "with Blogit.configuration.comments == true" do
64
+ it "should have many comments if " do
65
+ Blogit.configure do |config|
66
+ # this should be true by default anyway
67
+ config.include_comments = true
68
+ end
69
+ User.blogs
70
+ @blog_post = Blogit::Post.new
71
+ lambda { @blog_post.comments }.should_not raise_exception(NoMethodError)
72
+ end
73
+
74
+ end
75
+
76
+ describe "blogger_display_name" do
77
+
78
+ before :all do
79
+ User.blogs
80
+ end
81
+
82
+ let(:user) { User.create! username: "Jeronimo", password: "password" }
83
+
84
+ it "should return the display name of the blogger if set" do
85
+ @post = user.blog_posts.build
86
+ @post.blogger_display_name.should == "Jeronimo"
87
+ Blogit.configuration.blogger_display_name_method = :password
88
+ @post.blogger_display_name.should == "password"
89
+ end
90
+
91
+ it "should return an empty string if blogger doesn't exist" do
92
+ Blogit.configuration.blogger_display_name_method = :username
93
+ @post = Blogit::Post.new
94
+ @post.blogger_display_name.should == ""
95
+ end
96
+
97
+ it "should raise an exception if blogger display_name method doesn't exist" do
98
+ Blogit.configuration.blogger_display_name_method = :display_name
99
+ @post = user.blog_posts.build
100
+ lambda { @post.blogger_display_name }.should raise_exception(Blogit::ConfigurationError)
101
+ end
102
+
103
+ end
104
+
105
+ describe "scopes" do
106
+
107
+ describe :for_index do
108
+
109
+ before :all do
110
+ Blogit::Post.destroy_all
111
+ 15.times { |i| create :post, updated_at: i.days.ago }
112
+ end
113
+
114
+ it "should order posts by updated_at DESC" do
115
+ Blogit::Post.for_index.first.should == Blogit::Post.order("updated_at DESC").first
116
+ end
117
+
118
+ it "should paginate posts in blocks of 5" do
119
+ Blogit::Post.for_index.count.should == 5
120
+ end
121
+
122
+ it "should accept page no as an argument" do
123
+ Blogit::Post.for_index(2).should == Blogit::Post.order("updated_at DESC").offset(5).limit(5)
124
+ end
125
+
126
+ it "should change the no of posts per page if paginates_per is set" do
127
+ Blogit::Post.paginates_per 3
128
+ Blogit::Post.for_index.count.should eql(3)
129
+ end
130
+
131
+
132
+ end
133
+
134
+
135
+ end
136
+
137
+
138
+ # TODO: Find a better way to test this
139
+ # describe "with Blogit.configuration.comments == false" do
140
+ #
141
+ # it "should not have many comments if Blogit.configuration.comments == false" do
142
+ # Blogit.configure do |config|
143
+ # # this should be true by default anyway
144
+ # config.include_comments = false
145
+ # end
146
+ # User.blogs
147
+ # @blog_post = Blogit::Post.new
148
+ # lambda { @blog_post.comments }.should raise_exception(NoMethodError)
149
+ # end
150
+ #
151
+ # end
152
+
153
+ end
@@ -0,0 +1,16 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+
4
+ require File.expand_path("../dummy/config/environment", __FILE__)
5
+ require 'rspec/rails'
6
+ require "factory_girl"
7
+ require "factories"
8
+ require "support/authentication"
9
+
10
+ include Blogit
11
+
12
+ RSpec.configure do |config|
13
+ config.mock_with :mocha
14
+ config.include Factory::Syntax::Methods
15
+ end
16
+
@@ -0,0 +1,9 @@
1
+ def mock_login
2
+ @current_blogger = User.first || create(:user)
3
+ controller.expects(:current_user).at_least_once.returns(@current_blogger)
4
+ end
5
+ def reset_configuration
6
+ Blogit.configure do |config|
7
+ config.current_blogger_method = :current_user
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ def reset_configuration
2
+ Blogit.configure do |config|
3
+ config.current_blogger_method = :current_user
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,415 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: blogit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Bodacious
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-11-14 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &70300332223680 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.1.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70300332223680
25
+ - !ruby/object:Gem::Dependency
26
+ name: jquery-rails
27
+ requirement: &70300332223200 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70300332223200
36
+ - !ruby/object:Gem::Dependency
37
+ name: RedCloth
38
+ requirement: &70300332222740 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70300332222740
47
+ - !ruby/object:Gem::Dependency
48
+ name: redcarpet
49
+ requirement: &70300332222260 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70300332222260
58
+ - !ruby/object:Gem::Dependency
59
+ name: nokogiri
60
+ requirement: &70300332221500 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *70300332221500
69
+ - !ruby/object:Gem::Dependency
70
+ name: sqlite3
71
+ requirement: &70300332220740 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70300332220740
80
+ description: Add a blog to your Rails application in minutes with this mountable Rails
81
+ Engine
82
+ email:
83
+ - gavin@gavinmorrice.com
84
+ executables: []
85
+ extensions: []
86
+ extra_rdoc_files: []
87
+ files:
88
+ - app/assets/javascripts/blogit/index.js
89
+ - app/assets/stylesheets/blogit/comments.css
90
+ - app/assets/stylesheets/blogit/index.css
91
+ - app/assets/stylesheets/blogit/posts.css
92
+ - app/controllers/blogit/application_controller.rb
93
+ - app/controllers/blogit/comments_controller.rb
94
+ - app/controllers/blogit/posts_controller.rb
95
+ - app/helpers/blogit/application_helper.rb
96
+ - app/helpers/blogit/comments_helper.rb
97
+ - app/helpers/blogit/posts_helper.rb
98
+ - app/models/blogit/comment.rb
99
+ - app/models/blogit/post.rb
100
+ - app/views/blogit/comments/_comment.html.erb
101
+ - app/views/blogit/comments/_form.html.erb
102
+ - app/views/blogit/comments/create.js.erb
103
+ - app/views/blogit/comments/destroy.js.erb
104
+ - app/views/blogit/posts/_blog_post_spacer.html.erb
105
+ - app/views/blogit/posts/_blogger_information.html.erb
106
+ - app/views/blogit/posts/_comments_count.html.erb
107
+ - app/views/blogit/posts/_form.html.erb
108
+ - app/views/blogit/posts/_pagination.html.erb
109
+ - app/views/blogit/posts/_post.html.erb
110
+ - app/views/blogit/posts/_post_body.html.erb
111
+ - app/views/blogit/posts/_post_head.html.erb
112
+ - app/views/blogit/posts/_post_links.html.erb
113
+ - app/views/blogit/posts/edit.html.erb
114
+ - app/views/blogit/posts/index.html.erb
115
+ - app/views/blogit/posts/new.html.erb
116
+ - app/views/blogit/posts/show.html.erb
117
+ - config/routes.rb
118
+ - db/migrate/20110814091434_create_blog_posts.rb
119
+ - db/migrate/20110814093229_create_blog_comments.rb
120
+ - db/migrate/20110814103306_acts_as_taggable_on_migration.rb
121
+ - lib/blogit/blogs.rb
122
+ - lib/blogit/configuration.rb
123
+ - lib/blogit/engine.rb
124
+ - lib/blogit/parsers/html_parser.rb
125
+ - lib/blogit/parsers/markdown_parser.rb
126
+ - lib/blogit/parsers/textile_parser.rb
127
+ - lib/blogit/parsers.rb
128
+ - lib/blogit/version.rb
129
+ - lib/blogit.rb
130
+ - lib/generators/blogit/install_generator.rb
131
+ - lib/generators/blogit/USAGE
132
+ - lib/generators/templates/blogit.rb
133
+ - lib/tasks/blog_tasks.rake
134
+ - lib/validators/absence_validator.rb
135
+ - lib/validators.rb
136
+ - MIT-LICENSE
137
+ - Rakefile
138
+ - README.md
139
+ - spec/blogit_spec.rb
140
+ - spec/controllers/blogit/comments_controller_spec.rb
141
+ - spec/controllers/blogit/posts_controller_spec.rb
142
+ - spec/dummy/app/assets/javascripts/application.js
143
+ - spec/dummy/app/assets/stylesheets/application.css
144
+ - spec/dummy/app/controllers/application_controller.rb
145
+ - spec/dummy/app/controllers/people_controller.rb
146
+ - spec/dummy/app/controllers/sessions_controller.rb
147
+ - spec/dummy/app/controllers/users_controller.rb
148
+ - spec/dummy/app/helpers/application_helper.rb
149
+ - spec/dummy/app/helpers/people_helper.rb
150
+ - spec/dummy/app/helpers/sessions_helper.rb
151
+ - spec/dummy/app/helpers/users_helper.rb
152
+ - spec/dummy/app/models/person.rb
153
+ - spec/dummy/app/models/user.rb
154
+ - spec/dummy/app/views/layouts/application.html.erb
155
+ - spec/dummy/app/views/people/_form.html.erb
156
+ - spec/dummy/app/views/people/edit.html.erb
157
+ - spec/dummy/app/views/people/index.html.erb
158
+ - spec/dummy/app/views/people/new.html.erb
159
+ - spec/dummy/app/views/people/show.html.erb
160
+ - spec/dummy/app/views/sessions/new.html.erb
161
+ - spec/dummy/app/views/users/_form.html.erb
162
+ - spec/dummy/app/views/users/edit.html.erb
163
+ - spec/dummy/app/views/users/index.html.erb
164
+ - spec/dummy/app/views/users/new.html.erb
165
+ - spec/dummy/app/views/users/show.html.erb
166
+ - spec/dummy/config/application.rb
167
+ - spec/dummy/config/boot.rb
168
+ - spec/dummy/config/database.yml
169
+ - spec/dummy/config/environment.rb
170
+ - spec/dummy/config/environments/development.rb
171
+ - spec/dummy/config/environments/production.rb
172
+ - spec/dummy/config/environments/test.rb
173
+ - spec/dummy/config/initializers/backtrace_silencers.rb
174
+ - spec/dummy/config/initializers/blogit.rb
175
+ - spec/dummy/config/initializers/inflections.rb
176
+ - spec/dummy/config/initializers/mime_types.rb
177
+ - spec/dummy/config/initializers/secret_token.rb
178
+ - spec/dummy/config/initializers/session_store.rb
179
+ - spec/dummy/config/initializers/wrap_parameters.rb
180
+ - spec/dummy/config/locales/en.yml
181
+ - spec/dummy/config/routes.rb
182
+ - spec/dummy/config.ru
183
+ - spec/dummy/db/development.sqlite3
184
+ - spec/dummy/db/migrate/20110814091304_create_users.rb
185
+ - spec/dummy/db/migrate/20110819103335_create_people.rb
186
+ - spec/dummy/db/schema.rb
187
+ - spec/dummy/db/test.sqlite3
188
+ - spec/dummy/log/development.log
189
+ - spec/dummy/log/test.log
190
+ - spec/dummy/public/404.html
191
+ - spec/dummy/public/422.html
192
+ - spec/dummy/public/500.html
193
+ - spec/dummy/public/favicon.ico
194
+ - spec/dummy/Rakefile
195
+ - spec/dummy/script/rails
196
+ - spec/dummy/test/fixtures/people.yml
197
+ - spec/dummy/test/fixtures/users.yml
198
+ - spec/dummy/test/functional/people_controller_test.rb
199
+ - spec/dummy/test/functional/sessions_controller_test.rb
200
+ - spec/dummy/test/functional/users_controller_test.rb
201
+ - spec/dummy/test/unit/helpers/people_helper_test.rb
202
+ - spec/dummy/test/unit/helpers/sessions_helper_test.rb
203
+ - spec/dummy/test/unit/helpers/users_helper_test.rb
204
+ - spec/dummy/test/unit/person_test.rb
205
+ - spec/dummy/test/unit/user_test.rb
206
+ - spec/dummy/tmp/cache/assets/BC4/870/sprockets%2F64a399278031122c8576726e146081d5
207
+ - spec/dummy/tmp/cache/assets/C49/710/sprockets%2F8a389a2323475a7053fc419c4103814f
208
+ - spec/dummy/tmp/cache/assets/C9E/F00/sprockets%2Fdbb1755717649d42fe9df99326657618
209
+ - spec/dummy/tmp/cache/assets/CAA/0C0/sprockets%2Feec4505e23136c45e543a609b0c69554
210
+ - spec/dummy/tmp/cache/assets/CDE/240/sprockets%2Fcf7da81f64139020d3a4a78f904609c4
211
+ - spec/dummy/tmp/cache/assets/CEF/560/sprockets%2Fa1bf08ab120c72351b460a65e4800af6
212
+ - spec/dummy/tmp/cache/assets/CF0/1D0/sprockets%2F6fc757c2c8329244ca95d6909865bbc2
213
+ - spec/dummy/tmp/cache/assets/D08/D50/sprockets%2F36daa544802ddf93249b8d07dab81125
214
+ - spec/dummy/tmp/cache/assets/D0A/410/sprockets%2F7e74a40717d2324f9a30ddff29ea5124
215
+ - spec/dummy/tmp/cache/assets/D0E/C00/sprockets%2F3091a34f307d562f44ee24f4c776baa9
216
+ - spec/dummy/tmp/cache/assets/D0F/180/sprockets%2F1ea0059d1fca1d25898ff37c7c150944
217
+ - spec/dummy/tmp/cache/assets/D10/610/sprockets%2F5883b6e94dcea7e32d57de13201563c3
218
+ - spec/dummy/tmp/cache/assets/D11/D20/sprockets%2Fcac21eac42152981882bf9e489316af4
219
+ - spec/dummy/tmp/cache/assets/D1F/730/sprockets%2F2f81ed50f6f293b326c576a8528ce9f3
220
+ - spec/dummy/tmp/cache/assets/D22/380/sprockets%2Fda1670e413fe4633d84eb9394fd7797c
221
+ - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
222
+ - spec/dummy/tmp/cache/assets/D33/240/sprockets%2Ffd4446a4ab97006a073ba30d57fdd617
223
+ - spec/dummy/tmp/cache/assets/D34/140/sprockets%2F0d8b2740eca50a83fc91e51292f9f00c
224
+ - spec/dummy/tmp/cache/assets/D34/680/sprockets%2Fb2cb3891a4cb197ecb1a37299d14c531
225
+ - spec/dummy/tmp/cache/assets/D3C/3A0/sprockets%2F40c65286b76c2cbc9d2bd92a60e7f126
226
+ - spec/dummy/tmp/cache/assets/D3D/C40/sprockets%2F4654852579bc0bea406bcd54d38a7dc3
227
+ - spec/dummy/tmp/cache/assets/D46/650/sprockets%2Ff56253b5f374fff1a33fbbc9881c9124
228
+ - spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4
229
+ - spec/dummy/tmp/cache/assets/D58/1E0/sprockets%2Fdd863e40bd669f77bb549b257d88d6b5
230
+ - spec/dummy/tmp/cache/assets/D61/6F0/sprockets%2F02da53eeca228bcef0c49278517111fe
231
+ - spec/dummy/tmp/cache/assets/D63/720/sprockets%2Fe625e6b0d13c0bd8ca548a48e1d4508b
232
+ - spec/dummy/tmp/cache/assets/D70/D70/sprockets%2Fc9ac544160bbcc29d775b54ca8f0269f
233
+ - spec/dummy/tmp/cache/assets/D73/220/sprockets%2F3dbc0a37f98fb43ec819b85a64d32c55
234
+ - spec/dummy/tmp/cache/assets/D7A/BD0/sprockets%2Ff645c87585af5bf4be27a271f20b39ff
235
+ - spec/dummy/tmp/cache/assets/D80/960/sprockets%2F269feebf3271f38b09bd01e9b748f77d
236
+ - spec/dummy/tmp/cache/assets/D82/800/sprockets%2F72f633d76779cbfb7d9a57b5623c3faf
237
+ - spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384
238
+ - spec/dummy/tmp/cache/assets/D8D/EA0/sprockets%2Fe64949cb167a0aa27a33a1adf1d544be
239
+ - spec/dummy/tmp/cache/assets/DCA/9B0/sprockets%2Fdf0e8f8a85e5d4056b3fe1cec3b7131a
240
+ - spec/dummy/tmp/cache/assets/DF3/BA0/sprockets%2Ffddeae525be5a563ca0d194b614bf64b
241
+ - spec/dummy/tmp/cache/assets/DFF/B40/sprockets%2Fe0d60af9df95b2a58c278acd3f2beb55
242
+ - spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
243
+ - spec/dummy/tmp/cache/assets/E0A/870/sprockets%2Fbba31cc2875be0fddf5901fef9b99e48
244
+ - spec/dummy/tmp/cache/assets/E27/590/sprockets%2F097d2347f3f9d2ec19abefaaa5dd0ec1
245
+ - spec/dummy/tmp/cache/assets/E30/DC0/sprockets%2F9ddd7093ee1d47cbacd526f4bdd36e3c
246
+ - spec/dummy/tmp/cache/assets/E49/530/sprockets%2F10dadda372ee79deb251d7bbbb025cec
247
+ - spec/dummy/tmp/cache/assets/E82/4C0/sprockets%2F0d49c3fa07b559dbecbaabf2a4bad9c8
248
+ - spec/dummy/tmp/pids/server.pid
249
+ - spec/factories.rb
250
+ - spec/helpers/blogit/application_helper_spec.rb
251
+ - spec/helpers/blogit/posts_helper_spec.rb
252
+ - spec/lib/blogs_spec.rb
253
+ - spec/lib/configuration_spec.rb
254
+ - spec/lib/parsers/html_parser_spec.rb
255
+ - spec/lib/parsers/markdown_parser_spec.rb
256
+ - spec/lib/parsers/textile_parser_spec.rb
257
+ - spec/models/blogit/comment_spec.rb
258
+ - spec/models/blogit/post_spec.rb
259
+ - spec/spec_helper.rb
260
+ - spec/support/authentication.rb
261
+ - spec/support/configuration.rb
262
+ homepage: http://bodacious.github.com/blogit/
263
+ licenses: []
264
+ post_install_message:
265
+ rdoc_options: []
266
+ require_paths:
267
+ - lib
268
+ required_ruby_version: !ruby/object:Gem::Requirement
269
+ none: false
270
+ requirements:
271
+ - - ! '>='
272
+ - !ruby/object:Gem::Version
273
+ version: '0'
274
+ segments:
275
+ - 0
276
+ hash: 3949339092699362248
277
+ required_rubygems_version: !ruby/object:Gem::Requirement
278
+ none: false
279
+ requirements:
280
+ - - ! '>='
281
+ - !ruby/object:Gem::Version
282
+ version: '0'
283
+ segments:
284
+ - 0
285
+ hash: 3949339092699362248
286
+ requirements: []
287
+ rubyforge_project:
288
+ rubygems_version: 1.8.11
289
+ signing_key:
290
+ specification_version: 3
291
+ summary: A mountable Rails blog for Rails 3.1 + applications
292
+ test_files:
293
+ - spec/blogit_spec.rb
294
+ - spec/controllers/blogit/comments_controller_spec.rb
295
+ - spec/controllers/blogit/posts_controller_spec.rb
296
+ - spec/dummy/app/assets/javascripts/application.js
297
+ - spec/dummy/app/assets/stylesheets/application.css
298
+ - spec/dummy/app/controllers/application_controller.rb
299
+ - spec/dummy/app/controllers/people_controller.rb
300
+ - spec/dummy/app/controllers/sessions_controller.rb
301
+ - spec/dummy/app/controllers/users_controller.rb
302
+ - spec/dummy/app/helpers/application_helper.rb
303
+ - spec/dummy/app/helpers/people_helper.rb
304
+ - spec/dummy/app/helpers/sessions_helper.rb
305
+ - spec/dummy/app/helpers/users_helper.rb
306
+ - spec/dummy/app/models/person.rb
307
+ - spec/dummy/app/models/user.rb
308
+ - spec/dummy/app/views/layouts/application.html.erb
309
+ - spec/dummy/app/views/people/_form.html.erb
310
+ - spec/dummy/app/views/people/edit.html.erb
311
+ - spec/dummy/app/views/people/index.html.erb
312
+ - spec/dummy/app/views/people/new.html.erb
313
+ - spec/dummy/app/views/people/show.html.erb
314
+ - spec/dummy/app/views/sessions/new.html.erb
315
+ - spec/dummy/app/views/users/_form.html.erb
316
+ - spec/dummy/app/views/users/edit.html.erb
317
+ - spec/dummy/app/views/users/index.html.erb
318
+ - spec/dummy/app/views/users/new.html.erb
319
+ - spec/dummy/app/views/users/show.html.erb
320
+ - spec/dummy/config/application.rb
321
+ - spec/dummy/config/boot.rb
322
+ - spec/dummy/config/database.yml
323
+ - spec/dummy/config/environment.rb
324
+ - spec/dummy/config/environments/development.rb
325
+ - spec/dummy/config/environments/production.rb
326
+ - spec/dummy/config/environments/test.rb
327
+ - spec/dummy/config/initializers/backtrace_silencers.rb
328
+ - spec/dummy/config/initializers/blogit.rb
329
+ - spec/dummy/config/initializers/inflections.rb
330
+ - spec/dummy/config/initializers/mime_types.rb
331
+ - spec/dummy/config/initializers/secret_token.rb
332
+ - spec/dummy/config/initializers/session_store.rb
333
+ - spec/dummy/config/initializers/wrap_parameters.rb
334
+ - spec/dummy/config/locales/en.yml
335
+ - spec/dummy/config/routes.rb
336
+ - spec/dummy/config.ru
337
+ - spec/dummy/db/development.sqlite3
338
+ - spec/dummy/db/migrate/20110814091304_create_users.rb
339
+ - spec/dummy/db/migrate/20110819103335_create_people.rb
340
+ - spec/dummy/db/schema.rb
341
+ - spec/dummy/db/test.sqlite3
342
+ - spec/dummy/log/development.log
343
+ - spec/dummy/log/test.log
344
+ - spec/dummy/public/404.html
345
+ - spec/dummy/public/422.html
346
+ - spec/dummy/public/500.html
347
+ - spec/dummy/public/favicon.ico
348
+ - spec/dummy/Rakefile
349
+ - spec/dummy/script/rails
350
+ - spec/dummy/test/fixtures/people.yml
351
+ - spec/dummy/test/fixtures/users.yml
352
+ - spec/dummy/test/functional/people_controller_test.rb
353
+ - spec/dummy/test/functional/sessions_controller_test.rb
354
+ - spec/dummy/test/functional/users_controller_test.rb
355
+ - spec/dummy/test/unit/helpers/people_helper_test.rb
356
+ - spec/dummy/test/unit/helpers/sessions_helper_test.rb
357
+ - spec/dummy/test/unit/helpers/users_helper_test.rb
358
+ - spec/dummy/test/unit/person_test.rb
359
+ - spec/dummy/test/unit/user_test.rb
360
+ - spec/dummy/tmp/cache/assets/BC4/870/sprockets%2F64a399278031122c8576726e146081d5
361
+ - spec/dummy/tmp/cache/assets/C49/710/sprockets%2F8a389a2323475a7053fc419c4103814f
362
+ - spec/dummy/tmp/cache/assets/C9E/F00/sprockets%2Fdbb1755717649d42fe9df99326657618
363
+ - spec/dummy/tmp/cache/assets/CAA/0C0/sprockets%2Feec4505e23136c45e543a609b0c69554
364
+ - spec/dummy/tmp/cache/assets/CDE/240/sprockets%2Fcf7da81f64139020d3a4a78f904609c4
365
+ - spec/dummy/tmp/cache/assets/CEF/560/sprockets%2Fa1bf08ab120c72351b460a65e4800af6
366
+ - spec/dummy/tmp/cache/assets/CF0/1D0/sprockets%2F6fc757c2c8329244ca95d6909865bbc2
367
+ - spec/dummy/tmp/cache/assets/D08/D50/sprockets%2F36daa544802ddf93249b8d07dab81125
368
+ - spec/dummy/tmp/cache/assets/D0A/410/sprockets%2F7e74a40717d2324f9a30ddff29ea5124
369
+ - spec/dummy/tmp/cache/assets/D0E/C00/sprockets%2F3091a34f307d562f44ee24f4c776baa9
370
+ - spec/dummy/tmp/cache/assets/D0F/180/sprockets%2F1ea0059d1fca1d25898ff37c7c150944
371
+ - spec/dummy/tmp/cache/assets/D10/610/sprockets%2F5883b6e94dcea7e32d57de13201563c3
372
+ - spec/dummy/tmp/cache/assets/D11/D20/sprockets%2Fcac21eac42152981882bf9e489316af4
373
+ - spec/dummy/tmp/cache/assets/D1F/730/sprockets%2F2f81ed50f6f293b326c576a8528ce9f3
374
+ - spec/dummy/tmp/cache/assets/D22/380/sprockets%2Fda1670e413fe4633d84eb9394fd7797c
375
+ - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
376
+ - spec/dummy/tmp/cache/assets/D33/240/sprockets%2Ffd4446a4ab97006a073ba30d57fdd617
377
+ - spec/dummy/tmp/cache/assets/D34/140/sprockets%2F0d8b2740eca50a83fc91e51292f9f00c
378
+ - spec/dummy/tmp/cache/assets/D34/680/sprockets%2Fb2cb3891a4cb197ecb1a37299d14c531
379
+ - spec/dummy/tmp/cache/assets/D3C/3A0/sprockets%2F40c65286b76c2cbc9d2bd92a60e7f126
380
+ - spec/dummy/tmp/cache/assets/D3D/C40/sprockets%2F4654852579bc0bea406bcd54d38a7dc3
381
+ - spec/dummy/tmp/cache/assets/D46/650/sprockets%2Ff56253b5f374fff1a33fbbc9881c9124
382
+ - spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4
383
+ - spec/dummy/tmp/cache/assets/D58/1E0/sprockets%2Fdd863e40bd669f77bb549b257d88d6b5
384
+ - spec/dummy/tmp/cache/assets/D61/6F0/sprockets%2F02da53eeca228bcef0c49278517111fe
385
+ - spec/dummy/tmp/cache/assets/D63/720/sprockets%2Fe625e6b0d13c0bd8ca548a48e1d4508b
386
+ - spec/dummy/tmp/cache/assets/D70/D70/sprockets%2Fc9ac544160bbcc29d775b54ca8f0269f
387
+ - spec/dummy/tmp/cache/assets/D73/220/sprockets%2F3dbc0a37f98fb43ec819b85a64d32c55
388
+ - spec/dummy/tmp/cache/assets/D7A/BD0/sprockets%2Ff645c87585af5bf4be27a271f20b39ff
389
+ - spec/dummy/tmp/cache/assets/D80/960/sprockets%2F269feebf3271f38b09bd01e9b748f77d
390
+ - spec/dummy/tmp/cache/assets/D82/800/sprockets%2F72f633d76779cbfb7d9a57b5623c3faf
391
+ - spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384
392
+ - spec/dummy/tmp/cache/assets/D8D/EA0/sprockets%2Fe64949cb167a0aa27a33a1adf1d544be
393
+ - spec/dummy/tmp/cache/assets/DCA/9B0/sprockets%2Fdf0e8f8a85e5d4056b3fe1cec3b7131a
394
+ - spec/dummy/tmp/cache/assets/DF3/BA0/sprockets%2Ffddeae525be5a563ca0d194b614bf64b
395
+ - spec/dummy/tmp/cache/assets/DFF/B40/sprockets%2Fe0d60af9df95b2a58c278acd3f2beb55
396
+ - spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
397
+ - spec/dummy/tmp/cache/assets/E0A/870/sprockets%2Fbba31cc2875be0fddf5901fef9b99e48
398
+ - spec/dummy/tmp/cache/assets/E27/590/sprockets%2F097d2347f3f9d2ec19abefaaa5dd0ec1
399
+ - spec/dummy/tmp/cache/assets/E30/DC0/sprockets%2F9ddd7093ee1d47cbacd526f4bdd36e3c
400
+ - spec/dummy/tmp/cache/assets/E49/530/sprockets%2F10dadda372ee79deb251d7bbbb025cec
401
+ - spec/dummy/tmp/cache/assets/E82/4C0/sprockets%2F0d49c3fa07b559dbecbaabf2a4bad9c8
402
+ - spec/dummy/tmp/pids/server.pid
403
+ - spec/factories.rb
404
+ - spec/helpers/blogit/application_helper_spec.rb
405
+ - spec/helpers/blogit/posts_helper_spec.rb
406
+ - spec/lib/blogs_spec.rb
407
+ - spec/lib/configuration_spec.rb
408
+ - spec/lib/parsers/html_parser_spec.rb
409
+ - spec/lib/parsers/markdown_parser_spec.rb
410
+ - spec/lib/parsers/textile_parser_spec.rb
411
+ - spec/models/blogit/comment_spec.rb
412
+ - spec/models/blogit/post_spec.rb
413
+ - spec/spec_helper.rb
414
+ - spec/support/authentication.rb
415
+ - spec/support/configuration.rb