wheelhouse-blog 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/app/handlers/blog/blog_handler.rb +7 -5
- data/app/helpers/blog/blog_helper.rb +0 -4
- data/app/helpers/blog/pagination_helper.rb +6 -3
- data/app/helpers/blog/post_helper.rb +17 -0
- data/app/models/blog/blog.rb +2 -0
- data/app/models/blog/post.rb +1 -0
- data/app/templates/blog/_post.html.haml +1 -1
- data/app/views/blog/blogs/_posts.haml +0 -3
- data/app/views/blog/blogs/form.haml +3 -1
- data/app/views/blog/posts/form.haml +2 -2
- data/lib/blog/wheelhouse_route_constraints.rb +10 -0
- data/lib/wheelhouse-blog.rb +9 -2
- metadata +19 -26
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f0cfc6b5046f139c9cddb6c9fcf1400d13d5c776
|
4
|
+
data.tar.gz: 8352caac4c126120878fb06ed8600f8ab1e89140
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b2720ecaf821bbd4ad77d56c53d60a024718699a529588b868ac9f31853f5f11b437058dbac33f418676cfd39035fa0f848d6bb30bd51a1472fbd068b3e84dd4
|
7
|
+
data.tar.gz: 20807ca9f2c5f41cb2d86072de2e925a154d298d25fda7ab48713119e9c5316c2f883f840def35d6ab509452a8dd84dadd4c83837772ee1db2ce5ce938722122
|
@@ -1,5 +1,7 @@
|
|
1
1
|
class Blog::BlogHandler < Wheelhouse::ResourceHandler
|
2
|
-
|
2
|
+
extend Blog::WheelhouseRouteConstraints
|
3
|
+
|
4
|
+
get "/(page/:page)", :cache => true, :page => /\d+/ do
|
3
5
|
@posts = paginate(@blog.posts)
|
4
6
|
end
|
5
7
|
|
@@ -7,17 +9,17 @@ class Blog::BlogHandler < Wheelhouse::ResourceHandler
|
|
7
9
|
render :template => "feed", :formats => [:rss], :layout => false
|
8
10
|
end
|
9
11
|
|
10
|
-
get '/tag/:tag(/page/:page)', :cache => true do
|
12
|
+
get '/tag/:tag(/page/:page)', :cache => true, :page => /\d+/ do
|
11
13
|
@posts = paginate(@blog.posts.tagged_with(params[:tag]))
|
12
14
|
render :template => "tag"
|
13
15
|
end
|
14
16
|
|
15
|
-
get '/category/:category(/page/:page)', :cache => true do
|
17
|
+
get '/category/:category(/page/:page)', :cache => true, :page => /\d+/ do
|
16
18
|
@posts = paginate(@blog.posts.in_category(params[:category]))
|
17
19
|
render :template => "category"
|
18
20
|
end
|
19
21
|
|
20
|
-
get "/:year(/:month)(/page/:page)", :cache => true do
|
22
|
+
get "/:year(/:month)(/page/:page)", :cache => true, :year => /\d{4}/, :month => /\d\d?/, :page => /\d+/ do
|
21
23
|
@archive = Blog::Archive.new(@blog, params[:year], params[:month].presence)
|
22
24
|
raise ActionController::RoutingError, "No route matches #{request.path.inspect}" if @archive.invalid?
|
23
25
|
|
@@ -25,7 +27,7 @@ class Blog::BlogHandler < Wheelhouse::ResourceHandler
|
|
25
27
|
render :template => "archive"
|
26
28
|
end
|
27
29
|
|
28
|
-
get "/:year/:month/:permalink", :cache => true do
|
30
|
+
get "/:year/:month/:permalink", :cache => true, :year => /\d{4}/, :month => /\d\d?/ do
|
29
31
|
@post = @blog.find_post(params[:year], params[:month], params[:permalink])
|
30
32
|
render @post
|
31
33
|
end
|
@@ -9,13 +9,16 @@ module Blog::PaginationHelper
|
|
9
9
|
path = @template.request.path
|
10
10
|
|
11
11
|
if page == 1
|
12
|
-
path.sub(PAGE_PARAMETER, "")
|
12
|
+
path = path.sub(PAGE_PARAMETER, "")
|
13
13
|
elsif path =~ PAGE_PARAMETER
|
14
|
-
path.sub(PAGE_PARAMETER, "/page/#{page}")
|
14
|
+
path = path.sub(PAGE_PARAMETER, "/page/#{page}")
|
15
15
|
else
|
16
|
-
path
|
16
|
+
path += "/page/#{page}"
|
17
17
|
end
|
18
|
+
|
19
|
+
Wheelhouse::PathUtils.normalize_path(path)
|
18
20
|
end
|
21
|
+
|
19
22
|
alias url_for url
|
20
23
|
end
|
21
24
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Blog::PostHelper
|
2
|
+
def current_post?(post)
|
3
|
+
request.path == post.path
|
4
|
+
end
|
5
|
+
|
6
|
+
def blog_post_tag_links(post, separator=", ")
|
7
|
+
safe_join(post.tags.map { |tag|
|
8
|
+
link_to(tag, post.blog.tag_path(tag), :title => "View all posts tagged #{tag}")
|
9
|
+
}, separator)
|
10
|
+
end
|
11
|
+
|
12
|
+
def blog_post_category_links(post, separator=", ")
|
13
|
+
safe_join(post.categories.map { |category|
|
14
|
+
link_to(category, post.blog.category_path(category), :title => "View all posts in category #{category}")
|
15
|
+
}, separator)
|
16
|
+
end
|
17
|
+
end
|
data/app/models/blog/blog.rb
CHANGED
@@ -10,6 +10,8 @@ class Blog::Blog < Wheelhouse::Resource
|
|
10
10
|
has_many :posts_for_admin, :class => "Blog::Post", :order => [:_admin_sort_index.desc, :created_at.desc],
|
11
11
|
:select => [:id, :type, :title, :state, :published_at, :created_by_id, :author_name, :blog_id]
|
12
12
|
|
13
|
+
scope :sections_for_site, lambda { |site| where(:site_id => site.id).order(:created_at.asc).select(:id, :label) }
|
14
|
+
|
13
15
|
activities :all
|
14
16
|
|
15
17
|
icon "wheelhouse-blog/blog.png"
|
data/app/models/blog/post.rb
CHANGED
@@ -27,6 +27,7 @@ class Blog::Post < Wheelhouse::Resource
|
|
27
27
|
|
28
28
|
validates_uniqueness_of :permalink, :scope => :blog_id
|
29
29
|
|
30
|
+
scope :published, where(:state => 'Published').order(:published_at.desc)
|
30
31
|
scope :tagged_with, lambda { |tag| where(:_tags => tag.parameterize) }
|
31
32
|
scope :in_category, lambda { |category| where(:_categories => category.parameterize) }
|
32
33
|
|
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
= sidebar_expander "Tags & Categories" do
|
21
21
|
= field :categories do
|
22
|
-
= form.checkboxes :categories, @blog.categories, :editable => true, :placeholder => "Add a category..."
|
22
|
+
= form.checkboxes :categories, @blog.categories.map(&:name), :editable => true, :placeholder => "Add a category..."
|
23
23
|
|
24
24
|
= field :tags do
|
25
|
-
= form.tags :tags, @blog.tags, :placeholder => "Add a tag..."
|
25
|
+
= form.tags :tags, @blog.tags.map(&:name), :placeholder => "Add a tag..."
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module Blog
|
2
|
+
module WheelhouseRouteConstraints
|
3
|
+
# Fixes handler route definitions in Wheelhouse 1.0 (fixed in 1.1) to allow
|
4
|
+
# route constraints to be set (e.g. match route segments to a regex).
|
5
|
+
def define_action(path, action_name, method, options={}, &block)
|
6
|
+
define_method(action_name, &block)
|
7
|
+
_mapper.match(path, { :via => method, :to => action(action_name) }.merge(options))
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
data/lib/wheelhouse-blog.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require "wheelhouse"
|
2
2
|
require "will_paginate"
|
3
3
|
|
4
|
+
require "blog/wheelhouse_route_constraints"
|
5
|
+
|
4
6
|
module Blog
|
5
7
|
class Plugin < Wheelhouse::Plugin
|
6
8
|
config.wheelhouse.blog = ActiveSupport::OrderedOptions.new
|
@@ -13,7 +15,7 @@ module Blog
|
|
13
15
|
isolate_namespace Blog
|
14
16
|
|
15
17
|
resources do
|
16
|
-
::Blog::Blog.
|
18
|
+
::Blog::Blog.sections_for_site(site).map do |b|
|
17
19
|
Resource(::Blog::Post, :sublabel => b.label, :url => blog.new_blog_post_path(b))
|
18
20
|
end
|
19
21
|
end
|
@@ -21,9 +23,14 @@ module Blog
|
|
21
23
|
resource { Resource(::Blog::Blog) }
|
22
24
|
|
23
25
|
sections do
|
24
|
-
::Blog::Blog.
|
26
|
+
::Blog::Blog.sections_for_site(site).map do |blog|
|
25
27
|
Section(blog.label, blog)
|
26
28
|
end if ::Blog::Plugin.config.wheelhouse.blog.sections
|
27
29
|
end
|
28
30
|
end
|
31
|
+
|
32
|
+
def self.all_posts_for(site)
|
33
|
+
blog_ids = ::Blog::Blog.where(:site_id => site.id).select(:id).map(&:id)
|
34
|
+
::Blog::Post.where(:blog_id.in => blog_ids).published
|
35
|
+
end
|
29
36
|
end
|
metadata
CHANGED
@@ -1,62 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wheelhouse-blog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Sam Pohlenz
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-03-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: wheelhouse
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.0.
|
19
|
+
version: 1.0.14
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.0.
|
26
|
+
version: 1.0.14
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: mongomodel
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: 0.4.6
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: 0.4.6
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: will_paginate
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
description: Integrates blogs into your Wheelhouse CMS site.
|
@@ -65,6 +58,8 @@ executables: []
|
|
65
58
|
extensions: []
|
66
59
|
extra_rdoc_files: []
|
67
60
|
files:
|
61
|
+
- LICENSE
|
62
|
+
- README.md
|
68
63
|
- app/assets/images/wheelhouse-blog/blog.png
|
69
64
|
- app/assets/images/wheelhouse-blog/post.png
|
70
65
|
- app/assets/stylesheets/wheelhouse-blog/admin.css.sass
|
@@ -74,6 +69,7 @@ files:
|
|
74
69
|
- app/handlers/blog/post_handler.rb
|
75
70
|
- app/helpers/blog/blog_helper.rb
|
76
71
|
- app/helpers/blog/pagination_helper.rb
|
72
|
+
- app/helpers/blog/post_helper.rb
|
77
73
|
- app/models/blog/archive.rb
|
78
74
|
- app/models/blog/blog.rb
|
79
75
|
- app/models/blog/category.rb
|
@@ -93,32 +89,29 @@ files:
|
|
93
89
|
- app/views/blog/posts/form.haml
|
94
90
|
- config/locales/en.yml
|
95
91
|
- config/routes.rb
|
92
|
+
- lib/blog/wheelhouse_route_constraints.rb
|
96
93
|
- lib/wheelhouse-blog.rb
|
97
|
-
- README.md
|
98
|
-
- LICENSE
|
99
94
|
homepage: https://www.wheelhousecms.com
|
100
95
|
licenses: []
|
96
|
+
metadata: {}
|
101
97
|
post_install_message:
|
102
98
|
rdoc_options: []
|
103
99
|
require_paths:
|
104
100
|
- lib
|
105
101
|
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
102
|
requirements:
|
108
|
-
- -
|
103
|
+
- - ">="
|
109
104
|
- !ruby/object:Gem::Version
|
110
105
|
version: 1.8.7
|
111
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
-
none: false
|
113
107
|
requirements:
|
114
|
-
- -
|
108
|
+
- - ">="
|
115
109
|
- !ruby/object:Gem::Version
|
116
110
|
version: 1.3.6
|
117
111
|
requirements: []
|
118
112
|
rubyforge_project:
|
119
|
-
rubygems_version:
|
113
|
+
rubygems_version: 2.2.2
|
120
114
|
signing_key:
|
121
|
-
specification_version:
|
115
|
+
specification_version: 4
|
122
116
|
summary: Wheelhouse CMS Blog Plugin
|
123
117
|
test_files: []
|
124
|
-
has_rdoc:
|