Changeset 1665
- Timestamp:
- 02/27/08 00:10:12 (3 months ago)
- Files:
-
- trunk/app/apis/blogger_service.rb (modified) (2 diffs)
- trunk/app/apis/meta_weblog_service.rb (modified) (3 diffs)
- trunk/app/apis/movable_type_service.rb (modified) (5 diffs)
- trunk/app/controllers/admin/base_controller.rb (modified) (2 diffs)
- trunk/app/controllers/admin/content_controller.rb (modified) (8 diffs)
- trunk/app/controllers/admin/feedback_controller.rb (modified) (1 diff)
- trunk/app/controllers/articles_controller.rb (modified) (2 diffs)
- trunk/app/controllers/comments_controller.rb (modified) (1 diff)
- trunk/app/controllers/xml_controller.rb (modified) (1 diff)
- trunk/app/helpers/application_helper.rb (modified) (1 diff)
- trunk/app/helpers/sidebar_helper.rb (modified) (1 diff)
- trunk/app/models/article.rb (modified) (1 diff)
- trunk/app/models/blog.rb (modified) (2 diffs)
- trunk/app/models/content.rb (modified) (5 diffs)
- trunk/app/models/sidebar.rb (modified) (2 diffs)
- trunk/db/migrate/067_remove_blog_ids.rb (added)
- trunk/spec/controllers/admin/content_controller_spec.rb (modified) (5 diffs)
- trunk/spec/controllers/admin/feedback_controller_spec.rb (modified) (3 diffs)
- trunk/spec/controllers/articles_controller_spec.rb (modified) (1 diff)
- trunk/spec/controllers/backend_controller_spec.rb (modified) (6 diffs)
- trunk/spec/models/article_closing_spec.rb (modified) (1 diff)
- trunk/spec/models/article_spec.rb (modified) (1 diff)
- trunk/spec/models/blog_spec.rb (modified) (1 diff)
- trunk/spec/models/comment_spec.rb (modified) (2 diffs)
- trunk/spec/models/page_spec.rb (modified) (1 diff)
- trunk/spec/models/ping_spec.rb (modified) (1 diff)
- trunk/test/fixtures/contents.yml (modified) (11 diffs)
- trunk/test/fixtures/feedback.yml (modified) (10 diffs)
- trunk/test/fixtures/sidebars.yml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/app/apis/blogger_service.rb
r1242 r1665 44 44 45 45 def deletePost(appkey, postid, username, password, publish) 46 article = this_blog.articles.find(postid) 47 article.destroy 46 Article.destroy(postid) 48 47 true 49 48 end … … 71 70 title, categories, body = content.match(%r{^<title>(.+?)</title>(?:<category>(.+?)</category>)?(.+)$}mi).captures rescue nil 72 71 73 article = this_blog.articles.build72 article = Article.new 74 73 article.body = body || content || '' 75 74 article.title = title || content.split.slice(0..5).join(' ') || '' trunk/app/apis/meta_weblog_service.rb
r1494 r1665 73 73 74 74 def getPost(postid, username, password) 75 article = this_blog.articles.find(postid)75 article = Article.find(postid) 76 76 77 77 article_dto_from(article) … … 79 79 80 80 def getRecentPosts(blogid, username, password, numberOfPosts) 81 this_blog.articles.find(:all, :order => "created_at DESC", :limit => numberOfPosts).collect{ |c| article_dto_from(c) }81 Article.find(:all, :order => "created_at DESC", :limit => numberOfPosts).collect{ |c| article_dto_from(c) } 82 82 end 83 83 84 84 def newPost(blogid, username, password, struct, publish) 85 article = this_blog.articles.build85 article = Article.new 86 86 article.body = struct['description'] || '' 87 87 article.title = struct['title'] || '' … … 113 113 114 114 def deletePost(appkey, postid, username, password, publish) 115 article = this_blog.articles.find(postid) 116 article.destroy 115 Article.destroy(postid) 117 116 true 118 117 end 119 118 120 119 def editPost(postid, username, password, struct, publish) 121 article = this_blog.articles.find(postid)120 article = Article.find(postid) 122 121 article.body = struct['description'] || '' 123 122 article.title = struct['title'] || '' trunk/app/apis/movable_type_service.rb
r1514 r1665 74 74 75 75 def getRecentPostTitles(blogid, username, password, numberOfPosts) 76 this_blog.articles.find(:all,:order => "created_at DESC", :limit => numberOfPosts).collect do |article|76 Article.find(:all,:order => "created_at DESC", :limit => numberOfPosts).collect do |article| 77 77 MovableTypeStructs::ArticleTitle.new( 78 78 :dateCreated => article.created_at, … … 94 94 95 95 def getPostCategories(postid, username, password) 96 this_blog.articles.find(postid).categorizations.collect do |c|96 Article.find(postid).categorizations.collect do |c| 97 97 MovableTypeStructs::CategoryPerPost.new( 98 98 :categoryName => c.category.name, … … 104 104 105 105 def setPostCategories(postid, username, password, categories) 106 article = this_blog.articles.find(postid)106 article = Article.find(postid) 107 107 article.categories.clear if categories != nil 108 108 … … 127 127 128 128 def getTrackbackPings(postid) 129 article = this_blog.articles.find(postid)129 article = Article.find(postid) 130 130 article.trackbacks.collect do |t| 131 131 MovableTypeStructs::TrackBack.new( … … 138 138 139 139 def publishPost(postid, username, password) 140 article = this_blog.articles.find(postid)140 article = Article.find(postid) 141 141 article.published = true 142 142 article.save trunk/app/controllers/admin/base_controller.rb
r1636 r1665 1 module Admin 2 end 1 3 class Admin::BaseController < ApplicationController 2 4 cattr_accessor :look_for_migrations … … 20 22 end 21 23 end 22 24 23 25 def look_for_needed_db_updates 24 26 if Migrator.offer_migration_when_available trunk/app/controllers/admin/content_controller.rb
r1631 r1665 1 1 require 'base64' 2 2 module Admin; end 3 3 class Admin::ContentController < Admin::BaseController 4 4 def index … … 19 19 20 20 now = Time.now 21 count = this_blog.articles.size21 count = Article.count 22 22 @articles_pages = Paginator.new(self, count, 15, params[:id]) 23 @articles = this_blog.articles.find(:all, :limit => 15, :order => order,24 :offset => @articles_pages.current.offset)23 @articles = Article.find(:all, :limit => 15, :order => order, 24 :offset => @articles_pages.current.offset) 25 25 setup_categories 26 @article = this_blog.articles.build(params[:article])26 @article = Article.new(params[:article]) 27 27 end 28 28 29 29 def show 30 @article = this_blog.articles.find(params[:id])30 @article = Article.find(params[:id]) 31 31 setup_categories 32 32 @resources = Resource.find(:all, :order => 'created_at DESC') … … 37 37 38 38 def destroy 39 @article = this_blog.articles.find(params[:id])39 @article = Article.find(params[:id]) 40 40 if request.post? 41 41 @article.destroy … … 49 49 50 50 def category_remove 51 @article = this_blog.articles.find(params[:id])51 @article = Article.find(params[:id]) 52 52 @category = @article.categories.find(params['category_id']) 53 53 setup_categories … … 59 59 def preview 60 60 headers["Content-Type"] = "text/html; charset=utf-8" 61 @article = this_blog.articles.build61 @article = Article.new 62 62 @article.attributes = params[:article] 63 63 set_article_author … … 94 94 def do_add_or_remove_fu 95 95 attrib, action = params[:action].split('_') 96 @article = this_blog.articles.find(params[:id])96 @article = Article.find(params[:id]) 97 97 self.send("#{attrib}=", self.class.const_get(attrib.classify).find(params["#{attrib}_id"])) 98 98 send("setup_#{attrib.pluralize}") … … 169 169 @article = case params[:action] 170 170 when 'new' 171 returning( this_blog.articles.build) do |art|171 returning(Article.new) do |art| 172 172 art.allow_comments = this_blog.default_allow_comments 173 173 art.allow_pings = this_blog.default_allow_pings … … 175 175 end 176 176 when 'edit' 177 this_blog.articles.find(params[:id])177 Article.find(params[:id]) 178 178 else 179 179 raise "Don't know how to get article for action: #{params[:action]}" trunk/app/controllers/admin/feedback_controller.rb
r1587 r1665 5 5 6 6 def index 7 conditions = [' blog_id = :blog_id', {:blog_id => Blog.default.id}]7 conditions = ['1 = 1', {}] 8 8 9 9 if params[:search] trunk/app/controllers/articles_controller.rb
r1637 r1665 20 20 21 21 def index 22 @articles = this_blog.requested_articles(params)22 @articles = Article.find_all_by_date(*params.values_at(:year, :month, :day)) 23 23 24 24 @page_title = index_title … … 58 58 59 59 def archives 60 @articles = this_blog.published_articles60 @articles = Article.find_published(:order => 'published_at DESC') 61 61 @page_title = "Archives" 62 62 end trunk/app/controllers/comments_controller.rb
r1645 r1665 35 35 @comments = \ 36 36 if params[:article_id] 37 this_blog.requested_article(params).published_comments37 Article.find_by_params_hash(params).published_comments 38 38 else 39 this_blog.published_comments.find(:all, this_blog.rss_limit_params.merge(:order => 'created_at DESC'))39 Comment.find_published(:all, this_blog.rss_limit_params.merge(:order => 'created_at DESC')) 40 40 end 41 41 end trunk/app/controllers/xml_controller.rb
r1560 r1665 87 87 def fetch_items(association, order='published_at DESC', limit=nil) 88 88 if association.instance_of?(Symbol) 89 association = this_blog.send(association)89 association = association.to_s.singularize.classify.constantize 90 90 end 91 91 limit ||= this_blog.limit_rss_display trunk/app/helpers/application_helper.rb
r1661 r1665 198 198 <link rel="alternate" type="application/atom+xml" title="Atom" href="#{ @auto_discovery_url_atom }" /> 199 199 <link rel="alternate" type="application/rss+xml" title="RSS" href="#{ @auto_discovery_url_rss }" /> 200 #{ javascript_include_tag "lang/" + Localization.lang }200 #{ javascript_include_tag "lang/" + Localization.lang.to_s } 201 201 #{ javascript_include_tag "cookies" } 202 202 #{ javascript_include_tag "prototype" } trunk/app/helpers/sidebar_helper.rb
r1407 r1665 1 1 module SidebarHelper 2 2 def render_sidebars(*sidebars) 3 (sidebars.blank? ? this_blog.sidebars: sidebars).inject('') do |acc, sb|3 (sidebars.blank? ? Sidebar.find(:all) : sidebars).inject('') do |acc, sb| 4 4 @sidebar = sb 5 5 sb.parse_request(contents, params) trunk/app/models/article.rb
r1638 r1665 44 44 45 45 include States 46 47 class << self 48 def published_articles 49 find(:conditions => { :published => true }, :order => 'published_at DESC') 50 end 51 52 def count_published_articles 53 count(:conditions => { :published => true }) 54 end 55 end 46 56 47 57 def stripped_title trunk/app/models/blog.rb
r1654 r1665 19 19 include ConfigManager 20 20 21 has_many :contents 22 has_many :trackbacks 23 has_many :articles 24 has_many :comments 25 has_many(:published_comments, 26 :class_name => 'Comment', 27 :conditions => {:published => true}, 28 :order => 'feedback.published_at DESC') 29 has_many(:published_trackbacks, 30 :class_name => 'Trackback', 31 :conditions => {:published => true}, 32 :order => 'feedback.published_at DESC') 33 has_many(:published_feedback, 34 :class_name => 'Feedback', 35 :conditions => {:published => true}, 36 :order => 'feedback.published_at DESC') 37 has_many(:pages, 38 :order => "id DESC") 39 has_many(:published_articles, 40 :class_name => "Article", 41 :conditions => {:published => true}, 42 :include => [:categories, :tags], 43 :order => "contents.published_at DESC") do 44 def before(date = Time.now) 45 find(:all, :conditions => ["contents.created_at < ?", date]) 46 end 47 end 48 49 has_many :pages 50 has_many :sidebars, :order => 'active_position ASC' 21 validate_on_create { |blog| 22 unless Blog.count.zero? 23 blog.errors.add_to_base("There can only be one...") 24 end 25 } 51 26 52 27 serialize :settings, Hash … … 117 92 # Blog. The last case should only be used when Typo is first installed. 118 93 def self.find_blog(base_url) 119 (Blog.find_by_base_url(base_url) rescue nil)|| Blog.default || Blog.new94 Blog.default || Blog.create 120 95 end 121 96 trunk/app/models/content.rb
r1638 r1665 6 6 7 7 belongs_to :text_filter 8 belongs_to :blog9 validates_presence_of :blog_id10 8 11 9 has_many :notifications, :foreign_key => 'content_id' … … 37 35 @@html_map = Hash.new 38 36 39 def initialize(*args)40 if block_given?41 super(*args) { |instance| yield(instance) }42 else43 super(*args)44 end45 set_default_blog46 end47 48 37 def invalidates_cache?(on_destruction = false) 49 38 if on_destruction … … 51 40 else 52 41 changed? && published? || just_changed_published_status? 53 end54 end55 56 def set_default_blog57 if self.blog_id.nil? || self.blog_id == 058 self.blog = Blog.default59 42 end 60 43 end … … 170 153 171 154 # Grab the text filter for this object. It's either the filter specified by 172 # self.text_filter_id, or the default specified in the blog object.155 # self.text_filter_id, or the default specified in the default blog object. 173 156 def text_filter 174 157 if self[:text_filter_id] && !self[:text_filter_id].zero? … … 199 182 end 200 183 201 # FIXME -- this feels wrong.202 184 def blog 203 self[:blog] ||= blog_id.to_i.zero? ? Blog.default : Blog.find(blog_id)185 Blog.default 204 186 end 205 187 trunk/app/models/sidebar.rb
r1637 r1665 1 1 class Sidebar < ActiveRecord::Base 2 2 serialize :config 3 belongs_to :blog4 3 5 4 class Field … … 189 188 end 190 189 190 def blog 191 Blog.default 192 end 193 191 194 def initialize(*args) 192 195 if block_given? trunk/spec/controllers/admin/content_controller_spec.rb
r1623 r1665 6 6 7 7 # Re-raise errors caught by the controller. 8 module Admin 9 end 10 8 11 class Admin::ContentController; def rescue_action(e) raise e end; end 9 12 … … 65 68 ActionMailer::Base.perform_deliveries = true 66 69 ActionMailer::Base.deliveries = [] 67 num_articles = this_blog.published_articles.size70 num_articles = Article.count_published_articles 68 71 emails = ActionMailer::Base.deliveries 69 72 tags = ['foo', 'bar', 'baz bliz', 'gorp gack gar'] … … 71 74 assert_response :redirect, :action => 'show' 72 75 73 assert_equal num_articles + 1, this_blog.published_articles.size76 assert_equal num_articles + 1, Article.count_published_articles 74 77 75 78 new_article = Article.find(:first, :order => "id DESC") … … 86 89 87 90 def test_create_future_article 88 num_articles = this_blog.published_articles.size91 num_articles = Article.count_published_articles 89 92 post(:new, 90 93 :article => { :title => "News from the future!", … … 93 96 assert_response :redirect, :action => 'show' 94 97 assert ! assigns(:article).published? 95 assert_equal num_articles, this_blog.published_articles.size98 assert_equal num_articles, Article.count_published_articles 96 99 assert_equal 1, Trigger.count 97 100 end 98 101 99 102 def test_request_fires_triggers 100 art = this_blog.articles.create!(:title => 'future article',101 :body => 'content',102 :published_at => Time.now + 2.seconds,103 :published => true)103 art = Article.create!(:title => 'future article', 104 :body => 'content', 105 :published_at => Time.now + 2.seconds, 106 :published => true) 104 107 assert !art.published? 105 108 sleep 3 trunk/spec/controllers/admin/feedback_controller_spec.rb
r1623 r1665 23 23 assert_template 'list' 24 24 25 assert_equal(Feedback.count(:conditions => ['blog_id = ? AND status_confirmed = ?', 26 blogs(:default).id, false]), 27 assigns(:feedback).size) 28 25 Feedback.count(:conditions => { :status_confirmed => false }).should == assigns(:feedback).size 29 26 end 30 27 … … 35 32 assert_template 'list' 36 33 37 assert_equal(Feedback.count(:conditions => ['blog_id = ? AND published = ?', 38 blogs(:default).id, false]), 39 assigns(:feedback).size) 34 Feedback.count(:conditions => { :published => false }).should == assigns(:feedback).size 40 35 end 41 36 … … 46 41 assert_template 'list' 47 42 48 assert_equal(Feedback.count(:conditions => ['blog_id = ? AND published = ? AND status_confirmed = ?', 49 blogs(:default).id, false, false]), 50 assigns(:feedback).size) 43 Feedback.count(:conditions => { :published => false, :status_confirmed => false }).should == assigns(:feedback).size 51 44 end 52 53 45 end trunk/spec/controllers/articles_controller_spec.rb
r1622 r1665 41 41 before do 42 42 @mock = mock('everything', :null_object => true) 43 Blog.stub!(:find).and_return(@mock)44 43 Category.stub!(:find_by_permalink).and_return(@mock) 45 44 Tag.stub!(:find_by_permalink).and_return(@mock) trunk/spec/controllers/backend_controller_spec.rb
r1623 r1665 51 51 assert_equal "textile", new_post.text_filter.name 52 52 assert_equal users(:tobi), new_post.user 53 assert_equal this_blog.id, new_post.blog_id54 53 assert new_post.published? 55 54 assert new_post[:published_at] … … 76 75 assert_equal "new post body", new_post.body 77 76 assert_equal [categories(:software), categories(:hardware)], new_post.categories.sort_by { |c| c.id } 78 assert_equal this_blog.id, new_post.blog_id79 77 assert new_post.published? 80 78 end … … 87 85 new_post = Article.find(result) 88 86 assert_equal [categories(:hardware)], new_post.categories 89 assert_equal this_blog.id, new_post.blog_id90 87 end 91 88 … … 146 143 assert_equal "<p>this is a <strong>test</strong></p>", new_article.html(:body) 147 144 assert_equal Time.now.midnight.utc, new_article.published_at.utc 148 assert_equal this_blog.id, new_article.blog_id 149 end 150 151 # TODO: reduce amount of mocking needed? 145 end 146 147 # TODO: Work out what the correct response is when a post can't be saved... 152 148 def test_meta_weblog_new_post_fails 153 stub_args = [:id_stub, :username_stub, :password_stub, {}, :publish_stub] 154 @controller = MetaWeblogService.new(:controller_stub) 155 @article = Article.new 149 @article = Article.new(:title => 'test', :body => 'body', :extended => 'extended', 150 :text_filter => TextFilter.find_by_name('textile'), 151 :published_at => Time.now.utc.midnight) 152 @article.errors.add_to_base('test error') 156 153 @article.should_receive(:save).and_return(false) 157 @this_blog = mock('blog', :null_object => true) 158 articles = mock('articles') 159 articles.stub!(:build).and_return(@article) 160 @this_blog.stub!(:articles).and_return(articles) 161 @controller.stub!(:this_blog).and_return(@this_blog) 162 assert_raises(RuntimeError) { @controller.newPost(*stub_args) } 154 Article.stub!(:new).and_return(@article) 155 args = [1, 'tobi', 'whatever', MetaWeblogService.new(@controller).article_dto_from(@article), 1] 156 lambda { invoke_layered :metaWeblog , :newPost, *args }.should \ 157 raise_error(XMLRPC::FaultException, 158 'Internal server error (exception raised)') 163 159 end 164 160 … … 184 180 assert_equal "<p>extend me</p>", new_post.html(:extended) 185 181 assert_equal Time.now.midnight.utc, new_post.published_at.utc 186 assert_equal this_blog.id, new_post.blog_id187 182 end 188 183 … … 290 285 assert_raise(XMLRPC::FaultException) { invoke_layered :mt, :getRecentPostTitles, *args } 291 286 end 292 293 287 end trunk/spec/models/article_closing_spec.rb
r1623 r1665 3 3 describe "CommentClosing from Test::Unit; no I don't know why it's in article_closing_spec.rb" do 4 4 def an_article(options = {}) 5 @blog.articles.create(options.reverse_merge(:user_id => 1, :body => 'Foo', :title => 'Bar'))5 Article.create(options.reverse_merge(:user_id => 1, :body => 'Foo', :title => 'Bar')) 6 6 end 7 7 trunk/spec/models/article_spec.rb
r1508 r1665 4 4 before(:each) do 5 5 @a = Article.new(:title => 'Test article', :body => 'body', 6 :author => mock_model(User) , :blog => mock_model(Blog))6 :author => mock_model(User)) 7 7 end 8 8 trunk/spec/models/blog_spec.rb
r1622 r1665 21 21 end 22 22 23 it " blog has one sidebar" do24 @blog.should have(1).sidebars23 it "should be the only blog allowed" do 24 Blog.new.should_not be_valid 25 25 end 26 26 end 27 28 describe "Given no blogs" do 29 before(:each) { Blog.destroy_all } 30 31 it "should allow the creation of a valid default blog" do 32 Blog.new.should be_valid 33 end 34 end trunk/spec/models/comment_spec.rb
r1655 r1665 148 148 149 149 def test_published 150 a = Article.new(:title => 'foo' , :blog_id => blogs(:default).id)150 a = Article.new(:title => 'foo') 151 151 assert a.save 152 152 … … 161 161 c.withdraw! 162 162 163 a = Article.new(:title => 'foo' , :blog_id => 1)163 a = Article.new(:title => 'foo') 164 164 assert_equal 0, a.published_comments.size 165 165 end trunk/spec/models/page_spec.rb
r1622 r1665 86 86 87 87 it 'default filter should be fetched from the blog' do 88 blog = mock_model(Blog) 89 Blog.stub!(:find).and_return(blog) 90 textfilter = mock_model(TextFilter) 91 textfilter.stub!(:to_text_filter).and_return(textfilter) 92 93 blog.should_receive(:text_filter).and_return(textfilter) 94 @page = Page.new(valid_attributes.merge(:blog => blog)) 95 @page.default_text_filter.should == textfilter 88 @page = Page.new() 89 @page.default_text_filter.name.should == Blog.default.text_filter 96 90 end 97 91 end trunk/spec/models/ping_spec.rb
r1622 r1665 38 38 39 39 40 a = blog.articles.build\40 a = Article.new \ 41 41 :body => '<a href="http://anotherblog.org/a-post">', 42 42 :title => 'Test the pinging', trunk/test/fixtures/contents.yml
r1621 r1665 2 2 3 3 article1: 4 blog: default5 4 title: Article 1! 6 5 body: body … … 22 21 article2: 23 22 type: Article 24 blog: default25 23 title: Article 2! 26 24 body: body … … 42 40 article3: 43 41 type: Article 44 blog: default45 42 title: Article 3! 46 43 body: body … … 60 57 article4: 61 58 type: Article 62 blog: default63 59 title: Article 4! 64 60 body: I'm not "public":http://www.example.com/public! … … 78 74 first_page: 79 75 type: Page 80 blog: default81 76 name: page_one 82 77 title: Page One Title … … 91 86 another_page: 92 87 type: Page 93 blog: default94 88 name: page/two 95 89 title: Another Page Title … … 104 98 markdown_page: 105 99 type: Page 106 blog: default107 100 name: markdown-page 108 101 title: Markdown Page … … 118 111 inactive_article: 119 112 type: Article 120 blog: default121 113 title: Inactive Article 122 114 body: body … … 136 128 search_target: 137 129 type: Article 138 blog: default139 130 title: Find me! 140 131 body: search target … … 154 145 xmltest: 155 146 type: Article 156 blog: default157 147 title: Associations aren't :dependent => true anymore 158 148 body: originally seen on <a href="http://blog.rubyonrails.org/">blog.rubyonrails.org</a> … … 172 162 spammed_article: 173 163 type: Article 174 blog: default175 164 title: C'mon Spam Me! 176 165 body: A bunch of innocuous content trunk/test/fixtures/feedback.yml
r1621 r1665 1 1 spam_comment: 2 2 type: Comment 3 blog: default4 3 published: true 5 4 article: article2 … … 15 14 comment2: 16 15 type: Comment 17 blog: default18 16 published: true 19 17 article: article1 … … 31 29 comment3: 32 30 type: Comment 33 blog: default34 31 published: false 35 32 state: presumed_spam … … 45 42 trackback1: 46 43 type: Trackback 47 blog: default48 44 article: article2 49 45 published: false … … 61 57 trackback2: 62 58 type: Trackback 63 blog: default64 59 article: article1 65 60 state: presumed_ham … … 76 71 trackback3: 77 72 type: Trackback 78 blog: default79 73 article: article1 80 74 published: true … … 91 85 trackback4: 92 86 type: Trackback 93 blog: default94 87 article: search_target 95 88 published: true … … 106 99 old_comment: 107 100 type: Comment 108 blog: default109 101 article: inactive_article 110 102 author: John Bar … … 121 113 probably_spam_comment: 122 114 type: Comment 123 blog: default124 115 published: false 125 116 article: spammed_article … … 136 127 definitely_spam_comment: 137 128 type: Comment 138 blog: default139 129 published: false 140 130 article: spammed_article trunk/test/fixtures/sidebars.yml
r1621 r1665 3 3 active_position: 1 4 4 staged_position: 1 5 blog: default6 5 config: |+ 7 6 --- !map:HashWithIndifferentAccess
