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.
- data/Gemfile +8 -1
- data/Gemfile.lock +83 -65
- data/LICENSE +1 -1
- data/README.md +27 -23
- data/Rakefile +8 -7
- data/VERSION +1 -1
- data/app/assets/images/rails.png +0 -0
- data/app/assets/javascripts/sofa_blog/application.js +7 -0
- data/app/assets/javascripts/sofa_blog/posts.js +2 -0
- data/app/assets/stylesheets/sofa_blog/admin.css +57 -0
- data/app/assets/stylesheets/sofa_blog/application.css +73 -0
- data/app/assets/stylesheets/sofa_blog/reset.css +1 -0
- data/app/controllers/application_controller.rb +5 -0
- data/app/controllers/sofa_blog/admin/base_controller.rb +3 -0
- data/app/controllers/sofa_blog/admin/comments_controller.rb +74 -0
- data/app/controllers/sofa_blog/admin/posts_controller.rb +55 -0
- data/app/controllers/sofa_blog/posts_controller.rb +13 -0
- data/app/helpers/sofa_blog/posts_helper.rb +2 -0
- data/app/helpers/sofa_blog_helper.rb +12 -0
- data/app/models/.gitkeep +0 -0
- data/app/models/sofa_blog/comment.rb +53 -0
- data/app/models/{blog_post.rb → sofa_blog/post.rb} +25 -25
- data/app/models/{blog_tag.rb → sofa_blog/tag.rb} +11 -10
- data/app/models/sofa_blog/tagging.rb +9 -0
- data/app/views/layouts/application.html.erb +17 -0
- data/app/views/sofa_blog/admin/_html_head.html.erb +1 -0
- data/app/views/sofa_blog/admin/_navigation.html.erb +1 -0
- data/app/views/sofa_blog/admin/comments/_comment.html.erb +21 -0
- data/app/views/sofa_blog/admin/comments/_form.html.erb +27 -0
- data/app/views/sofa_blog/admin/comments/_status.html.erb +7 -0
- data/app/views/sofa_blog/admin/comments/approve.js.erb +1 -0
- data/app/views/sofa_blog/admin/comments/disapprove.js.erb +1 -0
- data/app/views/sofa_blog/admin/comments/edit.html.erb +6 -0
- data/app/views/sofa_blog/admin/comments/index.html.erb +7 -0
- data/app/views/sofa_blog/admin/comments/new.html.erb +14 -0
- data/app/views/sofa_blog/admin/posts/_form.html.erb +35 -0
- data/app/views/sofa_blog/admin/posts/_post.html.erb +21 -0
- data/app/views/sofa_blog/admin/posts/edit.html.erb +5 -0
- data/app/views/sofa_blog/admin/posts/index.html.erb +7 -0
- data/app/views/sofa_blog/admin/posts/new.html.erb +5 -0
- data/app/views/sofa_blog/posts/_post.html.erb +21 -0
- data/app/views/sofa_blog/posts/index.html.erb +5 -0
- data/config/application.rb +48 -0
- data/config/boot.rb +6 -0
- data/config/database.yml +25 -0
- data/{tmp → config}/environment.rb +0 -1
- data/config/environments/development.rb +33 -0
- data/config/environments/production.rb +51 -0
- data/config/environments/test.rb +42 -0
- data/config/initializers/secret_token.rb +3 -0
- data/config/initializers/sofa_blog.rb +12 -0
- data/config/initializers/wrap_parameters.rb +14 -0
- data/config/locales/en.yml +5 -0
- data/config/routes.rb +14 -9
- data/config.ru +4 -0
- data/db/migrate/01_create_sofa_blog.rb +29 -28
- data/db/schema.rb +59 -0
- data/db/seeds.rb +7 -0
- data/lib/sofa_blog/configuration.rb +21 -0
- data/lib/sofa_blog/engine.rb +13 -10
- data/lib/sofa_blog/form_builder.rb +50 -0
- data/lib/sofa_blog.rb +21 -2
- data/script/rails +6 -0
- data/sofa_blog.gemspec +89 -47
- data/test/fixtures/.gitkeep +0 -0
- data/test/fixtures/sofa_blog/comments.yml +6 -0
- data/test/fixtures/sofa_blog/posts.yml +7 -0
- data/test/functional/.gitkeep +0 -0
- data/test/functional/sofa_blog/admin/comments_controller_test.rb +59 -0
- data/test/functional/sofa_blog/admin/posts_controller_test.rb +76 -0
- data/test/functional/sofa_blog/posts_controller_test.rb +7 -0
- data/test/test_helper.rb +37 -0
- data/test/unit/.gitkeep +0 -0
- data/test/unit/comment_test.rb +55 -0
- data/test/unit/helpers/sofa_blog/posts_helper_test.rb +4 -0
- data/test/unit/post_test.rb +44 -0
- data/test/unit/tag_test.rb +7 -0
- data/test/unit/tagging_test.rb +7 -0
- metadata +145 -103
- data/.DS_Store +0 -0
- data/app/.DS_Store +0 -0
- data/app/controllers/cms_admin/blog_comments_controller.rb +0 -66
- data/app/controllers/cms_admin/blog_posts_controller.rb +0 -48
- data/app/models/blog_comment.rb +0 -45
- data/app/models/blog_tagging.rb +0 -8
- data/app/views/.DS_Store +0 -0
- data/app/views/cms_admin/blog_comments/_blog_comment.html.erb +0 -22
- data/app/views/cms_admin/blog_comments/_form.html.erb +0 -24
- data/app/views/cms_admin/blog_comments/_status.html.erb +0 -7
- data/app/views/cms_admin/blog_comments/approve.rjs +0 -1
- data/app/views/cms_admin/blog_comments/disapprove.rjs +0 -1
- data/app/views/cms_admin/blog_comments/edit.html.erb +0 -7
- data/app/views/cms_admin/blog_comments/index.html.erb +0 -7
- data/app/views/cms_admin/blog_comments/new.html.erb +0 -6
- data/app/views/cms_admin/blog_posts/_blog_post.html.erb +0 -21
- data/app/views/cms_admin/blog_posts/_form.html.erb +0 -33
- data/app/views/cms_admin/blog_posts/edit.html.erb +0 -7
- data/app/views/cms_admin/blog_posts/index.html.erb +0 -8
- data/app/views/cms_admin/blog_posts/new.html.erb +0 -5
- data/app/views/sofa_blog/_head.html.erb +0 -1
- data/app/views/sofa_blog/_nav.html.erb +0 -1
- data/config/.DS_Store +0 -0
- data/doc/sofa.png +0 -0
- data/lib/generators/README +0 -12
- data/lib/generators/blog_generator.rb +0 -33
- data/public/stylesheets/content.css +0 -53
- data/tmp/application.rb +0 -15
- data/tmp/boot.rb +0 -13
- data/tmp/initializers/formatted_form_builder.rb +0 -141
- data/tmp/initializers/wristband.rb +0 -1
- /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
|
data/test/test_helper.rb
ADDED
@@ -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
|
data/test/unit/.gitkeep
ADDED
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,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
|
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
|
-
|
5
|
-
prerelease:
|
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
|
-
|
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
|
-
|
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: *
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
|
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
|
-
|
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: *
|
54
|
-
|
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
|
72
|
-
- app/
|
73
|
-
- app/
|
74
|
-
- app/
|
75
|
-
- app/
|
76
|
-
- app/
|
77
|
-
- app/
|
78
|
-
- app/
|
79
|
-
- app/
|
80
|
-
- app/
|
81
|
-
- app/
|
82
|
-
- app/
|
83
|
-
- app/
|
84
|
-
- app/
|
85
|
-
- app/
|
86
|
-
- app/
|
87
|
-
- app/
|
88
|
-
- app/
|
89
|
-
- app/
|
90
|
-
- app/views/
|
91
|
-
- app/views/
|
92
|
-
- app/views/sofa_blog/
|
93
|
-
- app/views/sofa_blog/
|
94
|
-
-
|
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
|
-
-
|
98
|
-
-
|
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
|
-
-
|
103
|
-
-
|
141
|
+
- lib/sofa_blog/form_builder.rb
|
142
|
+
- script/rails
|
104
143
|
- sofa_blog.gemspec
|
105
|
-
-
|
106
|
-
-
|
107
|
-
-
|
108
|
-
-
|
109
|
-
-
|
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
|
-
|
125
|
-
segments:
|
168
|
+
requirements:
|
169
|
+
- - ! '>='
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
segments:
|
126
173
|
- 0
|
127
|
-
|
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
|
-
|
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.
|
183
|
+
rubygems_version: 1.6.2
|
141
184
|
signing_key:
|
142
185
|
specification_version: 3
|
143
|
-
summary:
|
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
|