<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre, #msg p { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[589] trunk/rails: Refactored cookie requirement code into lib/
cookies_required module</title>
</head>
<body>
<div id="msg">
<dl>
<dt>Revision</dt> <dd>589</dd>
<dt>Author</dt> <dd>mwmitchell</dd>
<dt>Date</dt> <dd>2008-06-06 14:28:19 -0400 (Fri, 06 Jun 2008)</dd>
</dl>
<h3>Log Message</h3>
<pre>Refactored cookie requirement code into lib/cookies_required module
Cleaned up application controller
Cleaned up auth controller
Added auth/cookies_required template
Removed Flare.boot! requirement - just require the darn thing now
Moved will_paginate link_renderer out of Flare into lib
Updated lib/uva/z3950 code to work propertly with jRuby</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkrailsappcontrollersapplicationrb">trunk/rails/app/controllers/application.rb</a></li>
<li><a href="#trunkrailsappcontrollersauth_controllerrb">trunk/rails/app/controllers/auth_controller.rb</a></li>
<li><a href="#trunkrailsappcontrollersusers_controllerrb">trunk/rails/app/controllers/users_controller.rb</a></li>
<li><a href="#trunkrailsapphelpersapplication_helperrb">trunk/rails/app/helpers/application_helper.rb</a></li>
<li><a href="#trunkrailsapphelperscatalog_helperrb">trunk/rails/app/helpers/catalog_helper.rb</a></li>
<li><a href="#trunkrailsappviewscatalog_search_formhtmlerb">trunk/rails/app/views/catalog/_search_form.html.erb</a></li>
<li><a href="#trunkrailsappviewscatalogindexhtmlerb">trunk/rails/app/views/catalog/index.html.erb</a></li>
<li><a href="#trunkrailsappviewslayoutsapplicationhtmlerb">trunk/rails/app/views/layouts/application.html.erb</a></li>
<li><a href="#trunkrailsconfigenvironmentrb">trunk/rails/config/environment.rb</a></li>
<li><a href="#trunkrailsconfigroutesrb">trunk/rails/config/routes.rb</a></li>
<li><a href="#trunkrailslibtaggable_paginationrb">trunk/rails/lib/taggable_pagination.rb</a></li>
<li><a href="#trunkrailslibuvaz3950rb">trunk/rails/lib/uva/z3950.rb</a></li>
<li><a href="#trunkrailsvendorgemsblacklightCHANGELOGtxt">trunk/rails/vendor/gems/blacklight/CHANGELOG.txt</a></li>
<li><a href="#trunkrailsvendorgemsblacklightManifesttxt">trunk/rails/vendor/gems/blacklight/Manifest.txt</a></li>
<li><a href="#trunkrailsvendorgemsblacklightlibblacklightrb">trunk/rails/vendor/gems/blacklight/lib/blacklight.rb</a></li>
<li><a href="#trunkrailsvendorgemsflareREADMEtxt">trunk/rails/vendor/gems/flare/README.txt</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflareview_helpercommonrb">trunk/rails/vendor/gems/flare/lib/flare/view_helper/common.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflareview_helperdocumentsrb">trunk/rails/vendor/gems/flare/lib/flare/view_helper/documents.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflarerb">trunk/rails/vendor/gems/flare/lib/flare.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibwill_paginate_link_rendererrb">trunk/rails/vendor/gems/flare/lib/will_paginate_link_renderer.rb</a></li>
<li><a href="#trunkrailsvendorgemsflaretestunitflare_testrb">trunk/rails/vendor/gems/flare/test/unit/flare_test.rb</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkrailsappviewsauthcookies_requiredhtmlerb">trunk/rails/app/views/auth/cookies_required.html.erb</a></li>
<li><a href="#trunkrailslibcookies_requiredrb">trunk/rails/lib/cookies_required.rb</a></li>
<li><a href="#trunkrailslibwill_paginate_link_rendererrb">trunk/rails/lib/will_paginate_link_renderer.rb</a></li>
<li><a href="#trunkrailstestfunctionalcatalog_testrb">trunk/rails/test/functional/catalog_test.rb</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkrailsappcontrollersapplicationrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/controllers/application.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/controllers/application.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/app/controllers/application.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -2,20 +2,12 @@
</span><span class="cx"> # Filters added to this controller apply to all controllers in the application.
</span><span class="cx"> # Likewise, all the methods added will be available for all controllers.
</span><span class="cx"> #
</span><del>-# This controller handles the following:
-# * master layout
-# * authentication
-# * sets @current_user instance variable from session
-#
</del><span class="cx"> class ApplicationController < ActionController::Base
</span><span class="cx">
</span><del>- helper_method :request_is_for_user_resource?
</del><ins>+ helper_method [:request_is_for_user_resource?, :user_logged_in?]
</ins><span class="cx">
</span><del>- before_filter :require_cookies
</del><ins>+ before_filter [:set_current_user, :restrict_user_access]
</ins><span class="cx">
</span><del>- before_filter :set_current_user
- before_filter :restrict_user
-
</del><span class="cx"> helper :all # include all helpers, all the time
</span><span class="cx">
</span><span class="cx"> # See ActionController::RequestForgeryProtection for details
</span><span class="lines">@@ -26,45 +18,35 @@
</span><span class="cx">
</span><span class="cx"> protected
</span><span class="cx">
</span><del>- def require_cookies
- if params[:cookie_check].to_s.empty?
- session[:ok]=true
- redirect_to :controller=>params[:controller], :action=>params[:action], :cookie_check=>true
- else
- if params[:controller]!='messages' and params[:action]!='no_cookies' and ! session[:ok]==true
- redirect_to messages_path(:action=>:no_cookies, :cookie_check=>false)
- end
- end
</del><ins>+ #
+ # Sets the @current_user variable; for use in templates etc.
+ #
+ def set_current_user
+ @current_user=user_logged_in? ? User.find(session[:user_id]) : nil
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><span class="cx"> # Controller and view helper for determining if the current url is a request for a user resource
</span><span class="cx"> #
</span><span class="cx"> def request_is_for_user_resource?
</span><del>- (request.env['PATH_INFO'] =~ /^\/users/)==0
</del><ins>+ request.env['PATH_INFO'] =~ /\/?users\/?/
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><del>- # If a param[:no_layout] is set, don't use a layout
- # otherwise use the "application.html.erb" layout
</del><ins>+ # Checks if the session[:user_id] value is set
+ # if it is, verify that the id is valid
</ins><span class="cx"> #
</span><del>- def choose_layout
- return false unless params[:no_layout].nil?
- 'application'
</del><ins>+ def user_logged_in?
+ return false unless session[:user_id]
+ return User.count(:conditions=>{:id=>session[:user_id]})==1
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><del>- # Sets the @current user instance variable from the session[:user]
- # If the session[:user] is nil or is not real (not in database)
- # then execute the "authorize!" method.
</del><ins>+ # If a param[:no_layout] is set, don't use a layout
+ # otherwise use the "application.html.erb" layout
</ins><span class="cx"> #
</span><del>- def set_current_user
- # get the @current_user from the session - this is the value the views should be using
- @current_user = User.find(session[:uid]) rescue nil
- # ensure the user is value
- if ! @current_user or ! @current_user.is_real?
- authorize!
- end
</del><ins>+ def choose_layout
+ params[:no_layout].nil? ? 'application' : false
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><span class="lines">@@ -74,26 +56,30 @@
</span><span class="cx"> # and the @current_user's id does NOT match the url user id
</span><span class="cx"> # redirect to the catalog page
</span><span class="cx"> #
</span><del>- def restrict_user
- # If the controller is THE "users" controller
- if params[:controller]=='users'
- uid=params[:id]
- # if the controller is a sub user controller (nested)
- elsif params[:controller]=~/^users/
- uid=params[:user_id]
</del><ins>+ def restrict_user_access
+ return unless request_is_for_user_resource?
+
+ # we are now working with a user related resource...
+
+ # if the user is not logged in and the current controller is NOT auth/index
+ # redirect to the auth/index controller
+ if ! user_logged_in? and (params[:controller]!='auth' and params[:action]!='index')
+ redirect_to auth_path
</ins><span class="cx"> end
</span><ins>+
+ #
+ # If the controller is "users" the user id is params[:id]
+ # if the controller is a parent controller of a user (users/1/bookmarks)
+ # then the user id is params[:user_id] - this nested behavior comes from ResourceController:
+ # http://github.com/giraffesoft/resource_controller/tree/master
+ #
+ uid = params[:controller]=='users' ? params[:id] : params[:user_id]
+
</ins><span class="cx"> # redirect if the request user id does not match the session user id and a user resource is being requested
</span><span class="cx"> if @current_user and uid and (uid.to_s != @current_user.id.to_s)
</span><ins>+ # don't allow access to this resource, it doesn't belong to the user...
</ins><span class="cx"> redirect_to catalog_index_path
</span><span class="cx"> end
</span><span class="cx"> end
</span><span class="cx">
</span><del>- #
- # If the current controller is not the "auth" controller,
- # redirect to the "auth/pubcookie" url
- #
- def authorize!
- redirect_to pubcookie_auth_path if params[:controller]=='auth' and params[:controller]=='messages' and params[:action]!='no_cookies'
- end
-
</del><span class="cx"> end
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsappcontrollersauth_controllerrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/controllers/auth_controller.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/controllers/auth_controller.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/app/controllers/auth_controller.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -1,6 +1,21 @@
</span><span class="cx"> class AuthController < ApplicationController
</span><span class="cx">
</span><ins>+ extend CookiesRequired
+ cookies_required do |options, auth_controller_instance|
+ options[:success_redirect_to]=auth_controller_instance.send(:catalog_index_path)
+ end
+
</ins><span class="cx"> #
</span><ins>+ # Authorization requests should be made to /auth instead of /auth/pubcookie
+ # The cookies_required call above handles the cookies requirement logic,
+ # but if /auth/pubcookies is accessed directly, the check might not work as it should
+ # due to Apache taking over the request before this app does.
+ #
+ def index
+ redirect_to :action=>:pubcookie
+ end
+
+ #
</ins><span class="cx"> # PubCookie will only be used to trigger the authentication server once.
</span><span class="cx"> # After the user succesfully logs in, PubCookie will redirect back to the pubcookie action here.
</span><span class="cx"> # Once we get the REMOTE_USER value from PubCookie (Apache)
</span><span class="lines">@@ -9,21 +24,20 @@
</span><span class="cx">
</span><span class="cx"> #
</span><span class="cx"> # Apache should be setup to do a redirect if this controller (/auth/pubcookie) is requested.
</span><del>- # If Apache isn't setup to do the redirect to PubCookie, then use this controller to set
- # A TEST session[:uid] IF we're NOT in production mode.
</del><ins>+ # If not, a temp account will be created
</ins><span class="cx"> #
</span><span class="cx"> def pubcookie
</span><del>- #eos# if RAILS_ENV=='production'
- # The REMOTE_USER value needs to be forwarded in the request from Apache
- #eos# raise 'PubCookie has not been properly setup on this server.' if request.env['HTTP_REMOTE_USER'].to_s.empty?
- else
- #eos#if session[:uid]
- #eos# session[:uid] = nil if (User.count(:conditions=>{:id=>session[:uid]})!=1)
- #eos# end
- user = User.find(session[:uid]) rescue User.create(:login=>'demo_' + User.count.to_s)
- user.update_attribute(:last_login, Time.new)
- session[:uid] = user.id # The ApplicationController will check this value after the redirect
- #eos# end
</del><ins>+ # if the session is already set, use the session user_id
+ user=User.find(session[:user_id]) rescue nil
+ # request coming from PubCookie... get login from REMOTE_USER
+ user=User.find_by_login(request.env['HTTP_REMOTE_USER']) if user.nil?
+ # Create the temp/demo user if the above methods didn't work
+ user=User.create(:login=>'temp_account_' + User.count.to_s) if user.nil?
+ # set the last login date
+ user.update_attribute(:last_login, Time.new)
+ # store the user_id in the session
+ session[:user_id] = user.id
+ # redirect to the catalog!
</ins><span class="cx"> redirect_to catalog_index_path
</span><span class="cx"> end
</span><span class="cx">
</span></span></pre></div>
<a id="trunkrailsappcontrollersusers_controllerrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/controllers/users_controller.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/controllers/users_controller.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/app/controllers/users_controller.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -2,11 +2,14 @@
</span><span class="cx">
</span><span class="cx"> resource_controller
</span><span class="cx">
</span><del>- #before_filter :redirect_to_catalog, :only=>[:index, :edit, :new, :create, :update, :destroy]
</del><ins>+ #
+ # Only allow the "show" view for now
+ #
+ before_filter :redirect_to_catalog, :only=>[:index, :edit, :new, :create, :update, :destroy]
</ins><span class="cx">
</span><del>- #protected
- # def redirect_to_catalog
- # redirect_to catalog_index_path
- # end
</del><ins>+ protected
+ def redirect_to_catalog
+ redirect_to catalog_index_path
+ end
</ins><span class="cx">
</span><span class="cx"> end
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsapphelpersapplication_helperrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/helpers/application_helper.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/helpers/application_helper.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/app/helpers/application_helper.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -13,40 +13,6 @@
</span><span class="cx"> javascript_include_tag(params[:controller]) if File.file?("public/javascripts/#{params[:controller]}.js")
</span><span class="cx"> end
</span><span class="cx">
</span><del>- def zotero_export_url(document)
- #http://blog.reciprocallattice.com/2007/12/add-unapi-support-in-rails-application.html
- end
-
- def delicious_export_url(document)
- base_url="http://del.icio.us/post"
- url=document_resource_url(document['id'])
- title=document['title_display'] ? document['title_display'].join('; ') : document['id']
- "#{base_url}?url=#{url}&title=#{title}"
- end
-
- def refworks_export_url(document)
- #http://refworks.scholarsportal.info/express/ExpressImport.asp
- #http://www.refworks.com/express/expressimport.asp
- # "http://www.refworks.com/express/ExpressImport.asp/?vendor=RefWorks%20Tagged%20Format&url=#{file_url}"
- base_url='http://www.refworks.com/express/ExpressImport.asp'
- file_url = URI.escape(refworks_catalog_url(document['id']))
- group='RWUVirginia'
- vendor='RefWorks%20Tagged%20Format'
- "#{base_url}?g=#{group}&vendor=#{vendor}&url=#{file_url}"
- end
-
- def new_user_bookmark_form_view(user,document)
- if user.bookmarks.find_by_document_id(document['id'])
-                        "This is in your #{link_to('Bookmarks', user_bookmarks_path(user))}"
-                else
-                        render(:partial=>'catalog/new_user_bookmark_form', :locals=>{:user=>user, :document=>document})
-                end
-        end
-
- def refworks_export_link(document)
- link_to image_tag('refworks.gif'), refworks_export_url(document), :target=>'RefWorksMain', :title=>'Export to RefWorks'
- end
-
</del><span class="cx"> def link_for_show_document(document, text='view')
</span><span class="cx"> link_to text, document_resource_path(document['id'])#, current_search_params)
</span><span class="cx"> end
</span></span></pre></div>
<a id="trunkrailsapphelperscatalog_helperrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/helpers/catalog_helper.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/helpers/catalog_helper.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/app/helpers/catalog_helper.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -27,4 +27,54 @@
</span><span class="cx"> UVA::PartialMapper.map!(document)
</span><span class="cx"> end
</span><span class="cx">
</span><ins>+ def zotero_export_url(document)
+ #http://blog.reciprocallattice.com/2007/12/add-unapi-support-in-rails-application.html
+ end
+
+ def delicious_export_url(document)
+ base_url="http://del.icio.us/post"
+ url=document_resource_url(document['id'])
+ title=document['title_display'] ? document['title_display'].join('; ') : document['id']
+ "#{base_url}?url=#{url}&title=#{title}"
+ end
+
+ #
+ # http://www.refworks.com/DirectExport.htm
+ # https://mail.eservices.virginia.edu/owa/redir.aspx?C=bb3bd0657ca5495284d286be26ae4de2&URL=http%3a%2f%2fwiki.helsinki.fi%2fdisplay%2fNelli%2fDirect%2bExport%2bto%2bRefWorks%2bfrom%2bMetaLib
+ # https://mail.eservices.virginia.edu/owa/redir.aspx?C=bb3bd0657ca5495284d286be26ae4de2&URL=http%3a%2f%2fwww.nationallibrary.fi%2flibraries%2flinnea%2fpwebrecon2.html
+ #
+ def refworks_export_url(document)
+ #http://refworks.scholarsportal.info/express/ExpressImport.asp
+ #http://www.refworks.com/express/expressimport.asp
+ # "http://www.refworks.com/express/ExpressImport.asp/?vendor=RefWorks%20Tagged%20Format&url=#{file_url}"
+ base_url='http://www.refworks.com/express/ExpressImport.asp'
+ file_url = URI.escape(refworks_catalog_url(document['id']))
+ group='RWUVirginia'
+ vendor='RefWorks%20Tagged%20Format'
+ "#{base_url}?g=#{group}&vendor=#{vendor}&url=#{file_url}"
+ end
+
+ def refworks_export_link(document)
+ link_to image_tag('refworks.gif'), refworks_export_url(document), :target=>'RefWorksMain', :title=>'Export to RefWorks'
+ end
+
+ def new_user_bookmark_form_view(user,document)
+ if user.bookmarks.find_by_document_id(document['id'])
+                        "This is in your #{link_to('Bookmarks', user_bookmarks_path(user))}"
+                else
+                        render(:partial=>'catalog/new_user_bookmark_form', :locals=>{:user=>user, :document=>document})
+                end
+        end
+
+ def render_partial_view_for_document(document)
+ view_type = partial_type_for_document(document)
+                render(
+                        :partial=>"catalog/_index_partials/#{view_type}",
+                        :locals=>{
+                                :view_type=>view_type,
+                                :document=>document
+                        }
+                )
+        end
+
</ins><span class="cx"> end
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsappviewsauthcookies_requiredhtmlerb"></a>
<div class="addfile"><h4>Added: trunk/rails/app/views/auth/cookies_required.html.erb (0 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/views/auth/cookies_required.html.erb         (rev 0)
+++ trunk/rails/app/views/auth/cookies_required.html.erb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+Cookies are required.
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsappviewscatalog_search_formhtmlerb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/views/catalog/_search_form.html.erb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/views/catalog/_search_form.html.erb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/app/views/catalog/_search_form.html.erb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -22,18 +22,5 @@
</span><span class="cx">                         </span>
</span><span class="cx">                 </span>
</span><span class="cx">         </div>
</span><del>-        
-<%
-=begin
-        <div class="row yui-content yui-skin-sam">
-                <label>&nbsp;</label>
-                <span class="yui-button yui-submit-button">
-                        <span class="first-child">
-                                <button tabindex="0" type="button">New Search</button>
-                        </span>
-                </span>
-        </div>
-=end
-%>
</del><span class="cx">
</span><span class="cx"> </form>
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsappviewscatalogindexhtmlerb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/views/catalog/index.html.erb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/views/catalog/index.html.erb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/app/views/catalog/index.html.erb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -48,17 +48,10 @@
</span><span class="cx">                                 </div>
</span><span class="cx">                         </div>
</span><span class="cx">
</span><del>-                        <% view_type = partial_type_for_document(document) %>
-                        <%= render(
-                                :partial=>"catalog/_index_partials/#{view_type}",
-                                :locals=>{
-                                        :view_type=>view_type,
-                                        :document=>document
-                                }
-                        )%>
-        
</del><ins>+                        <%= render_partial_view_for_document(document) %>
+        
</ins><span class="cx">                 </div>
</span><del>-        
</del><ins>+        
</ins><span class="cx"> <% end %>
</span><span class="cx"> <% end %>
</span><span class="cx"> <% end #end if filters empty? %>
</span></span></pre></div>
<a id="trunkrailsappviewslayoutsapplicationhtmlerb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/views/layouts/application.html.erb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/views/layouts/application.html.erb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/app/views/layouts/application.html.erb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">                 <!--[if IE 7]>
</span><span class="cx">                 <%############= stylesheet_link_tag 'browsers/ie7.css' %>
</span><span class="cx">                 <![endif]-->
</span><del>-         
</del><ins>+
</ins><span class="cx">                 <script>
</span><span class="cx">                         var CURRENT_USER='<%= @current_user ? @current_user.to_json : 'null' %>';
</span><span class="cx">                         var USER_BOOKMARKS_PATH='<%= @current_user ? user_bookmarks_path(@current_user) : 'null' %>';
</span><span class="lines">@@ -51,8 +51,11 @@
</span><span class="cx">                 <%= javascript_include_tag 'jquery-1.2.3.min.js' %>
</span><span class="cx">                 <%= javascript_include_tag 'application' %>
</span><span class="cx">                 
</span><del>-                <%= load_controller_stylesheet %>
-                <%= load_controller_javascript %>
</del><ins>+                <%# not used yet, just some ideas %>
+                <%#= set_javascript_var(:current_user, @current_user.to_json) if @current_user %>
+ <%#= set_javascript_var(:user_bookmarks_path, user_bookmarks_path(@current_user)) if @current_user %>
+                <%#= load_controller_stylesheet %>
+                <%#= load_controller_javascript %>
</ins><span class="cx">                 
</span><span class="cx">         </head>
</span><span class="cx">         
</span></span></pre></div>
<a id="trunkrailsconfigenvironmentrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/config/environment.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/config/environment.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/config/environment.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> end
</span><span class="cx">
</span><span class="cx">
</span><del>-
</del><span class="cx"> Rails::Initializer.run do |config|
</span><span class="cx"> # Settings in config/environments/* take precedence over those specified here.
</span><span class="cx"> # Application configuration should go into files in config/initializers
</span><span class="lines">@@ -71,12 +70,15 @@
</span><span class="cx"> # Make Active Record use UTC-base instead of local time
</span><span class="cx"> # config.active_record.default_timezone = :utc
</span><span class="cx">
</span><del>- require 'blacklight'
- require 'flare'
- Flare.boot!(config)
</del><ins>+ #
+ # Add the "flare" method to ActionController::Base and ActionController::Routing::RouteSet::Mapper
+ #
+ require 'blacklight' # in vendor/gems
+ require 'flare' # in vendor/gems
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> Flare.connection = Solr::Connection.new(SolrUtil.new.config[:url])
</span><span class="cx">
</span><del>-require 'will_paginate'
-require 'taggable_pagination'# in local lib
</del><span class="cx">\ No newline at end of file
</span><ins>+require 'will_paginate' # you *will* paginate! (gem)
+require 'will_paginate_link_renderer' # in local ./lib
+require 'taggable_pagination' # in local ./lib
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsconfigroutesrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/config/routes.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/config/routes.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/config/routes.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -1,5 +1,7 @@
</span><span class="cx"> ActionController::Routing::Routes.draw do |map|
</span><span class="cx">
</span><ins>+ map.auth 'auth', :controller=>'auth', :action=>'index'
+ map.cookies_test 'auth/cookies_test', :controller=>'auth', :action=>'cookies_test'
</ins><span class="cx"> map.pubcookie_auth 'auth/pubcookie', :controller=>'auth', :action=>'pubcookie'
</span><span class="cx">
</span><span class="cx"> # Set the default controller:
</span></span></pre></div>
<a id="trunkrailslibcookies_requiredrb"></a>
<div class="addfile"><h4>Added: trunk/rails/lib/cookies_required.rb (0 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/lib/cookies_required.rb         (rev 0)
+++ trunk/rails/lib/cookies_required.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -0,0 +1,67 @@
</span><ins>+#
+#
+# Be sure to add this to functional tests:
+# * @request.cookies['_session_id'] = 'fake cookie bypasses filter'
+#
+# usage:
+#
+# class MyController < ApplicationController
+# extend CookiesRequired
+# cookies_required
+# end
+#
+module CookiesRequired
+
+ def self.extended(base)
+ base.send :include, InstanceMethods
+ end
+
+ #
+ # Possible options are:
+ # * :controller - the path of the controller running this code (not including action)
+ # * :template - the template to display if the user doesn't have cookies enabled
+ # * :success_redirect_to - if cookies are enabled, redirect to this path
+ # Can also use a block
+ #
+ def cookies_required(options={}, &block)
+ options[:controller]||=self.to_s.sub(/Controller$/, '').underscore
+ options[:template]||=options[:controller] + '/cookies_required'
+ self.before_filter do |controller|
+ controller.instance_variable_set('@cookies_required_options', options)
+ yield options, controller
+ end
+ before_filter :cookies_required!, :except => :cookies_test
+ end
+
+ module InstanceMethods
+
+ #
+ #
+ #
+ def cookies_required!
+ #
+ # config.action_controller.session[:session_key] ???
+ #
+ if request.cookies.to_s.blank?
+ session[:return_to] = request.request_uri
+ redirect_to(:controller => @cookies_required_options[:controller], :action => :cookies_test)
+ return false
+ end
+ end
+
+ #
+ #
+ #
+ def cookies_test
+ if request.cookies.to_s.blank?
+ logger.warn('=== cookies are disabled')
+ render :template => @cookies_required_options[:template]
+ else
+ raise 'Please specify a :success_redirect_to - example -> cookies_required(:success_redirect_to=>"/success.html")' unless @cookies_required_options[:success_redirect_to]
+ redirect_to(*@cookies_required_options[:success_redirect_to])
+ end
+ end
+
+ end
+
+end
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailslibtaggable_paginationrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/lib/taggable_pagination.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/lib/taggable_pagination.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/lib/taggable_pagination.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> def paginate_by_tag(tag, options = {}, find_options = {})
</span><del>- page, per_page, total = wp_parse_options(options)
</del><ins>+ page, per_page, total = wp_parse_options(options)#WillPaginate::Finder::ClassMethods.send(:wp_parse_options, options)
</ins><span class="cx"> offset = (page.to_i - 1) * per_page
</span><span class="cx"> find_options.merge!(:offset => offset, :limit => per_page.to_i)
</span><span class="cx"> items = tag ? find_tagged_with(tag, find_options) : paginate(options)
</span></span></pre></div>
<a id="trunkrailslibuvaz3950rb"></a>
<div class="modfile"><h4>Modified: trunk/rails/lib/uva/z3950.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/lib/uva/z3950.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/lib/uva/z3950.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> require 'rubygems'
</span><span class="cx">
</span><del>-JRUBY_VERSION = 1
</del><ins>+# JRUBY_VERSION = 1
</ins><span class="cx">
</span><span class="cx"> if defined?(JRUBY_VERSION)
</span><span class="cx"> require 'java'
</span><span class="lines">@@ -15,7 +15,7 @@
</span><span class="cx"> require 'java/marc4j.jar'
</span><span class="cx"> require 'java/zclient.jar'
</span><span class="cx"> else
</span><del>- eval "require 'zoom'"
</del><ins>+ require 'zoom'
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> require 'marc'
</span></span></pre></div>
<a id="trunkrailslibwill_paginate_link_rendererrb"></a>
<div class="addfile"><h4>Added: trunk/rails/lib/will_paginate_link_renderer.rb (0 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/lib/will_paginate_link_renderer.rb         (rev 0)
+++ trunk/rails/lib/will_paginate_link_renderer.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+require 'rubygems'
+require 'will_paginate'
+require 'will_paginate/collection'
+require 'will_paginate/view_helpers'
+
+#
+# Override WillPaginate - this inserts commas into large page numbers
+# example: 443719 becomes 443,719
+#
+class WillPaginate::LinkRenderer
+ alias_method :orig_page_link_or_span, :page_link_or_span
+ def page_link_or_span(page, span_class = 'current', text = nil)
+ # format the page number, unless there is first/last page text (the last arg)
+ text ||= @template.number_with_delimiter(page)
+ orig_page_link_or_span(page, span_class, text)
+ end
+end
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailstestfunctionalcatalog_testrb"></a>
<div class="addfile"><h4>Added: trunk/rails/test/functional/catalog_test.rb (0 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/test/functional/catalog_test.rb         (rev 0)
+++ trunk/rails/test/functional/catalog_test.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+require File.dirname(__FILE__) + '/../test_helper'
+
+class CatalogControllerTest < ActionController::TestCase
+
+ def setup()
+ @controller=CatalogController.new
+ @request=ActionController::TestRequest.new
+ @response=ActionController::TestResponse.new
+ end
+
+ # Replace this with your real tests.
+ def test_index
+ get :index
+ assert_response :success
+ end
+
+end
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsblacklightCHANGELOGtxt"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/blacklight/CHANGELOG.txt (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/blacklight/CHANGELOG.txt        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/vendor/gems/blacklight/CHANGELOG.txt        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+0.1.0
+        Simplified dir layout
+        Removed un-used code/files
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsblacklightManifesttxt"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/blacklight/Manifest.txt (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/blacklight/Manifest.txt        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/vendor/gems/blacklight/Manifest.txt        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -4,22 +4,23 @@
</span><span class="cx"> Rakefile
</span><span class="cx"> bin/blacklight
</span><span class="cx"> lib/blacklight.rb
</span><del>-lib/blacklight/bookcover.rb
-lib/blacklight/bookcover/cache.rb
-lib/blacklight/bookcover/source.rb
-lib/blacklight/bookcover/source/amazon.rb
-lib/blacklight/bookcover/source/google.rb
-lib/blacklight/bookcover/source/syndetics.rb
-lib/blacklight/bookcover/utils.rb
-lib/blacklight/demo.rb
-lib/blacklight/demo/uva.rb
-lib/blacklight/demo/uva_001.mrc.utf8.mrc
</del><span class="cx"> lib/blacklight/mapper.rb
</span><ins>+lib/blacklight/marc.rb
</ins><span class="cx"> lib/blacklight/marc/ext.rb
</span><span class="cx"> lib/blacklight/marc/ext/README.txt
</span><span class="cx"> lib/blacklight/marc/ext/record.rb
</span><span class="cx"> lib/blacklight/marc/ext/record/field_045.rb
</span><span class="cx"> lib/blacklight/marc/ext/record/format_type.rb
</span><ins>+lib/blacklight/service.rb
+lib/blacklight/service/review.rb
+lib/blacklight/service/wikipedia.rb
+lib/blacklight/service/bookcover.rb
+lib/blacklight/service/bookcover/cache.rb
+lib/blacklight/service/bookcover/source.rb
+lib/blacklight/service/bookcover/source/amazon.rb
+lib/blacklight/service/bookcover/source/google.rb
+lib/blacklight/service/bookcover/source/syndetics.rb
+lib/blacklight/service/bookcover/utils.rb
</ins><span class="cx"> lib/blacklight/rails.rb
</span><span class="cx"> lib/blacklight/rails/app/controllers
</span><span class="cx"> lib/blacklight/rails/app/models
</span></span></pre></div>
<a id="trunkrailsvendorgemsblacklightlibblacklightrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/blacklight/lib/blacklight.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/blacklight/lib/blacklight.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/vendor/gems/blacklight/lib/blacklight.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -46,14 +46,16 @@
</span><span class="cx">
</span><span class="cx"> end
</span><span class="cx">
</span><ins>+$:.unshift Blacklight.lib_dir
+
</ins><span class="cx"> #
</span><span class="cx"> # These will soon change to autoload
</span><span class="cx"> #
</span><del>-%W(
-marc
-service
-mapper
-rails.rb
-rails/routes.rb
-z3950
-).each {|f|require File.join(Blacklight.lib_dir, 'blacklight', f)}
</del><span class="cx">\ No newline at end of file
</span><ins>+#%W(
+#marc.rb
+#service
+#mapper
+#rails.rb
+#rails/routes.rb
+#z3950
+#).each {|f|require File.join(Blacklight.lib_dir, 'blacklight', f)}
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsflareREADMEtxt"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/README.txt (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/README.txt        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/vendor/gems/flare/README.txt        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> = Flare
</span><span class="cx">
</span><del>-* FIX (url)
</del><ins>+* current repository url: http://blacklight.rubyforge.org/svn/trunk/rails/vendor/gems/flare
</ins><span class="cx">
</span><span class="cx"> == DESCRIPTION:
</span><span class="cx">
</span><span class="lines">@@ -9,19 +9,24 @@
</span><span class="cx"> ==Usage
</span><span class="cx">
</span><span class="cx"> ===Booting
</span><del>-To configure Rails to use Flare's controllers, helpers and views you must call <tt>Flare.boot!</tt>
-in your Rails environment.rb,
</del><ins>+To leverage Flare's raw power in Rails, you must call <tt>Flare.boot!</tt> in your Rails environment.rb:
</ins><span class="cx">
</span><span class="cx"> inside of the "Rails::Initializer.run do |config|" block:
</span><span class="cx"> require 'flare'
</span><span class="cx"> Flare.boot!(rails_config)
</span><span class="cx">
</span><span class="cx"> Booting flare does the following:
</span><del>-* adds Flare's controllers and helpers to Rails' load_path
-* adds Flare's views to ActionController::Base.view_paths
-* adds a new class method named "flare" to ActionController::Base
-* adds a new instance method named "flare" to ActionController::Routing::RouteSet::Mapper
</del><ins>+ * adds a new class method named "flare" to ActionController::Base
+ * adds a new instance method named "flare" to ActionController::Routing::RouteSet::Mapper
</ins><span class="cx">
</span><ins>+===Routing
+In your config/routes.rb file:
+ ActionController::Routing::Routes.draw do |map|
+ map.flare :documents
+ end
+
+That will add the RESTful routes needed to access your controller.
+
</ins><span class="cx"> ===Controllers
</span><span class="cx"> After initializing, the simplest usage would be to create a new controller in your Rails app, and call the "flare" class method.
</span><span class="cx"> Example:
</span><span class="lines">@@ -31,16 +36,6 @@
</span><span class="cx">
</span><span class="cx"> You can pass in configuration options to the <tt>flare</tt> class method also.
</span><span class="cx">
</span><del>-===Routing
-Then in your config/routes.rb file:
- ActionController::Routing::Routes.draw do |map|
- map.flare :documents
- end
-
-That will add the RESTful routes needed to access your controller.
-
---
-
</del><span class="cx"> Be sure you have an instance of Solr running at the default location:
</span><span class="cx"> http://localhost:8983/solr
</span><span class="cx">
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflareview_helpercommonrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare/view_helper/common.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare/view_helper/common.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/vendor/gems/flare/lib/flare/view_helper/common.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -57,7 +57,9 @@
</span><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><del>- # replaces _ with spaces and removes _facet or _text, also removes a starting search_param_negate_char
</del><ins>+ # * replaces _ with spaces
+ # * removes _facet or _text
+ # * removes a starting search_param_negate_char
</ins><span class="cx"> #
</span><span class="cx"> def clean_field(field)
</span><span class="cx"> field.to_s.sub(%r(#{facet_field_suffix}$|#{text_field_suffix}$), '').sub(/^#{search_param_negate_char}/, '')
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflareview_helperdocumentsrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare/view_helper/documents.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare/view_helper/documents.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/vendor/gems/flare/lib/flare/view_helper/documents.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx">
</span><span class="cx"> #
</span><span class="cx"> #
</span><del>- 3
</del><ins>+ #
</ins><span class="cx"> def document_list_view
</span><span class="cx"> render :inline=><<-EOF
</span><span class="cx"> <div id="FlareDocumentList">
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflarerb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/vendor/gems/flare/lib/flare.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -1,39 +1,13 @@
</span><ins>+#
+#
+#
</ins><span class="cx"> module Flare
</span><span class="cx">
</span><del>- VERSION='0.1.1'
</del><ins>+ VERSION='0.1.2'
</ins><span class="cx">
</span><span class="cx"> class << self
</span><span class="cx">
</span><span class="cx"> #
</span><del>- # The Flare installation directory
- #
- attr_reader :base_dir
- def base_dir; @base_dir ||= File.expand_path(File.join(File.dirname(__FILE__), '..')); end
-
- #
- # This directory holds all templates/partials
- #
- attr_reader :views_dir
- def views_dir; @views_dir ||= File.join(base_dir, 'app', 'views'); end
-
- #
- # The main Flare lib directory path
- #
- attr_reader :lib_dir
- def lib_dir; @lib_dir ||= File.join(base_dir, 'lib'); end
-
- #
- # Additional app paths - currently these are used for Rails.config.load_paths
- #
- attr_reader :load_paths
- def load_paths
- @load_paths ||= [
- File.join(base_dir, 'app', 'controllers'),
- File.join(base_dir, 'app', 'helpers')
- ]
- end
-
- #
</del><span class="cx"> # Global connection - if a connection instance was not
</span><span class="cx"> # set within a controller, fallback to this
</span><span class="cx"> #
</span><span class="lines">@@ -47,55 +21,34 @@
</span><span class="cx"> #
</span><span class="cx"> def new(config=nil); Flare::Context.new(config); end
</span><span class="cx">
</span><del>- #
- # For Flare to behave similar to a RailsEngine:
- # in environment.rb, in the config intialize block:
- #
- # require 'flare'
- # Flare.boot!(config)
- #
- # This allows Flare's built-in controllers, views and helpers
- # to be used as defaults, but can be overridden by creating a file in
- # the main application.
- #
- def boot!(rails_config)
- rails_config.load_paths += load_paths
- (rails_config.load_once_paths += load_paths) if RAILS_ENV=='production'
- require 'action_controller_ext.rb'
- rails_config.after_initialize do
- require 'will_paginate_link_renderer.rb'
- ActionController::Base.view_paths << views_dir
- end
- end
-
</del><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> end
</span><span class="cx">
</span><del>-#
-# Add the Flare lib directory to the "$:" <include path>
-#
-$: << File.join(Flare.lib_dir) unless $:.include?(Flare.lib_dir)
</del><ins>+require 'rubygems'
</ins><span class="cx">
</span><del>-#
-# Add solr to the include path
-# then require solr.rb
-#
-proc {|solr_path|
</del><ins>+proc {|base_dir|
+ #
+ # Add the Flare lib directory to the "$:" <include path>
+ #
+ flare_lib=File.join(base_dir, 'lib')
+ $:.unshift flare_lib unless $:.include?(flare_lib)
+
+ # Add solr to the include path
+ $:.unshift File.join(base_dir, 'solr-ruby-0.0.5', 'lib')
</ins><span class="cx"> # Load the Flare-localized trunk version of solr-ruby
</span><del>- $: << solr_path
- require File.join(solr_path, 'solr')
-}.call(File.join(Flare.lib_dir, 'solr-ruby-0.0.5', 'lib' ))
</del><ins>+ require 'solr'
+ #
+ # Load up the ruby-core overrides:
+ # * <tt>Hash#deep_merge</tt>
+ # * <tt>Hash#deep_merge!</tt>
+ # * <tt>Object#deep_clone</tt>
+ #
+ require File.join(base_dir, 'core_ext.rb')
+ require File.join(base_dir, 'action_controller_ext.rb')
+}.call(File.dirname(__FILE__))
</ins><span class="cx">
</span><span class="cx"> #
</span><del>-# Load up the ruby-core overrides:
-# * <tt>Hash#deep_merge</tt>
-# * <tt>Hash#deep_merge!</tt>
-# * <tt>Object#deep_clone</tt>
-#
-require File.join(Flare.lib_dir, 'core_ext.rb')
-
-#
</del><span class="cx"> # load up the main Flare classes / modules
</span><span class="cx"> # Most of these are in the Manifest.txt file
</span><span class="cx"> # For overloading other Gems, etc. load/require in the Flare.boot! "after_initialize" block
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibwill_paginate_link_rendererrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/will_paginate_link_renderer.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/will_paginate_link_renderer.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/vendor/gems/flare/lib/will_paginate_link_renderer.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -1,4 +1,6 @@
</span><ins>+require 'rubygems'
</ins><span class="cx"> require 'will_paginate'
</span><ins>+require 'will_paginate/collection'
</ins><span class="cx"> require 'will_paginate/view_helpers'
</span><span class="cx">
</span><span class="cx"> #
</span></span></pre></div>
<a id="trunkrailsvendorgemsflaretestunitflare_testrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/test/unit/flare_test.rb (588 => 589)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/test/unit/flare_test.rb        2008-06-06 17:52:10 UTC (rev 588)
+++ trunk/rails/vendor/gems/flare/test/unit/flare_test.rb        2008-06-06 18:28:19 UTC (rev 589)
</span><span class="lines">@@ -32,21 +32,7 @@
</span><span class="cx"> assert File.file?(File.join(Flare.lib_dir, 'flare.rb'))
</span><span class="cx"> end
</span><span class="cx">
</span><del>- def test_views_dir
- assert File.directory?(Flare.views_dir)
- end
-
</del><span class="cx"> #
</span><del>- # Currently only "controllers" and view "helpers"
- #
- def test_load_paths
- assert_equal 2, Flare.load_paths.size
- Flare.load_paths.each do |d|
- assert File.directory?(d)
- end
- end
-
- #
</del><span class="cx"> # Ensure the Flare.connection attr is read/write
</span><span class="cx"> #
</span><span class="cx"> def test_connection_attr_is_assignable
</span><span class="lines">@@ -55,20 +41,4 @@
</span><span class="cx"> assert 1, Flare.connection
</span><span class="cx"> end
</span><span class="cx">
</span><del>- #
- # Make sure Rails is getting configured correctly after Flare.boot!
- #
- def test_boot_bang
- rails_config = boot_rails!
- Flare.load_paths.each do |d|
- assert rails_config.load_paths.include?(d)
- end
- # The Flare views dir should not yet be added to Rails
- assert_equal false, ActionController::Base.view_paths.include?(Flare.views_dir)
- # execute the after initialize blocks (See: Rails "initializer.rb" #after_initialize)
- exec_rails_after_initialize_blocks(rails_config)
- # The Flare views dir should now be in Rails views paths
- assert ActionController::Base.view_paths.include?(Flare.views_dir)
- end
-
</del><span class="cx"> end
</span><span class="cx">\ No newline at end of file
</span></span></pre>
</div>
</div>
</body>
</html>