C0 code coverage information
Generated on Sun Jun 11 23:15:11 CEST 2006 with rcov 0.6.0
Code reported as executed by Ruby looks like this...
and this: this line is also marked as covered.
Lines considered as run by rcov, but not reported by Ruby, look like this,
and this: these lines were inferred by rcov (using simple heuristics).
Finally, here's a line marked as not executed.
1 class ArticlesController < ApplicationController
Calls
1 ActionWebService::Dispatcher::ActionController::ClassMethods#inherited at vendor/rails/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb:33
2 before_filter :verify_config
Calls
1 ActionController::Filters::ClassMethods#before_filter at vendor/rails/actionpack/lib/action_controller/filters.rb:175
3 before_filter :ignore_page_query_param
Calls
1 ActionController::Filters::ClassMethods#before_filter at vendor/rails/actionpack/lib/action_controller/filters.rb:175
4 layout :theme_layout
Calls
1 ActionController::Layout::ClassMethods#layout at vendor/rails/actionpack/lib/action_controller/layout.rb:165
5
6 cache_sweeper :blog_sweeper
Calls
1 ActionController::Caching::Sweeping::ClassMethods#cache_sweeper at vendor/rails/actionpack/lib/action_controller/caching.rb:500
7 caches_page :index, :read, :permalink, :category, :find_by_date, :archives, :view_page
Calls
1 ActionController::Caching::Pages::ClassMethods#caches_page at vendor/rails/actionpack/lib/action_controller/caching.rb:95
8
9 verify :only => [:nuke_comment, :nuke_trackback], :session => :user, :method => :post, :render => { :text => 'Forbidden', :status => 403 }
Calls
1 ActionController::Verification::ClassMethods#verify at vendor/rails/actionpack/lib/action_controller/verification.rb:60
10
11 def index
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
Called by
1 vendor/rails/actionpack/lib/action_controller/base.rb:853 in 'ActionController::Base#perform_action_without_filters'
12 @pages = Paginator.new self, Article.count, config[:limit_article_display], @params[:page]
Calls
1 Object#config at app/models/configuration.rb:18
1 HashWithIndifferentAccess#default at vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb:12
1 ConfigManager#[] at app/models/config_manager.rb:18
1 ActionController::Pagination::Paginator#initialize at vendor/rails/actionpack/lib/action_controller/pagination.rb:208
1 #<Class:ActiveRecord::Base>#count at vendor/rails/activerecord/lib/active_record/base.rb:507
13 @articles = Article.find(:all, :conditions => 'published != 0', :order => 'created_at DESC', :limit => config[:limit_article_display], :offset => @pages.current.offset)
Calls
1 Object#config at app/models/configuration.rb:18
1 ConfigManager#[] at app/models/config_manager.rb:18
1 ActionController::Pagination::Paginator::Page#offset at vendor/rails/actionpack/lib/action_controller/pagination.rb:311
1 ActionController::Pagination::Paginator#current at vendor/rails/actionpack/lib/action_controller/pagination.rb:234
1 #<Class:ActiveRecord::Base>#find at vendor/rails/activerecord/lib/active_record/base.rb:378
14 end
15
16 def search
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
17 @articles = Article.search(params[:q])
18 end
19
20 def archives
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
Called by
1 vendor/rails/actionpack/lib/action_controller/base.rb:853 in 'ActionController::Base#perform_action_without_filters'
21 @articles = Article.find(:all, :conditions => 'published != 0', :order => 'created_at DESC', :include => [:categories])
Calls
1 #<Class:ActiveRecord::Base>#find at vendor/rails/activerecord/lib/active_record/base.rb:378
22 end
23
24 def read
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
25 @article = Article.find(params[:id], :include => [:categories])
26 @comment = Comment.new
27 @page_title = @article.title
28 end
29
30 def permalink
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
Called by
1 vendor/rails/actionpack/lib/action_controller/base.rb:853 in 'ActionController::Base#perform_action_without_filters'
31 @article = Article.find_by_permalink(params[:year], params[:month], params[:day], params[:title])
Calls
4 HashWithIndifferentAccess#default at vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb:12
1 #<Class:Article>#find_by_permalink at app/models/article.rb:57
32 @comment = Comment.new
Calls
1 ActiveRecord::Callbacks#initialize at vendor/rails/activerecord/lib/active_record/callbacks.rb:235
33
34 if @article.nil?
35 error("Post not found...")
36 else
37 @page_title = @article.title
Calls
1 Article#title at (eval):1
38 render :action => "read"
Calls
1 ActionController::Benchmarking#render at vendor/rails/actionpack/lib/action_controller/benchmarking.rb:46
39 end
40 end
41
42 def find_by_date
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
Called by
1 vendor/rails/actionpack/lib/action_controller/base.rb:853 in 'ActionController::Base#perform_action_without_filters'
43 @articles = Article.find_all_by_date(params[:year], params[:month], params[:day])
Calls
3 HashWithIndifferentAccess#default at vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb:12
1 #<Class:Article>#find_all_by_date at app/models/article.rb:46
44 @pages = Paginator.new self, @articles.size, config[:limit_article_display], @params[:page]
Calls
1 Object#config at app/models/configuration.rb:18
1 HashWithIndifferentAccess#default at vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb:12
1 ConfigManager#[] at app/models/config_manager.rb:18
1 ActionController::Pagination::Paginator#initialize at vendor/rails/actionpack/lib/action_controller/pagination.rb:208
45
46 if @articles.empty?
47 error("No posts found...")
48 else
49 start = @pages.current.offset
Calls
1 ActionController::Pagination::Paginator::Page#offset at vendor/rails/actionpack/lib/action_controller/pagination.rb:311
1 ActionController::Pagination::Paginator#current at vendor/rails/actionpack/lib/action_controller/pagination.rb:234
50 stop = (@pages.current.next.offset - 1) rescue @articles.size
Calls
1 NilClass#method_missing at vendor/rails/activesupport/lib/active_support/whiny_nil.rb:26
1 ActionController::Pagination::Paginator::Page#next at vendor/rails/actionpack/lib/action_controller/pagination.rb:343
1 ActionController::Pagination::Paginator#current at vendor/rails/actionpack/lib/action_controller/pagination.rb:234
51 @articles = @articles.slice(start..stop)
52
53 render :action => "index"
Calls
1 ActionController::Benchmarking#render at vendor/rails/actionpack/lib/action_controller/benchmarking.rb:46
54 end
55 end
56
57 def error(message = "Record not found...")
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
58 @message = message
59 render :action => "error"
60 end
61
62 def category
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
Called by
1 vendor/rails/actionpack/lib/action_controller/base.rb:853 in 'ActionController::Base#perform_action_without_filters'
63 if category = Category.find_by_permalink(params[:id])
Calls
1 HashWithIndifferentAccess#default at vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb:12
1 #<Class:ActiveRecord::Base>#method_missing at vendor/rails/activerecord/lib/active_record/base.rb:970
64 @articles = Article.find(:all, :conditions => [%{ published != 0
Calls
1 #<Class:ActiveRecord::Base>#find at vendor/rails/activerecord/lib/active_record/base.rb:378
65 AND articles.id = articles_categories.article_id
66 AND articles_categories.category_id = ? }, category.id],
Calls
1 ActiveRecord::Base#id at vendor/rails/activerecord/lib/active_record/base.rb:1194
67 :joins => ', articles_categories',
68 :order => "created_at DESC")
69
70 @pages = Paginator.new self, @articles.size, config[:limit_article_display], @params[:page]
Calls
1 Object#config at app/models/configuration.rb:18
1 HashWithIndifferentAccess#default at vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb:12
1 ConfigManager#[] at app/models/config_manager.rb:18
1 ActionController::Pagination::Paginator#initialize at vendor/rails/actionpack/lib/action_controller/pagination.rb:208
71
72 start = @pages.current.offset
Calls
1 ActionController::Pagination::Paginator::Page#offset at vendor/rails/actionpack/lib/action_controller/pagination.rb:311
1 ActionController::Pagination::Paginator#current at vendor/rails/actionpack/lib/action_controller/pagination.rb:234
73 stop = (@pages.current.next.offset - 1) rescue @articles.size
Calls
1 NilClass#method_missing at vendor/rails/activesupport/lib/active_support/whiny_nil.rb:26
1 ActionController::Pagination::Paginator::Page#next at vendor/rails/actionpack/lib/action_controller/pagination.rb:343
1 ActionController::Pagination::Paginator#current at vendor/rails/actionpack/lib/action_controller/pagination.rb:234
74 # Why won't this work? @articles.slice!(start..stop)
75 @articles = @articles.slice(start..stop)
76
77 render :action => "index"
Calls
1 ActionController::Benchmarking#render at vendor/rails/actionpack/lib/action_controller/benchmarking.rb:46
78 else
79 error("Can't find posts in category #{params[:id]}")
80 end
81 end
82
83 # Receive comments to articles
84 def comment
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
85 @article = Article.find(params[:id])
86 @comment = Comment.new(params[:comment])
87 @comment.article = @article
88 @comment.ip = request.remote_ip
89
90 if request.post? and @comment.save
91 @comment.body = ""
92
93 cookies[:author] = { :value => @comment.author, :path => '/' + controller_name, :expires => 6.weeks.from_now }
94 cookies[:url] = { :value => @comment.url, :path => '/' + controller_name, :expires => 6.weeks.from_now }
95
96 @headers["Content-Type"] = "text/html; charset=utf-8"
97
98 render :partial => "comment", :object => @comment
99 else
100 render :text => @comment.errors.full_messages.join(", "), :status => 500
101 end
102 end
103
104 # Receive trackbacks linked to articles
105 def trackback
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
106 @result = true
107
108 if params[:__mode] == "rss"
109 # Part of the trackback spec... will implement later
110 else
111 # url is required
112 unless params.has_key?(:url) and params.has_key?(:id)
113 @result = false
114 @error_message = "A URL is required."
115 else
116 begin
117 article = Article.find(params[:id])
118 tb = article.build_to_trackbacks
119 tb.url = params[:url]
120 tb.title = params[:title] || params[:url]
121 tb.excerpt = params[:excerpt]
122 tb.blog_name = params[:blog_name]
123 tb.ip = request.remote_ip
124 unless article.save
125 @result = false
126 @error_message = "Trackback not saved. Database problem most likely."
127 end
128 rescue ActiveRecord::RecordNotFound, ActiveRecord::StatementInvalid
129 @result = false
130 @error_message = "Article id #{params[:id]} not found."
131 end
132 end
133 end
134 render :layout => false
135 end
136
137 def nuke_comment
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
Called by
1 vendor/rails/actionpack/lib/action_controller/base.rb:853 in 'ActionController::Base#perform_action_without_filters'
138 if(session[:user])
Calls
1 ActionController::TestSession#[] at vendor/rails/actionpack/lib/action_controller/test_process.rb:258
139 comment = Comment.find(params[:id])
Calls
1 HashWithIndifferentAccess#default at vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb:12
1 #<Class:ActiveRecord::Base>#find at vendor/rails/activerecord/lib/active_record/base.rb:378
140 comment.destroy
Calls
1 ActiveRecord::Transactions#destroy at vendor/rails/activerecord/lib/active_record/transactions.rb:121
141 render :nothing => true
Calls
1 ActionController::Benchmarking#render at vendor/rails/actionpack/lib/action_controller/benchmarking.rb:46
142 end
143 end
144
145 def nuke_trackback
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
Called by
1 vendor/rails/actionpack/lib/action_controller/base.rb:853 in 'ActionController::Base#perform_action_without_filters'
146 if(session[:user])
Calls
1 ActionController::TestSession#[] at vendor/rails/actionpack/lib/action_controller/test_process.rb:258
147 trackback = Trackback.find(params[:id])
Calls
1 HashWithIndifferentAccess#default at vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb:12
1 #<Class:ActiveRecord::Base>#find at vendor/rails/activerecord/lib/active_record/base.rb:378
148 trackback.destroy
Calls
1 ActiveRecord::Transactions#destroy at vendor/rails/activerecord/lib/active_record/transactions.rb:121
149 render :nothing => true
Calls
1 ActionController::Benchmarking#render at vendor/rails/actionpack/lib/action_controller/benchmarking.rb:46
150 end
151 end
152
153 def view_page
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
Called by
2 vendor/rails/actionpack/lib/action_controller/base.rb:853 in 'ActionController::Base#perform_action_without_filters'
154 if(@page = Page.find_by_name(params[:name].to_a.join('/')))
Calls
2 HashWithIndifferentAccess#default at vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb:12
2 #<Class:ActiveRecord::Base>#method_missing at vendor/rails/activerecord/lib/active_record/base.rb:970
155 @page_title = @page.title
Calls
1 ActiveRecord::Base#method_missing at vendor/rails/activerecord/lib/active_record/base.rb:1479
156 render
Calls
1 ActionController::Benchmarking#render at vendor/rails/actionpack/lib/action_controller/benchmarking.rb:46
157 else
158 render :nothing => true, :status => 404
Calls
1 ActionController::Benchmarking#render at vendor/rails/actionpack/lib/action_controller/benchmarking.rb:46
159 end
160 end
161
162 private
163
164 def ignore_page_query_param
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
Called by
15 vendor/rails/actionpack/lib/action_controller/filters.rb:354 in 'ActionController::Filters::InstanceMethods#call_filters'
165 @params[:page] = nil unless @request.path =~ /\/page\// # assumes all page routes use /page/:page
Calls
15 HashWithIndifferentAccess#[]= at vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb:18
15 ActionController::TestRequest#path at vendor/rails/actionpack/lib/action_controller/test_process.rb:80
166 end
167
168 def verify_config
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
Called by
15 vendor/rails/actionpack/lib/action_controller/filters.rb:354 in 'ActionController::Filters::InstanceMethods#call_filters'
169 if User.count == 0
Calls
15 #<Class:ActiveRecord::Base>#count at vendor/rails/activerecord/lib/active_record/base.rb:507
170 redirect_to :controller => "accounts", :action => "signup"
Calls
1 ActionController::Base#redirect_to at vendor/rails/actionpack/lib/action_controller/base.rb:752
171 elsif !config.is_ok?
Calls
14 Object#config at app/models/configuration.rb:18
14 ConfigManager#is_ok? at app/models/config_manager.rb:7
172 redirect_to :controller => "admin/general", :action => "index"
Calls
1 ActionController::Base#redirect_to at vendor/rails/actionpack/lib/action_controller/base.rb:752
173 else
174 return true
175 end
176 end
177
178 def rescue_action_in_public(exception)
Calls
1 #<Class:Object>#method_added at vendor/rails/actionpack/lib/action_view/vendor/builder/blankslate.rb:47
179 error(exception.message)
180 end
181
182 end
Generated using the rcov code coverage analysis tool for Ruby version 0.6.0.