Merged in Joe's and Steven's forks and updated for compatibility with < 0.9.9. Also, specs now work by including the factories and I have also laid the foundation for cucumber features. Fixed an issue where the javascript file was clashing with the same code we merged to core from this engine relating to submenus. Regenerated gemspec.

This commit is contained in:
Philip Arndt 2010-11-22 15:23:25 +13:00
commit e5b9af1054
22 changed files with 152 additions and 78 deletions

View file

@ -60,11 +60,16 @@ class BlogComment < ActiveRecord::Base
end end
def toggle! def toggle!
RefinerySetting[:comment_moderation] = { new_value = {
:value => !self.enabled?, :value => !BlogComment::Moderation.enabled?,
:scoping => :blog, :scoping => :blog,
:restricted => false :restricted => false
} }
if RefinerySetting.respond_to?(:set)
RefinerySetting.set(:comment_moderation, new_value)
else
RefinerySetting[:comment_moderation] = new_value
end
end end
end end
end end
@ -80,11 +85,16 @@ class BlogComment < ActiveRecord::Base
end end
def recipients=(emails) def recipients=(emails)
RefinerySetting[:comment_notification_recipients] = { new_value = {
:value => emails, :value => emails,
:scoping => :blog, :scoping => :blog,
:restricted => false :restricted => false
} }
if RefinerySetting.respond_to?(:set)
RefinerySetting.set(:comment_notification_recipients, new_value)
else
RefinerySetting[:comment_notification_recipients] = new_value
end
end end
def subject def subject
@ -95,11 +105,16 @@ class BlogComment < ActiveRecord::Base
end end
def subject=(subject_line) def subject=(subject_line)
RefinerySetting[:comment_notification_subject] = { new_value = {
:value => subject_line, :value => subject_line,
:scoping => :blog, :scoping => :blog,
:restricted => false :restricted => false
} }
if RefinerySetting.respond_to?(:set)
RefinerySetting.set(:comment_notification_subject, new_value)
else
RefinerySetting[:comment_notification_subject] = new_value
end
end end
end end
end end

View file

@ -78,9 +78,12 @@
</ul> </ul>
</nav> </nav>
<% content_for :stylesheets do -%> <% if Refinery.version < '0.9.9' %>
<%= stylesheet_link_tag 'refinery/refinerycms-blog' %> <% content_for :head do %>
<% end -%> <%= stylesheet_link_tag('refinery/refinerycms-blog') %>
<% content_for :javascripts do -%> <%# this javascript is not even required in >= 0.9.9 because we made this sort of menu core. %>
<%= javascript_include_tag 'refinery/refinerycms-blog' %> <%= javascript_link_tag('refinery/refinerycms-blog') %>
<% end -%> <% end %>
<% else %>
<% content_for :stylesheets, stylesheet_link_tag('refinery/refinerycms-blog')%>
<% end %>

View file

@ -59,5 +59,8 @@
</tr> </tr>
</table> </table>
</div> </div>
<% if Refinery.version < '0.9.9' %>
<% content_for :stylesheets, stylesheet_link_tag('refinery/refinerycms-blog') %> <% content_for :head, stylesheet_link_tag('refinery/refinerycms-blog') %>
<% else %>
<% content_for :stylesheets, stylesheet_link_tag('refinery/refinerycms-blog') %>
<% end %>

View file

@ -0,0 +1,7 @@
<style type='text/css'>
ul.blog_categories, ul.blog_categories li {
list-style: none;
margin: 0px;
padding: 0px;
}
</style>

View file

@ -57,27 +57,13 @@
:delete_title => t('admin.blog.posts.post.delete') :delete_title => t('admin.blog.posts.post.delete')
} %> } %>
<% end -%> <% end -%>
<% content_for :stylesheets do -%>
<style type='text/css'>
ul.blog_categories, ul.blog_categories li {
list-style: none;
margin: 0px;
padding: 0px;
}
</style>
<% end -%>
<% content_for :after_javascript_libraries do %>
<script type='text/javascript'>
$(document).ready(function(){
$('#toggle_advanced_options').click(function(e){
e.preventDefault();
$('#more_options').animate({opacity: 'toggle', height: 'toggle'}, 250); <% if Refinery.version < '0.9.9' %>
<% content_for :head do %>
$('html,body').animate({ <%= render :partial => 'form.css' %>
scrollTop: $('#toggle_advanced_options').parent().offset().top <%= render :partial => 'form.js' %>
}, 250); <% end %>
}); <% else %>
}); <% content_for :stylesheets, render(:partial => 'form.css') -%>
</script> <% content_for :javascripts, render(:partial => 'form.js') -%>
<% end %> <% end %>

View file

@ -0,0 +1,13 @@
<script>
$(document).ready(function(){
$('#toggle_advanced_options').click(function(e){
e.preventDefault();
$('#more_options').animate({opacity: 'toggle', height: 'toggle'}, 250);
$('html,body').animate({
scrollTop: $('#toggle_advanced_options').parent().offset().top
}, 250);
});
});
</script>

View file

@ -1,17 +1,8 @@
<% content_for :after_javascript_libraries do %>
<% if BlogPost::ShareThis.enabled? %>
<script src="http://w.sharethis.com/button/buttons.js"></script>
<script>
stLight.options({publisher:'<%= BlogPost::ShareThis.key %>'});
</script>
<% end %>
<% end %>
<% content_for :body_content_left do %> <% content_for :body_content_left do %>
<div id="show_blog_post"> <div id="show_blog_post">
<%= render 'post' %> <%= render 'post' %>
</div> </div>
<% if BlogPost.comments_allowed? %> <% if BlogPost.comments_allowed? %>
<aside id="comments"> <aside id="comments">
<h2><%= t('.comments.title') %></h2> <h2><%= t('.comments.title') %></h2>
@ -73,5 +64,22 @@
<% end %> <% end %>
<%= render :partial => "/shared/content_page", :locals => { :remove_automatic_sections => true } %> <%= render :partial => "/shared/content_page", :locals => { :remove_automatic_sections => true } %>
<% content_for :stylesheets, stylesheet_link_tag('refinerycms-blog') %>
<% content_for :javascripts, javascript_include_tag('jquery','refinerycms-blog') %> <% if Refinery.version < '0.9.9' %>
<% content_for :head_libraries, jquery_include_tags(:jquery_ui => false) %>
<% content_for :head do %>
<%= stylesheet_link_tag 'refinerycms-blog' %>
<%= javascript_include_tag('refinerycms-blog') %>
<% if BlogPost::ShareThis.enabled? %>
<script src="http://w.sharethis.com/button/buttons.js"></script>
<script>stLight.options({publisher:'<%= BlogPost::ShareThis.key %>'});</script>
<% end %>
<% else %>
<% content_for :stylesheets, stylesheet_link_tag('refinerycms-blog') %>
<% content_for :before_javascript_libraries, jquery_include_tags(:jquery_ui => false) %>
<% content_for :javascripts do %>
<%= javascript_include_tag 'refinerycms-blog' %>
<script src="http://w.sharethis.com/button/buttons.js"></script>
<script>stLight.options({publisher:'<%= BlogPost::ShareThis.key %>'});</script>
<% end if BlogPost::ShareThis.enabled? %>
<% end %>

View file

@ -1,4 +1,4 @@
Factory.define(:blog_category) do |f| Factory.define(:blog_category) do |f|
f.title "Shopping" f.title "Shopping"
f.posts {|p| [p.association :post]} f.posts {|p| [p.association(:post)]}
end end

24
features/support/paths.rb Normal file
View file

@ -0,0 +1,24 @@
module NavigationHelpers
module Refinery
module Blog
def path_to(page_name)
case page_name
when /the list of blog posts/
admin_blog_posts_path
when /the new blog posts? form/
new_admin_blog_post_path
else
begin
if page_name =~ /the blog post titled "?([^\"]*)"?/ and (page = BlogPost.find_by_title($1)).present?
self.url_for(page.url)
else
nil
end
rescue
nil
end
end
end
end
end
end

View file

@ -1,4 +1,4 @@
class RefineryBlogGenerator < Rails::Generator::NamedBase class RefinerycmsBlogGenerator < Rails::Generator::NamedBase
def initialize(*runtime_args) def initialize(*runtime_args)
# set argument for the user. # set argument for the user.
@ -7,7 +7,7 @@ class RefineryBlogGenerator < Rails::Generator::NamedBase
end end
def banner def banner
'Usage: script/generate refinery_blog' 'Usage: script/generate refinerycms_blog'
end end
def manifest def manifest
@ -24,7 +24,7 @@ class RefineryBlogGenerator < Rails::Generator::NamedBase
path = (%w(public) | image.split('public/').last.split('/'))[0...-1].join('/') path = (%w(public) | image.split('public/').last.split('/'))[0...-1].join('/')
m.template "../../../#{path}/#{image.split('/').last}", "#{path}/#{image.split('/').last}" m.template "../../../#{path}/#{image.split('/').last}", "#{path}/#{image.split('/').last}"
end end
m.directory('db/seeds') m.directory('db/seeds')
m.template('db/seeds/seed.rb', 'db/seeds/refinerycms_blog.rb') m.template('db/seeds/seed.rb', 'db/seeds/refinerycms_blog.rb')

View file

@ -1,9 +1,9 @@
require 'rails/generators/migration' require 'rails/generators/migration'
class RefineryBlogGenerator < Rails::Generators::NamedBase class RefinerycmsBlogGenerator < Rails::Generators::NamedBase
include Rails::Generators::Migration include Rails::Generators::Migration
source_root File.expand_path('../refinery_blog/templates/', __FILE__) source_root File.expand_path('../refinerycms_blog/templates/', __FILE__)
argument :name, :type => :string, :default => 'blog_structure', :banner => '' argument :name, :type => :string, :default => 'blog_structure', :banner => ''
def generate def generate

View file

@ -11,13 +11,17 @@ Options:
Open up your ``Gemfile`` and add at the bottom this line Open up your ``Gemfile`` and add at the bottom this line
gem 'refinerycms-blog', '~> 1.0.rc16' gem 'refinerycms-blog', '= 1.0.rc16'
Now run ``bundle install`` Now run ``bundle install``
Next to install the blog plugin run: Next to install the blog plugin run (for Rails 2):
ruby script/generate refinery_blog ruby script/generate refinerycms_blog
Or, for Rails 3:
rails generate refinerycms_blog
Finally migrate your database and you're done. Finally migrate your database and you're done.

View file

@ -2,7 +2,7 @@ Gem::Specification.new do |s|
s.name = %q{refinerycms-blog} s.name = %q{refinerycms-blog}
s.version = %q{1.0.rc16} s.version = %q{1.0.rc16}
s.description = %q{A really straightforward open source Ruby on Rails blog engine designed for integration with RefineryCMS.} s.description = %q{A really straightforward open source Ruby on Rails blog engine designed for integration with RefineryCMS.}
s.date = %q{2010-11-15} s.date = %q{2010-11-22}
s.summary = %q{Ruby on Rails blogging engine for RefineryCMS.} s.summary = %q{Ruby on Rails blogging engine for RefineryCMS.}
s.email = %q{info@refinerycms.com} s.email = %q{info@refinerycms.com}
s.homepage = %q{http://refinerycms.com} s.homepage = %q{http://refinerycms.com}
@ -24,6 +24,8 @@ Gem::Specification.new do |s|
app/controllers/blog/categories_controller.rb app/controllers/blog/categories_controller.rb
app/controllers/blog/posts_controller.rb app/controllers/blog/posts_controller.rb
app/controllers/blog_controller.rb app/controllers/blog_controller.rb
app/helpers
app/helpers/blog_posts_helper.rb
app/mailers app/mailers
app/mailers/blog app/mailers/blog
app/mailers/blog/comment_mailer.rb app/mailers/blog/comment_mailer.rb
@ -50,7 +52,9 @@ Gem::Specification.new do |s|
app/views/admin/blog/comments/index.html.erb app/views/admin/blog/comments/index.html.erb
app/views/admin/blog/comments/show.html.erb app/views/admin/blog/comments/show.html.erb
app/views/admin/blog/posts app/views/admin/blog/posts
app/views/admin/blog/posts/_form.css.erb
app/views/admin/blog/posts/_form.html.erb app/views/admin/blog/posts/_form.html.erb
app/views/admin/blog/posts/_form.js.erb
app/views/admin/blog/posts/_post.html.erb app/views/admin/blog/posts/_post.html.erb
app/views/admin/blog/posts/_sortable_list.html.erb app/views/admin/blog/posts/_sortable_list.html.erb
app/views/admin/blog/posts/edit.html.erb app/views/admin/blog/posts/edit.html.erb
@ -65,6 +69,9 @@ Gem::Specification.new do |s|
app/views/blog/comment_mailer/notification.html.erb app/views/blog/comment_mailer/notification.html.erb
app/views/blog/posts app/views/blog/posts
app/views/blog/posts/_comment.html.erb app/views/blog/posts/_comment.html.erb
app/views/blog/posts/_nav.html.erb
app/views/blog/posts/_post.html.erb
app/views/blog/posts/archive.html.erb
app/views/blog/posts/index.html.erb app/views/blog/posts/index.html.erb
app/views/blog/posts/index.rss.builder app/views/blog/posts/index.rss.builder
app/views/blog/posts/show.html.erb app/views/blog/posts/show.html.erb
@ -83,25 +90,25 @@ Gem::Specification.new do |s|
Gemfile Gemfile
Gemfile.lock Gemfile.lock
generators generators
generators/refinery_blog generators/refinerycms_blog
generators/refinery_blog/refinery_blog_generator.rb generators/refinerycms_blog/refinerycms_blog_generator.rb
generators/refinery_blog/templates generators/refinerycms_blog/templates
generators/refinery_blog/templates/db generators/refinerycms_blog/templates/db
generators/refinery_blog/templates/db/migrate generators/refinerycms_blog/templates/db/migrate
generators/refinery_blog/templates/db/migrate/migration.rb generators/refinerycms_blog/templates/db/migrate/migration.rb
generators/refinery_blog/templates/db/seeds generators/refinerycms_blog/templates/db/seeds
generators/refinery_blog/templates/db/seeds/seed.rb generators/refinerycms_blog/templates/db/seeds/seed.rb
lib lib
lib/gemspec.rb lib/gemspec.rb
lib/generators lib/generators
lib/generators/refinery_blog lib/generators/refinerycms_blog
lib/generators/refinery_blog/templates lib/generators/refinerycms_blog/templates
lib/generators/refinery_blog/templates/db lib/generators/refinerycms_blog/templates/db
lib/generators/refinery_blog/templates/db/migrate lib/generators/refinerycms_blog/templates/db/migrate
lib/generators/refinery_blog/templates/db/migrate/migration_number_create_singular_name.rb lib/generators/refinerycms_blog/templates/db/migrate/migration_number_create_singular_name.rb
lib/generators/refinery_blog/templates/db/seeds lib/generators/refinerycms_blog/templates/db/seeds
lib/generators/refinery_blog/templates/db/seeds/seed.rb lib/generators/refinerycms_blog/templates/db/seeds/seed.rb
lib/generators/refinery_blog_generator.rb lib/generators/refinerycms_blog_generator.rb
lib/refinerycms-blog.rb lib/refinerycms-blog.rb
public public
public/images public/images
@ -124,6 +131,7 @@ Gem::Specification.new do |s|
public/javascripts public/javascripts
public/javascripts/refinery public/javascripts/refinery
public/javascripts/refinery/refinerycms-blog.js public/javascripts/refinery/refinerycms-blog.js
public/javascripts/refinerycms-blog.js
public/stylesheets public/stylesheets
public/stylesheets/refinery public/stylesheets/refinery
public/stylesheets/refinery/refinerycms-blog.css public/stylesheets/refinery/refinerycms-blog.css

View file

@ -1,20 +1,21 @@
require 'spec_helper' require 'spec_helper'
Dir[File.expand_path('../../../features/support/factories/*.rb', __FILE__)].each{|factory| require factory}
describe BlogCategory do describe BlogCategory do
context "wiring up" do context "wiring up" do
before(:each) do before(:each) do
@category = Factory(:blog_category) @category = Factory(:blog_category)
end end
it "saves" do it "saves" do
@category.should_not be_nil @category.should_not be_nil
end end
it "has a blog post" do it "has a blog post" do
BlogPost.last.categories.should include(@category) BlogPost.last.categories.should include(@category)
end end
end end
end end

View file

@ -1,4 +1,5 @@
require 'spec_helper' require 'spec_helper'
Dir[File.expand_path('../../../features/support/factories/*.rb', __FILE__)].each{|factory| require factory}
describe BlogComment do describe BlogComment do

View file

@ -1,4 +1,5 @@
require 'spec_helper' require 'spec_helper'
Dir[File.expand_path('../../../features/support/factories/*.rb', __FILE__)].each{|factory| require factory}
describe BlogPost do describe BlogPost do
context "wiring up" do context "wiring up" do