sofa_blog 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data/Gemfile +8 -1
  2. data/Gemfile.lock +83 -65
  3. data/LICENSE +1 -1
  4. data/README.md +27 -23
  5. data/Rakefile +8 -7
  6. data/VERSION +1 -1
  7. data/app/assets/images/rails.png +0 -0
  8. data/app/assets/javascripts/sofa_blog/application.js +7 -0
  9. data/app/assets/javascripts/sofa_blog/posts.js +2 -0
  10. data/app/assets/stylesheets/sofa_blog/admin.css +57 -0
  11. data/app/assets/stylesheets/sofa_blog/application.css +73 -0
  12. data/app/assets/stylesheets/sofa_blog/reset.css +1 -0
  13. data/app/controllers/application_controller.rb +5 -0
  14. data/app/controllers/sofa_blog/admin/base_controller.rb +3 -0
  15. data/app/controllers/sofa_blog/admin/comments_controller.rb +74 -0
  16. data/app/controllers/sofa_blog/admin/posts_controller.rb +55 -0
  17. data/app/controllers/sofa_blog/posts_controller.rb +13 -0
  18. data/app/helpers/sofa_blog/posts_helper.rb +2 -0
  19. data/app/helpers/sofa_blog_helper.rb +12 -0
  20. data/app/models/.gitkeep +0 -0
  21. data/app/models/sofa_blog/comment.rb +53 -0
  22. data/app/models/{blog_post.rb → sofa_blog/post.rb} +25 -25
  23. data/app/models/{blog_tag.rb → sofa_blog/tag.rb} +11 -10
  24. data/app/models/sofa_blog/tagging.rb +9 -0
  25. data/app/views/layouts/application.html.erb +17 -0
  26. data/app/views/sofa_blog/admin/_html_head.html.erb +1 -0
  27. data/app/views/sofa_blog/admin/_navigation.html.erb +1 -0
  28. data/app/views/sofa_blog/admin/comments/_comment.html.erb +21 -0
  29. data/app/views/sofa_blog/admin/comments/_form.html.erb +27 -0
  30. data/app/views/sofa_blog/admin/comments/_status.html.erb +7 -0
  31. data/app/views/sofa_blog/admin/comments/approve.js.erb +1 -0
  32. data/app/views/sofa_blog/admin/comments/disapprove.js.erb +1 -0
  33. data/app/views/sofa_blog/admin/comments/edit.html.erb +6 -0
  34. data/app/views/sofa_blog/admin/comments/index.html.erb +7 -0
  35. data/app/views/sofa_blog/admin/comments/new.html.erb +14 -0
  36. data/app/views/sofa_blog/admin/posts/_form.html.erb +35 -0
  37. data/app/views/sofa_blog/admin/posts/_post.html.erb +21 -0
  38. data/app/views/sofa_blog/admin/posts/edit.html.erb +5 -0
  39. data/app/views/sofa_blog/admin/posts/index.html.erb +7 -0
  40. data/app/views/sofa_blog/admin/posts/new.html.erb +5 -0
  41. data/app/views/sofa_blog/posts/_post.html.erb +21 -0
  42. data/app/views/sofa_blog/posts/index.html.erb +5 -0
  43. data/config/application.rb +48 -0
  44. data/config/boot.rb +6 -0
  45. data/config/database.yml +25 -0
  46. data/{tmp → config}/environment.rb +0 -1
  47. data/config/environments/development.rb +33 -0
  48. data/config/environments/production.rb +51 -0
  49. data/config/environments/test.rb +42 -0
  50. data/config/initializers/secret_token.rb +3 -0
  51. data/config/initializers/sofa_blog.rb +12 -0
  52. data/config/initializers/wrap_parameters.rb +14 -0
  53. data/config/locales/en.yml +5 -0
  54. data/config/routes.rb +14 -9
  55. data/config.ru +4 -0
  56. data/db/migrate/01_create_sofa_blog.rb +29 -28
  57. data/db/schema.rb +59 -0
  58. data/db/seeds.rb +7 -0
  59. data/lib/sofa_blog/configuration.rb +21 -0
  60. data/lib/sofa_blog/engine.rb +13 -10
  61. data/lib/sofa_blog/form_builder.rb +50 -0
  62. data/lib/sofa_blog.rb +21 -2
  63. data/script/rails +6 -0
  64. data/sofa_blog.gemspec +89 -47
  65. data/test/fixtures/.gitkeep +0 -0
  66. data/test/fixtures/sofa_blog/comments.yml +6 -0
  67. data/test/fixtures/sofa_blog/posts.yml +7 -0
  68. data/test/functional/.gitkeep +0 -0
  69. data/test/functional/sofa_blog/admin/comments_controller_test.rb +59 -0
  70. data/test/functional/sofa_blog/admin/posts_controller_test.rb +76 -0
  71. data/test/functional/sofa_blog/posts_controller_test.rb +7 -0
  72. data/test/test_helper.rb +37 -0
  73. data/test/unit/.gitkeep +0 -0
  74. data/test/unit/comment_test.rb +55 -0
  75. data/test/unit/helpers/sofa_blog/posts_helper_test.rb +4 -0
  76. data/test/unit/post_test.rb +44 -0
  77. data/test/unit/tag_test.rb +7 -0
  78. data/test/unit/tagging_test.rb +7 -0
  79. metadata +145 -103
  80. data/.DS_Store +0 -0
  81. data/app/.DS_Store +0 -0
  82. data/app/controllers/cms_admin/blog_comments_controller.rb +0 -66
  83. data/app/controllers/cms_admin/blog_posts_controller.rb +0 -48
  84. data/app/models/blog_comment.rb +0 -45
  85. data/app/models/blog_tagging.rb +0 -8
  86. data/app/views/.DS_Store +0 -0
  87. data/app/views/cms_admin/blog_comments/_blog_comment.html.erb +0 -22
  88. data/app/views/cms_admin/blog_comments/_form.html.erb +0 -24
  89. data/app/views/cms_admin/blog_comments/_status.html.erb +0 -7
  90. data/app/views/cms_admin/blog_comments/approve.rjs +0 -1
  91. data/app/views/cms_admin/blog_comments/disapprove.rjs +0 -1
  92. data/app/views/cms_admin/blog_comments/edit.html.erb +0 -7
  93. data/app/views/cms_admin/blog_comments/index.html.erb +0 -7
  94. data/app/views/cms_admin/blog_comments/new.html.erb +0 -6
  95. data/app/views/cms_admin/blog_posts/_blog_post.html.erb +0 -21
  96. data/app/views/cms_admin/blog_posts/_form.html.erb +0 -33
  97. data/app/views/cms_admin/blog_posts/edit.html.erb +0 -7
  98. data/app/views/cms_admin/blog_posts/index.html.erb +0 -8
  99. data/app/views/cms_admin/blog_posts/new.html.erb +0 -5
  100. data/app/views/sofa_blog/_head.html.erb +0 -1
  101. data/app/views/sofa_blog/_nav.html.erb +0 -1
  102. data/config/.DS_Store +0 -0
  103. data/doc/sofa.png +0 -0
  104. data/lib/generators/README +0 -12
  105. data/lib/generators/blog_generator.rb +0 -33
  106. data/public/stylesheets/content.css +0 -53
  107. data/tmp/application.rb +0 -15
  108. data/tmp/boot.rb +0 -13
  109. data/tmp/initializers/formatted_form_builder.rb +0 -141
  110. data/tmp/initializers/wristband.rb +0 -1
  111. /data/{public/javascripts/jquery.autocomplete.pack.js → app/assets/javascripts/sofa_blog/jquery.autocomplete.js} +0 -0
@@ -0,0 +1,76 @@
1
+ require File.expand_path('../../../test_helper', File.dirname(__FILE__))
2
+
3
+ class SofaBlog::Admin::PostsControllerTest < ActionController::TestCase
4
+
5
+ def test_get_index
6
+ get :index
7
+ assert_response :success
8
+ assert assigns(:posts)
9
+ assert_template :index
10
+ end
11
+
12
+ def test_get_new
13
+ get :new
14
+ assert_response :success
15
+ assert assigns(:post)
16
+ assert_template :new
17
+ assert_select "form[action='/admin/posts']"
18
+ end
19
+
20
+ def test_creation
21
+ assert_difference 'SofaBlog::Post.count' do
22
+ post :create, :post => {:title => 'New post', :content => 'Lost of words'}
23
+ assert assigns(:post)
24
+ assert_equal 'Blog post created', flash[:notice]
25
+ assert_redirected_to :action => :index
26
+ end
27
+ end
28
+
29
+ def test_creation_failure
30
+ assert_no_difference 'SofaBlog::Post.count' do
31
+ post :create, :post => {:title => nil, :content => 'Lost of words'}
32
+ assert_response :success
33
+ assert assigns(:post)
34
+ assert_template :new
35
+ end
36
+ end
37
+
38
+ def test_get_edit
39
+ get :edit, :id => sofa_blog_posts(:default)
40
+ assert_response :success
41
+ assert_template :edit
42
+ end
43
+
44
+ def test_get_edit_failure
45
+ get :edit, :id => 'bogus'
46
+ assert_equal 'Blog post not found', flash[:error]
47
+ assert_redirected_to :action => :index
48
+ end
49
+
50
+ def test_update
51
+ assert_not_equal 'New post', sofa_blog_posts(:default).title
52
+ assert_not_equal 'Lost of words', sofa_blog_posts(:default).content
53
+ put :update, :id => sofa_blog_posts(:default).id, :post => {:title => 'New post', :content => 'Lost of words'}
54
+ assert assigns(:post)
55
+ assert_redirected_to :action => :index
56
+ assert_equal 'Blog post updated', flash[:notice]
57
+ assert_equal 'New post', assigns(:post).title
58
+ assert_equal 'Lost of words', assigns(:post).content
59
+ end
60
+
61
+ def test_update_failure
62
+ put :update, :id => 'bogus', :post => {:title => 'New post', :content => 'Lost of words'}
63
+ assert_equal 'Blog post not found', flash[:error]
64
+ assert_redirected_to :action => :index
65
+ end
66
+
67
+ def test_destroy
68
+ assert_difference 'SofaBlog::Post.count', -1 do
69
+ delete :destroy, :id => sofa_blog_posts(:default).id
70
+ assert assigns(:post)
71
+ assert_equal 'Blog post removed', flash[:notice]
72
+ assert_redirected_to :action => :index
73
+ end
74
+ end
75
+
76
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class SofaBlog::PostsControllerTest < ActionController::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,37 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path('../../config/environment', __FILE__)
3
+ require 'rails/test_help'
4
+
5
+ class ActiveSupport::TestCase
6
+
7
+ fixtures :all
8
+ include ActionDispatch::TestProcess
9
+
10
+ def setup
11
+ reset_config
12
+ end
13
+
14
+ # resetting default configuration
15
+ def reset_config
16
+ SofaBlog.configure do |config|
17
+ config.admin_route_prefix = 'admin'
18
+ config.admin_controller = 'ApplicationController'
19
+ config.form_builder = 'ActionView::Helpers::FormBuilder'
20
+ end
21
+ end
22
+
23
+ # Example usage:
24
+ # assert_has_errors_on( @record, [:field_1, :field_2] )
25
+ # assert_has_errors_on( @record, {:field_1 => 'Message1', :field_2 => 'Message 2'} )
26
+ def assert_has_errors_on(record, fields)
27
+ fields = [fields].flatten unless fields.is_a?(Hash)
28
+ fields.each do |field, message|
29
+ assert record.errors.to_hash.has_key?(field.to_sym), "#{record.class.name} should error on invalid #{field}"
30
+ if message && record.errors[field].is_a?(Array) && !message.is_a?(Array)
31
+ assert_not_nil record.errors[field].index(message)
32
+ elsif message
33
+ assert_equal message, record.errors[field]
34
+ end
35
+ end
36
+ end
37
+ end
File without changes
@@ -0,0 +1,55 @@
1
+ require File.expand_path('../test_helper', File.dirname(__FILE__))
2
+
3
+ class SofaBlog::CommentTest < ActiveSupport::TestCase
4
+
5
+ def test_fixtures_validity
6
+ SofaBlog::Comment.all.each do |comment|
7
+ assert comment.valid?, comment.errors.full_messages.to_yaml
8
+ end
9
+ end
10
+
11
+ def test_validations
12
+ comment = SofaBlog::Comment.new
13
+ assert comment.invalid?
14
+ assert_has_errors_on comment, [:post_id, :content, :name, :email]
15
+ end
16
+
17
+ def test_creation
18
+ assert_difference 'SofaBlog::Comment.count' do
19
+ sofa_blog_posts(:default).comments.create!(
20
+ :content => 'Test Content',
21
+ :name => 'Tester',
22
+ :email => 'tester@test.test'
23
+ )
24
+ end
25
+ end
26
+
27
+ def test_scope_approved
28
+ comment = sofa_blog_comments(:default)
29
+ assert comment.is_approved?
30
+ assert_equal 1, SofaBlog::Comment.approved.count
31
+ assert_equal comment, SofaBlog::Comment.approved.first
32
+ end
33
+
34
+ def test_approve_and_disapprove!
35
+ comment = sofa_blog_comments(:default)
36
+ post = comment.post
37
+
38
+ assert comment.is_approved?
39
+ assert_equal 1, post.comments_count
40
+ assert_equal 1, post.approved_comments_count
41
+
42
+ comment.disapprove!
43
+ assert !comment.is_approved?
44
+ post.reload
45
+ assert_equal 1, post.comments_count
46
+ assert_equal 0, post.approved_comments_count
47
+
48
+ comment.approve!
49
+ assert comment.is_approved?
50
+ post.reload
51
+ assert_equal 1, post.comments_count
52
+ assert_equal 1, post.approved_comments_count
53
+ end
54
+
55
+ end
@@ -0,0 +1,4 @@
1
+ require 'test_helper'
2
+
3
+ class SofaBlog::PostsHelperTest < ActionView::TestCase
4
+ end
@@ -0,0 +1,44 @@
1
+ require File.expand_path('../test_helper', File.dirname(__FILE__))
2
+
3
+ class SofaBlog::PostTest < ActiveSupport::TestCase
4
+
5
+ def test_fixtures_validity
6
+ SofaBlog::Post.all.each do |post|
7
+ assert post.valid?, post.errors.full_messages.to_s
8
+ end
9
+ end
10
+
11
+ def test_validations
12
+ post = SofaBlog::Post.new
13
+ assert post.invalid?
14
+ assert_has_errors_on post, [:title, :content]
15
+ end
16
+
17
+ def test_creation
18
+ assert_difference 'SofaBlog::Post.count' do
19
+ SofaBlog::Post.create!(
20
+ :title => 'Test Post',
21
+ :content => 'Test Content'
22
+ )
23
+ end
24
+ end
25
+
26
+ def test_destroy
27
+ assert_difference ['SofaBlog::Post.count', 'SofaBlog::Comment.count'], -1 do
28
+ sofa_blog_posts(:default).destroy
29
+ end
30
+ end
31
+
32
+ def test_to_param
33
+ post = sofa_blog_posts(:default)
34
+ assert_equal "#{post.id}-default-title", post.to_param
35
+ end
36
+
37
+ def test_scope_published
38
+ post = sofa_blog_posts(:default)
39
+ assert post.is_published?
40
+ assert_equal 1, SofaBlog::Post.published.count
41
+ assert_equal post, SofaBlog::Post.published.first
42
+ end
43
+
44
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class SofaBlog::TagTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class SofaBlog::TaggingTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
metadata CHANGED
@@ -1,145 +1,187 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sofa_blog
3
- version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 1
10
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jack Neto
14
- - The Working Group Inc
9
+ - The Working Group Inc.
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2011-02-27 00:00:00 -05:00
13
+ date: 2011-10-07 00:00:00.000000000 -04:00
20
14
  default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
23
- requirement: &id001 !ruby/object:Gem::Requirement
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rails
18
+ requirement: &2168635440 !ruby/object:Gem::Requirement
24
19
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 75
29
- segments:
30
- - 1
31
- - 0
32
- - 46
33
- version: 1.0.46
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: 3.1.0.rc8
34
24
  type: :runtime
35
- name: comfortable_mexican_sofa
36
25
  prerelease: false
37
- version_requirements: *id001
38
- - !ruby/object:Gem::Dependency
39
- requirement: &id002 !ruby/object:Gem::Requirement
26
+ version_requirements: *2168635440
27
+ - !ruby/object:Gem::Dependency
28
+ name: rinku
29
+ requirement: &2168634960 !ruby/object:Gem::Requirement
40
30
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 75
45
- segments:
46
- - 1
47
- - 0
48
- - 46
49
- version: 1.0.46
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: 1.2.2
50
35
  type: :runtime
51
- name: comfortable_mexican_sofa
52
36
  prerelease: false
53
- version_requirements: *id002
54
- description: ""
37
+ version_requirements: *2168634960
38
+ - !ruby/object:Gem::Dependency
39
+ name: jquery-rails
40
+ requirement: &2168634480 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: *2168634480
49
+ - !ruby/object:Gem::Dependency
50
+ name: sqlite3
51
+ requirement: &2168634000 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: *2168634000
60
+ - !ruby/object:Gem::Dependency
61
+ name: jeweler
62
+ requirement: &2168633520 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: *2168633520
71
+ description: ''
55
72
  email: jack@theworkinggroup.ca
56
73
  executables: []
57
-
58
74
  extensions: []
59
-
60
- extra_rdoc_files:
75
+ extra_rdoc_files:
61
76
  - LICENSE
62
77
  - README.md
63
- files:
64
- - .DS_Store
78
+ files:
65
79
  - Gemfile
66
80
  - Gemfile.lock
67
81
  - LICENSE
68
82
  - README.md
69
83
  - Rakefile
70
84
  - VERSION
71
- - app/.DS_Store
72
- - app/controllers/cms_admin/blog_comments_controller.rb
73
- - app/controllers/cms_admin/blog_posts_controller.rb
74
- - app/models/blog_comment.rb
75
- - app/models/blog_post.rb
76
- - app/models/blog_tag.rb
77
- - app/models/blog_tagging.rb
78
- - app/views/.DS_Store
79
- - app/views/cms_admin/blog_comments/_blog_comment.html.erb
80
- - app/views/cms_admin/blog_comments/_form.html.erb
81
- - app/views/cms_admin/blog_comments/_status.html.erb
82
- - app/views/cms_admin/blog_comments/approve.rjs
83
- - app/views/cms_admin/blog_comments/disapprove.rjs
84
- - app/views/cms_admin/blog_comments/edit.html.erb
85
- - app/views/cms_admin/blog_comments/index.html.erb
86
- - app/views/cms_admin/blog_comments/new.html.erb
87
- - app/views/cms_admin/blog_posts/_blog_post.html.erb
88
- - app/views/cms_admin/blog_posts/_form.html.erb
89
- - app/views/cms_admin/blog_posts/edit.html.erb
90
- - app/views/cms_admin/blog_posts/index.html.erb
91
- - app/views/cms_admin/blog_posts/new.html.erb
92
- - app/views/sofa_blog/_head.html.erb
93
- - app/views/sofa_blog/_nav.html.erb
94
- - config/.DS_Store
85
+ - app/assets/images/rails.png
86
+ - app/assets/javascripts/sofa_blog/application.js
87
+ - app/assets/javascripts/sofa_blog/jquery.autocomplete.js
88
+ - app/assets/javascripts/sofa_blog/posts.js
89
+ - app/assets/stylesheets/sofa_blog/admin.css
90
+ - app/assets/stylesheets/sofa_blog/application.css
91
+ - app/assets/stylesheets/sofa_blog/reset.css
92
+ - app/controllers/application_controller.rb
93
+ - app/controllers/sofa_blog/admin/base_controller.rb
94
+ - app/controllers/sofa_blog/admin/comments_controller.rb
95
+ - app/controllers/sofa_blog/admin/posts_controller.rb
96
+ - app/controllers/sofa_blog/posts_controller.rb
97
+ - app/helpers/sofa_blog/posts_helper.rb
98
+ - app/helpers/sofa_blog_helper.rb
99
+ - app/models/.gitkeep
100
+ - app/models/sofa_blog/comment.rb
101
+ - app/models/sofa_blog/post.rb
102
+ - app/models/sofa_blog/tag.rb
103
+ - app/models/sofa_blog/tagging.rb
104
+ - app/views/layouts/application.html.erb
105
+ - app/views/sofa_blog/admin/_html_head.html.erb
106
+ - app/views/sofa_blog/admin/_navigation.html.erb
107
+ - app/views/sofa_blog/admin/comments/_comment.html.erb
108
+ - app/views/sofa_blog/admin/comments/_form.html.erb
109
+ - app/views/sofa_blog/admin/comments/_status.html.erb
110
+ - app/views/sofa_blog/admin/comments/approve.js.erb
111
+ - app/views/sofa_blog/admin/comments/disapprove.js.erb
112
+ - app/views/sofa_blog/admin/comments/edit.html.erb
113
+ - app/views/sofa_blog/admin/comments/index.html.erb
114
+ - app/views/sofa_blog/admin/comments/new.html.erb
115
+ - app/views/sofa_blog/admin/posts/_form.html.erb
116
+ - app/views/sofa_blog/admin/posts/_post.html.erb
117
+ - app/views/sofa_blog/admin/posts/edit.html.erb
118
+ - app/views/sofa_blog/admin/posts/index.html.erb
119
+ - app/views/sofa_blog/admin/posts/new.html.erb
120
+ - app/views/sofa_blog/posts/_post.html.erb
121
+ - app/views/sofa_blog/posts/index.html.erb
122
+ - config.ru
123
+ - config/application.rb
124
+ - config/boot.rb
125
+ - config/database.yml
126
+ - config/environment.rb
127
+ - config/environments/development.rb
128
+ - config/environments/production.rb
129
+ - config/environments/test.rb
130
+ - config/initializers/secret_token.rb
131
+ - config/initializers/sofa_blog.rb
132
+ - config/initializers/wrap_parameters.rb
133
+ - config/locales/en.yml
95
134
  - config/routes.rb
96
135
  - db/migrate/01_create_sofa_blog.rb
97
- - doc/sofa.png
98
- - lib/generators/README
99
- - lib/generators/blog_generator.rb
136
+ - db/schema.rb
137
+ - db/seeds.rb
100
138
  - lib/sofa_blog.rb
139
+ - lib/sofa_blog/configuration.rb
101
140
  - lib/sofa_blog/engine.rb
102
- - public/javascripts/jquery.autocomplete.pack.js
103
- - public/stylesheets/content.css
141
+ - lib/sofa_blog/form_builder.rb
142
+ - script/rails
104
143
  - sofa_blog.gemspec
105
- - tmp/application.rb
106
- - tmp/boot.rb
107
- - tmp/environment.rb
108
- - tmp/initializers/formatted_form_builder.rb
109
- - tmp/initializers/wristband.rb
144
+ - test/fixtures/.gitkeep
145
+ - test/fixtures/sofa_blog/comments.yml
146
+ - test/fixtures/sofa_blog/posts.yml
147
+ - test/functional/.gitkeep
148
+ - test/functional/sofa_blog/admin/comments_controller_test.rb
149
+ - test/functional/sofa_blog/admin/posts_controller_test.rb
150
+ - test/functional/sofa_blog/posts_controller_test.rb
151
+ - test/test_helper.rb
152
+ - test/unit/.gitkeep
153
+ - test/unit/comment_test.rb
154
+ - test/unit/helpers/sofa_blog/posts_helper_test.rb
155
+ - test/unit/post_test.rb
156
+ - test/unit/tag_test.rb
157
+ - test/unit/tagging_test.rb
110
158
  has_rdoc: true
111
159
  homepage: http://github.com/twg/sofa-blog
112
- licenses: []
113
-
160
+ licenses:
161
+ - MIT
114
162
  post_install_message:
115
163
  rdoc_options: []
116
-
117
- require_paths:
164
+ require_paths:
118
165
  - lib
119
- required_ruby_version: !ruby/object:Gem::Requirement
166
+ required_ruby_version: !ruby/object:Gem::Requirement
120
167
  none: false
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- hash: 3
125
- segments:
168
+ requirements:
169
+ - - ! '>='
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ segments:
126
173
  - 0
127
- version: "0"
128
- required_rubygems_version: !ruby/object:Gem::Requirement
174
+ hash: -2041972271599075001
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
176
  none: false
130
- requirements:
131
- - - ">="
132
- - !ruby/object:Gem::Version
133
- hash: 3
134
- segments:
135
- - 0
136
- version: "0"
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
137
181
  requirements: []
138
-
139
182
  rubyforge_project:
140
- rubygems_version: 1.3.7
183
+ rubygems_version: 1.6.2
141
184
  signing_key:
142
185
  specification_version: 3
143
- summary: A blog extension for Comfortable Mexican Sofa
186
+ summary: SofaBlog is a blog engine for Rails 3.1 apps (and ComfortableMexicanSofa)
144
187
  test_files: []
145
-
data/.DS_Store DELETED
Binary file
data/app/.DS_Store DELETED
Binary file
@@ -1,66 +0,0 @@
1
- class CmsAdmin::BlogCommentsController < CmsAdmin::BaseController
2
- before_filter :load_blog_post
3
- before_filter :build_blog_comment, :only => [:new, :create]
4
- before_filter :load_blog_comment, :only => [:show, :edit, :update, :destroy, :approve, :disapprove]
5
-
6
- def index
7
- @blog_comments = BlogComment.order('created_at DESC')
8
- end
9
-
10
- def show
11
- # ...
12
- end
13
-
14
- def new
15
- # ...
16
- end
17
-
18
- def create
19
- @blog_comment.save!
20
- flash[:notice] = 'Comment created'
21
- redirect_to :action => :edit, :id => @blog_post
22
- rescue ActiveRecord::RecordInvalid
23
- render :action => :new
24
- end
25
-
26
- def edit
27
- # ...
28
- end
29
-
30
- def update
31
- if @blog_comment.update_attributes(params[:blog_comment])
32
- flash[:notice] = 'Comment updated'
33
- redirect_to :action => :index, :id => @blog_comment
34
- else
35
- render :action => :edit
36
- end
37
- end
38
-
39
- def destroy
40
- @blog_comment.destroy
41
-
42
- flash[:notice] = 'Comment removed'
43
- redirect_to :action => :index
44
- end
45
-
46
- def approve
47
- @blog_comment.approve!
48
- end
49
-
50
- def disapprove
51
- @blog_comment.disapprove!
52
- end
53
-
54
- protected
55
- def load_blog_post
56
- @blog_post = BlogPost.find(params[:blog_post_id])
57
- end
58
-
59
- def load_blog_comment
60
- @blog_comment = BlogComment.find(params[:id])
61
- end
62
-
63
- def build_blog_comment
64
- @blog_comment = @blog_post.blog_comments.build(params[:blog_comment])
65
- end
66
- end
@@ -1,48 +0,0 @@
1
- class CmsAdmin::BlogPostsController < CmsAdmin::BaseController
2
- before_filter :build_blog_post, :only => [:new, :create]
3
- before_filter :load_blog_post, :only => [:edit, :update, :destroy]
4
-
5
- def index
6
- @blog_posts = BlogPost.order('created_at DESC')
7
- end
8
-
9
- def new
10
- @blog_post.published ||= true
11
- end
12
-
13
- def create
14
- @blog_post.save!
15
- flash[:notice] = 'Blog post created'
16
- redirect_to :action => :edit, :id => @blog_post
17
- rescue ActiveRecord::RecordInvalid
18
- render :action => :new
19
- end
20
-
21
- def edit
22
- # ...
23
- end
24
-
25
- def update
26
- @blog_post.update_attributes!(params[:blog_post])
27
- flash[:notice] = 'Post updated'
28
- redirect_to :action => :edit, :id => @blog_post
29
- rescue ActiveRecord::RecordInvalid
30
- render :action => :edit
31
- end
32
-
33
- def destroy
34
- @blog_post.destroy
35
-
36
- flash[:notice] = 'Post removed'
37
- redirect_to :action => :index
38
- end
39
-
40
- protected
41
- def build_blog_post
42
- @blog_post = BlogPost.new(params[:blog_post])
43
- end
44
-
45
- def load_blog_post
46
- @blog_post = BlogPost.find_by_id(params[:id].to_i)
47
- end
48
- end