<!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>[596] trunk/rails: Updated Flare : see Flare CHANGELOG</title>
</head>
<body>
<div id="msg">
<dl>
<dt>Revision</dt> <dd>596</dd>
<dt>Author</dt> <dd>mwmitchell</dd>
<dt>Date</dt> <dd>2008-06-10 15:10:33 -0400 (Tue, 10 Jun 2008)</dd>
</dl>
<h3>Log Message</h3>
<pre>Updated Flare : see Flare CHANGELOG</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkrailsappcontrollerscatalog_controllerrb">trunk/rails/app/controllers/catalog_controller.rb</a></li>
<li><a href="#trunkrailsappcontrollersmusic_controllerrb">trunk/rails/app/controllers/music_controller.rb</a></li>
<li><a href="#trunkrailsappviewscatalogindexhtmlerb">trunk/rails/app/views/catalog/index.html.erb</a></li>
<li><a href="#trunkrailsconfigwarblerb">trunk/rails/config/warble.rb</a></li>
<li><a href="#trunkrailslibuvaz3950rb">trunk/rails/lib/uva/z3950.rb</a></li>
<li><a href="#trunkrailsvendorgemsflareManifesttxt">trunk/rails/vendor/gems/flare/Manifest.txt</a></li>
<li><a href="#trunkrailsvendorgemsflareRakefile">trunk/rails/vendor/gems/flare/Rakefile</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflarecontextrb">trunk/rails/vendor/gems/flare/lib/flare/context.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflarecontrollercommonrb">trunk/rails/vendor/gems/flare/lib/flare/controller/common.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflarecontrollerdocumentsrb">trunk/rails/vendor/gems/flare/lib/flare/controller/documents.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflarecontrollerfacetsrb">trunk/rails/vendor/gems/flare/lib/flare/controller/facets.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflaresearchbuilderrb">trunk/rails/vendor/gems/flare/lib/flare/search/builder.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflaresearchparamrb">trunk/rails/vendor/gems/flare/lib/flare/search/param.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflareview_helperdocumentsrb">trunk/rails/vendor/gems/flare/lib/flare/view_helper/documents.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflareview_helperurlrb">trunk/rails/vendor/gems/flare/lib/flare/view_helper/url.rb</a></li>
<li><a href="#trunkrailsvendorgemsflarelibflarerb">trunk/rails/vendor/gems/flare/lib/flare.rb</a></li>
<li><a href="#trunkrailsvendorgemsflaretestunitaction_controller_ext_testrb">trunk/rails/vendor/gems/flare/test/unit/action_controller_ext_test.rb</a></li>
<li><a href="#trunkrailsvendorgemsflaretestunitcontext_testrb">trunk/rails/vendor/gems/flare/test/unit/context_test.rb</a></li>
<li><a href="#trunkrailsvendorgemsflaretestunitflare_testrb">trunk/rails/vendor/gems/flare/test/unit/flare_test.rb</a></li>
<li><a href="#trunkrailsvendorgemsflaretestunitsearch_builder_testrb">trunk/rails/vendor/gems/flare/test/unit/search_builder_test.rb</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkrailsvendorgemsflareCHANGELOG">trunk/rails/vendor/gems/flare/CHANGELOG</a></li>
<li><a href="#trunkrailsvendorgemsflareREADME">trunk/rails/vendor/gems/flare/README</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkrailstestfunctionalcatalog_testrb">trunk/rails/test/functional/catalog_test.rb</a></li>
<li><a href="#trunkrailsvendorgemsflareCHANGELOGtxt">trunk/rails/vendor/gems/flare/CHANGELOG.txt</a></li>
<li><a href="#trunkrailsvendorgemsflareREADMEtxt">trunk/rails/vendor/gems/flare/README.txt</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="#trunkrailsvendorgemsflaretestunitwill_paginate_link_renderer_testrb">trunk/rails/vendor/gems/flare/test/unit/will_paginate_link_renderer_test.rb</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkrailsappcontrollerscatalog_controllerrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/controllers/catalog_controller.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/controllers/catalog_controller.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/app/controllers/catalog_controller.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -19,7 +19,7 @@
</span><span class="cx"> datafile_name_display format_facet location_facet
</span><span class="cx"> call_number_display isbn_display source_facet content_model_facet
</span><span class="cx"> )
</span><del>- req[:sort] = [{:id=>:descending}] if @flare.q_params.size==0
</del><ins>+ req[:sort] = [{:score=>:descending}, {:id=>:descending}]
</ins><span class="cx"> end
</span><span class="cx"> end
</span><span class="cx">
</span></span></pre></div>
<a id="trunkrailsappcontrollersmusic_controllerrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/controllers/music_controller.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/controllers/music_controller.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/app/controllers/music_controller.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -9,7 +9,7 @@
</span><span class="cx">
</span><span class="cx"> def documents_for_index
</span><span class="cx"> @flare.search(params[page_param]) do |req|
</span><del>- req[:sort] = [{:id=>:descending}] if @flare.q_params.size==0
</del><ins>+ req[:sort] = [{:score=>:descending}, {:id=>:descending}]
</ins><span class="cx"> end
</span><span class="cx"> end
</span><span class="cx">
</span></span></pre></div>
<a id="trunkrailsappviewscatalogindexhtmlerb"></a>
<div class="modfile"><h4>Modified: trunk/rails/app/views/catalog/index.html.erb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/app/views/catalog/index.html.erb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/app/views/catalog/index.html.erb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -32,8 +32,6 @@
</span><span class="cx">                 <%= render :partial=>'catalog/suggestions' %>
</span><span class="cx">         <% else %>
</span><span class="cx">         
</span><del>-        <% #Pagination %>
-        
</del><span class="cx">         <%= will_paginate @documents %>
</span><span class="cx">         
</span><span class="cx"> <% @documents.each do |document| %>
</span></span></pre></div>
<a id="trunkrailsconfigwarblerb"></a>
<div class="modfile"><h4>Modified: trunk/rails/config/warble.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/config/warble.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/config/warble.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> # config.gems << "tzinfo"
</span><span class="cx"> # config.gems["rails"] = "1.2.3"
</span><span class="cx">
</span><del>- config.gems = ['rails', 'will_paginate', 'marc', 'jruby-openssl', 'linguistics']
</del><ins>+ config.gems = ['rails', 'marc', 'jruby-openssl', 'linguistics']
</ins><span class="cx">
</span><span class="cx"> # Include gem dependencies not mentioned specifically
</span><span class="cx"> config.gem_dependencies = true
</span></span></pre></div>
<a id="trunkrailslibuvaz3950rb"></a>
<div class="modfile"><h4>Modified: trunk/rails/lib/uva/z3950.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/lib/uva/z3950.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/lib/uva/z3950.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> if defined?(JRUBY_VERSION)
</span><span class="cx"> zclient = Java::ZClient.new
</span><span class="cx"> result = zclient.openConnection(CONNECTION_PARAMS[0], CONNECTION_PARAMS[1])
</span><del>- if (result)
</del><ins>+ if (result)
</ins><span class="cx"> zclient.cmdBase(CONNECTION_PARAMS[2])
</span><span class="cx"> zclient.cmdElements("F")
</span><span class="cx"> zclient.cmdFormat("usmarc")
</span><span class="lines">@@ -82,10 +82,14 @@
</span><span class="cx">         raise Z3950ConnectionError
</span><span class="cx"> end
</span><span class="cx"> else
</span><del>- connect {|c| c.search("@attr 1=1016 ^C#{ckey}") }
</del><ins>+ begin
+ connect {|c| c.search("@attr 1=1016 ^C#{ckey}") }
+ rescue RuntimeError
+ raise Z3950ConnectionError
+ end
</ins><span class="cx"> end
</span><span class="cx"> end
</span><del>-
</del><ins>+
</ins><span class="cx"> ###############################
</span><span class="cx">
</span><span class="cx"> def fetch_all_items(method, id)
</span></span></pre></div>
<a id="trunkrailstestfunctionalcatalog_testrb"></a>
<div class="delfile"><h4>Deleted: trunk/rails/test/functional/catalog_test.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/test/functional/catalog_test.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/test/functional/catalog_test.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-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
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsflareCHANGELOG"></a>
<div class="addfile"><h4>Added: trunk/rails/vendor/gems/flare/CHANGELOG (0 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/CHANGELOG         (rev 0)
+++ trunk/rails/vendor/gems/flare/CHANGELOG        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+= 0.1.1
+ * simplified Flare::Search::Builder
+ * added Flare::Search::Param::Collection
+ * updated tests
+ * removed will_paginate extensions - submitted patch to will_paginate @ github
+
+= 0.1.1
+ * Lots more tests!
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsflareCHANGELOGtxt"></a>
<div class="delfile"><h4>Deleted: trunk/rails/vendor/gems/flare/CHANGELOG.txt (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/CHANGELOG.txt        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/CHANGELOG.txt        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -1,2 +0,0 @@
</span><del>-= 0.1.1
- * Lots more tests!
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsflareManifesttxt"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/Manifest.txt (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/Manifest.txt        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/Manifest.txt        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -1,5 +1,4 @@
</span><del>-History.txt
-README.txt
</del><ins>+README
</ins><span class="cx"> doc
</span><span class="cx"> bin/flare
</span><span class="cx"> lib/action_controller_ext.rb
</span><span class="lines">@@ -20,7 +19,6 @@
</span><span class="cx"> lib/flare/view_helper/documents.rb
</span><span class="cx"> lib/flare/view_helper/facets.rb
</span><span class="cx"> lib/flare/view_helper/url.rb
</span><del>-lib/will_paginate_link_renderer.rb
</del><span class="cx"> lib/solr-ruby-rails-0.0.5/LICENSE.txt
</span><span class="cx"> lib/solr-ruby-rails-0.0.5/README
</span><span class="cx"> lib/solr-ruby-rails-0.0.5/init.rb
</span></span></pre></div>
<a id="trunkrailsvendorgemsflareREADME"></a>
<div class="addfile"><h4>Added: trunk/rails/vendor/gems/flare/README (0 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/README         (rev 0)
+++ trunk/rails/vendor/gems/flare/README        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -0,0 +1,70 @@
</span><ins>+= Flare
+
+* current repository url: http://blacklight.rubyforge.org/svn/trunk/rails/vendor/gems/flare
+
+== DESCRIPTION:
+
+Flare promises to expose the power of Solr through a Rails-based user interface. Integral to Flare will be a general purpose faceted browsing, auto-suggest, folksonomy tagging/annotating, smart folders, Atom support, and much more. Flare communicates with Solr via the solr-ruby library.
+
+==Usage
+
+ f = Flare::Context.new(:connection=>'http://localhost:8983/solr', :query_type=>:standard)
+ f.add_param 'stockholm' # adds a Solr 'q' param
+ f.add_param 'location_facet', 'Alderman Stacks' # adds a Solr 'fq' param
+ results = f.search(current_page=1) do |config|
+ config[:rows]=10
+ end
+
+==Rails
+
+Flare extends ActionController in the following ways:
+ * adds a new class method named "flare" to ActionController::Base
+ * adds a new instance method named "flare" to ActionController::Routing::RouteSet::Mapper
+
+===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.
+
+===Controllers
+Create a new controller in your Rails app, and call the "flare" class method.
+Example:
+ class DocumentsController < ApplicationController
+ flare :documents
+ end
+
+You can pass in configuration options to the <tt>flare</tt> class method also:
+ class DocumentsController < ApplicationController
+ flare :documents do |config|
+ config[:search_params][:rows]=10
+ end
+ end
+
+The :documents symbol indicates that you want the controller to search results as a resource. The other option is :facet, which allows the viewing a collection of facets or a single facets values. For example, you could setup a facets controller using:
+
+ class Documents::FacetsController < ApplicationController
+ flare :facets
+ end
+
+Be sure you have an instance of Solr running at the default location:
+ http://localhost:8983/solr
+
+Start your Rails app and go to:
+ http://localhost:3000/documents
+
+== LICENSE:
+
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsflareREADMEtxt"></a>
<div class="delfile"><h4>Deleted: trunk/rails/vendor/gems/flare/README.txt (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/README.txt        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/README.txt        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-= Flare
-
-* current repository url: http://blacklight.rubyforge.org/svn/trunk/rails/vendor/gems/flare
-
-== DESCRIPTION:
-
-Using Solr and Rails, Flare builds views and queries needed for faceted browsing and searching
-
-==Usage
-
-===Booting
-To leverage Flare's raw power in Rails, you must call <tt>Flare.boot!</tt> in your Rails environment.rb:
-
-inside of the "Rails::Initializer.run do |config|" block:
- require 'flare'
- Flare.boot!(rails_config)
-
-Booting flare does the following:
- * adds a new class method named "flare" to ActionController::Base
- * adds a new instance method named "flare" to ActionController::Routing::RouteSet::Mapper
-
-===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.
-
-===Controllers
-After initializing, the simplest usage would be to create a new controller in your Rails app, and call the "flare" class method.
-Example:
- class DocumentsController < ApplicationController
- flare
- end
-
-You can pass in configuration options to the <tt>flare</tt> class method also.
-
-Be sure you have an instance of Solr running at the default location:
- http://localhost:8983/solr
-
-Start your Rails app and go to:
- http://localhost:3000/documents
-
-== LICENSE:
-
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsflareRakefile"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/Rakefile (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/Rakefile        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/Rakefile        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -10,14 +10,14 @@
</span><span class="cx"> p.rubyforge_name = 'flare' # if different than lowercase project name
</span><span class="cx"> p.developer('Matt Mitchell', 'goodieboy@gmail.com')
</span><span class="cx"> p.name = "flare"
</span><del>- p.author = "Erik Hatcher, Matt Mitchell"
</del><ins>+ p.authors = ['Erik Hatcher', 'Matt Mitchell']
</ins><span class="cx"> p.description = "A Ruby Gem that promises to expose the power of Solr through a web UI"
</span><span class="cx"> p.email = 'goodieboy@gmail.com'
</span><span class="cx"> p.summary = "Using Solr and Rails, Flare builds views and queries needed for faceted browsing and searching"
</span><span class="cx"> p.url = "http://wiki.apache.org/solr/Flare"
</span><del>- p.clean_globs = ['test/actual'] # Remove this directory on "rake clean"
</del><ins>+ #p.clean_globs = ['test/actual'] # Remove this directory on "rake clean"
</ins><span class="cx"> p.remote_rdoc_dir = '' # Release to root
</span><del>- p.changes = p.paragraphs_of('CHANGELOG.txt', 0..1).join("\n\n")
</del><ins>+ p.changes = p.paragraphs_of('CHANGELOG', 0..1).join("\n\n")
</ins><span class="cx"> end
</span><span class="cx"> end
</span><span class="cx">
</span><span class="lines">@@ -42,11 +42,11 @@
</span><span class="cx">
</span><span class="cx"> desc 'Generate RDoc documentation for the flare plugin.'
</span><span class="cx"> Rake::RDocTask.new(:rdoc) do |rdoc|
</span><del>- files = ['README.txt', 'CHANGELOG.txt']
</del><ins>+ files = ['README', 'CHANGELOG']
</ins><span class="cx"> files << FileList.new('lib/**/*.rb').exclude('lib/solr*')
</span><span class="cx">
</span><span class="cx"> rdoc.rdoc_files.add(files)
</span><del>- rdoc.main = "README.txt" # page to start on
</del><ins>+ rdoc.main = "README" # page to start on
</ins><span class="cx"> rdoc.title = "flare documentation"
</span><span class="cx">
</span><span class="cx"> rdoc.rdoc_dir = 'doc' # rdoc output folder
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflarecontextrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare/context.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare/context.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/lib/flare/context.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -1,11 +1,9 @@
</span><span class="cx"> =begin rdoc
</span><span class="cx"> = Flare::Context
</span><span class="cx">
</span><del>-This class is the main interface for the Flare library. Think of Flare::Context as a data model (ActiveRecord without write)
-
</del><span class="cx"> * connection to Solr
</span><span class="cx"> * holds the configuration
</span><del>- * manages query building through convenience methods
</del><ins>+ * manages query building
</ins><span class="cx">
</span><span class="cx"> --
</span><span class="cx">
</span><span class="lines">@@ -19,6 +17,8 @@
</span><span class="cx">
</span><span class="cx"> Use string as :connection and use the standard query type
</span><span class="cx"> f = Flare::Context.new(:connection=>'http://localhost:8983/solr', :query_type=>:standard)
</span><ins>+ f.add_param 'stockholm' # adds a Solr 'q' param
+ f.add_param 'location_facet', 'Alderman Stacks' # adds a Solr 'fq' param
</ins><span class="cx"> results = f.search(current_page=1) do |config|
</span><span class="cx"> config[:rows]=10
</span><span class="cx"> end
</span><span class="lines">@@ -30,15 +30,15 @@
</span><span class="cx">
</span><span class="cx"> Create new instance, using default connection (http://localhost:8983/solr) and standard query type
</span><span class="cx"> f = Flare::Context.new(:type=>:standard)
</span><del>- f.add_query('Maurice Sendak')
- f.add_filter('format_facet', 'Book')
</del><ins>+ f.add_query_param('Maurice Sendak')
+ f.add_filter_param('format_facet', 'Book')
</ins><span class="cx">
</span><span class="cx"> === Query Type Methods
</span><span class="cx">
</span><del>-There are two main ways to filter/query using Flare::Context; add_q_param and add_f_param
-<tt>add_q_param</tt> adds a simple value to the "q" param that gets sent to Solr
-<tt>add_f_param</tt> adds a value to the "fq" param that gets sent to Solr
-<tt>add_param</tt> will call either of the previous methods based on the arguments passed in
</del><ins>+There are two main ways to filter/query using Flare::Context; add_query_param and add_filter_param
+ * <tt>add_query_param</tt> adds a value to the "q" param that gets sent to Solr
+ * <tt>add_filter_param</tt> adds a value to the "fq" param that gets sent to Solr
+ * <tt>add_param</tt> will call either of the previous methods based on the arguments passed in
</ins><span class="cx">
</span><span class="cx"> =end
</span><span class="cx">
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> # An optional block can be used to customize the request
</span><span class="cx"> # params passed to Solr
</span><span class="cx"> #
</span><del>- def suggestions(term=q_query, &block)
</del><ins>+ def find_suggestions(term=q_query, &block)
</ins><span class="cx"> request = default_spellcheck_params
</span><span class="cx"> request[:query]=term
</span><span class="cx"> yield request if block_given?
</span><span class="lines">@@ -121,7 +121,7 @@
</span><span class="cx"> #
</span><span class="cx"> # Find the first suggestion that isn't in the current text filter set
</span><span class="cx"> #
</span><del>- def first_suggestion(term=text_query, &block)
</del><ins>+ def find_first_suggestion(term=text_query, &block)
</ins><span class="cx"> suggestions(term, &block).detect {|v| text_filters.any?{|tf|tf.value!=v} }
</span><span class="cx"> end
</span><span class="cx">
</span><span class="lines">@@ -152,40 +152,39 @@
</span><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><del>- # Fetch one facet based on the facet name
</del><ins>+ # Fetch one facet (Flare::Facet::Base) based on the facet name
</ins><span class="cx"> #
</span><del>- def facet(field, &block)
- #field = "#{field}#{Flare::Search::Param::FacetFilter.field_suffix}"
- request = default_facet_params.deep_merge(@config[:facet_params]).deep_merge(build_request_for_facet_values(field))
</del><ins>+ def find_facet_by_name(field, &block)
+ request = default_facet_params.deep_merge(@config[:facet_params]).deep_merge(build_request_for_find_facet_by_name(field))
</ins><span class="cx"> yield request if block_given?
</span><span class="cx"> Flare::Facet::Base.new(field, request, @config)
</span><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><del>- # Fetch all facets and returns hash where keys are the facet names
</del><ins>+ # Fetch all facets (collection of Flare::Facet::Base) and returns hash where keys are the facet names
</ins><span class="cx"> #
</span><del>- def facets(&block)
- facet_fields.inject({}) { |f| {f=>facet(f, &block)} }
</del><ins>+ def find_all_facets(&block)
+ find_all_facet_fields.inject({}) { |f| {f=>find_facet_by_name(f, &block)} }
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><span class="cx"> # Returns a list of all facet fields (*_facet) in the index
</span><span class="cx"> #
</span><del>- def facet_fields
- fields_by_suffix Flare::Search::Param::FacetFilter.field_suffix
</del><ins>+ def find_all_facet_fields
+ find_fields_by_suffix Flare::Search::Param::FacetFilter.field_suffix
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><span class="cx"> # Returns a list of all field names (*_text) in the index
</span><span class="cx"> #
</span><del>- def text_fields
- fields_by_suffix Flare::Search::Param::TextFilter.field_suffix
</del><ins>+ def find_all_text_fields
+ find_fields_by_suffix Flare::Search::Param::TextFilter.field_suffix
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><span class="cx"> # Returns a list of all field names (*_<suffix>) in the index
</span><span class="cx"> #
</span><del>- def fields_by_suffix(suffix)
</del><ins>+ def find_fields_by_suffix(suffix)
</ins><span class="cx"> index_info.field_names.collect do |v|
</span><span class="cx"> v =~ %r(#{suffix}$) ? v.sub(%r(#{suffix}$),'') : nil
</span><span class="cx"> end.compact
</span><span class="lines">@@ -207,13 +206,13 @@
</span><span class="cx"> #
</span><span class="cx"> def build_request_for_search
</span><span class="cx"> p = {
</span><del>- :query=>q_queries,
- :filter_queries=>f_queries,
</del><ins>+ :query=>query_params.generate_queries,
+ :filter_queries=>filter_params.generate_queries,
</ins><span class="cx"> :facets=>{
</span><del>- :queries=>[query]
</del><ins>+ :queries=>[params.generate_query]
</ins><span class="cx"> }
</span><span class="cx"> }
</span><del>- # Remove the query, so a previously set/default query will persist
</del><ins>+ # Remove the query, so a previously set/default query will persist when being deep_merged
</ins><span class="cx"> p.delete :query if p[:query].empty?
</span><span class="cx"> return p
</span><span class="cx"> end
</span><span class="lines">@@ -221,10 +220,10 @@
</span><span class="cx"> #
</span><span class="cx"> # This method sets the fields needed to fetch a list of values for a given facet.
</span><span class="cx"> #
</span><del>- def build_request_for_facet_values(field)
</del><ins>+ def build_request_for_find_facet_by_name(field)
</ins><span class="cx"> {
</span><del>- :query=>q_queries,
- :filter_queries => f_queries,
</del><ins>+ :query=>query_params.generate_queries,
+ :filter_queries => filter_params.generate_queries,
</ins><span class="cx"> :facets => {
</span><span class="cx"> :fields => [field]
</span><span class="cx"> }
</span><span class="lines">@@ -270,7 +269,7 @@
</span><span class="cx"> #
</span><span class="cx"> # Pass in the page number and a hash to be modified
</span><span class="cx"> # Sets the :start value in the "request" hash
</span><del>- # - The "request" argument will have it's :start value set
</del><ins>+ # * The "request" argument will have it's :start value set
</ins><span class="cx"> # based on the "page" arg and the "request" args :rows value
</span><span class="cx"> #
</span><span class="cx"> def calculate_start!(page, request)
</span><span class="lines">@@ -281,6 +280,7 @@
</span><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><ins>+ # Note: yuk!
</ins><span class="cx"> # "type" can be a string or symbol.
</span><span class="cx"> # If value is standard or dismax,
</span><span class="cx"> # Flare will use Solr Rubys built-in Standard or Dismax request and response classes.
</span><span class="lines">@@ -290,7 +290,7 @@
</span><span class="cx"> #
</span><span class="cx"> def resolve_query_type(type)
</span><span class="cx"> # Default to Solr::Request::Standard
</span><del>- return Solr::Request::Standard if type.nil? or type.to_s=='standard'
</del><ins>+ return Solr::Request::Standard if type.to_s.empty? or type.to_s=='standard'
</ins><span class="cx"> # if type == :dismax, return Solr::Request::Dismax
</span><span class="cx"> return Solr::Request::Dismax if type.to_s=='dismax'
</span><span class="cx"> # Return if type unless type is a string/symbol
</span><span class="lines">@@ -311,11 +311,10 @@
</span><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><ins>+ # solr-ruby requires a matching response class
</ins><span class="cx"> # Must extend Solr::Response::Dismax to get total_hits method for pagination etc..
</span><span class="cx"> #
</span><del>- class #{class_prefix}Response < Solr::Response::Dismax
-
- end
</del><ins>+ class #{class_prefix}Response < Solr::Response::Dismax; end
</ins><span class="cx"> EOF
</span><span class="cx"> Kernel.eval "#{class_prefix}Request"
</span><span class="cx"> end
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflarecontrollercommonrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare/controller/common.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare/controller/common.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/lib/flare/controller/common.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -162,8 +162,8 @@
</span><span class="cx"> # Pushes the current URL queries/filters into Flare
</span><span class="cx"> #
</span><span class="cx"> def import_params
</span><del>- @flare.import_q_params q_params
- @flare.import_f_params f_params
</del><ins>+ @flare.import_query_params q_params
+ @flare.import_filter_params f_params
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> end
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflarecontrollerdocumentsrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare/controller/documents.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare/controller/documents.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/lib/flare/controller/documents.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> # Fetches the suggestions from the spellchecker depending on the "min_count_for_suggestions"
</span><span class="cx"> #
</span><span class="cx"> def suggestions_for_index
</span><del>- @flare.suggestions if @documents.total_hits <= min_count_for_suggestions
</del><ins>+ @flare.find_suggestions if @documents.total_hits <= min_count_for_suggestions
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflarecontrollerfacetsrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare/controller/facets.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare/controller/facets.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/lib/flare/controller/facets.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> # Fetches all facet fields
</span><span class="cx"> #
</span><span class="cx"> def facets_for_index
</span><del>- @flare.facet_fields
</del><ins>+ @flare.find_facet_fields
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> # would fetch the author_facet field and it's values
</span><span class="cx"> #
</span><span class="cx"> def facet_for_show
</span><del>- @flare.facet("#{params[:id]}_facet") do |config|
</del><ins>+ @flare.find_facet_by_name("#{params[:id]}_facet") do |config|
</ins><span class="cx"> config[:facets][:limit]=11
</span><span class="cx"> config[:facets][:missing]=false
</span><span class="cx"> end
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflaresearchbuilderrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare/search/builder.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare/search/builder.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/lib/flare/search/builder.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -1,65 +1,79 @@
</span><span class="cx"> #
</span><del>-# query and filter params
-# Provides methods for building various queries required by Solr
</del><ins>+# query/filter params
+#
+# Provides methods for building search queries consumable by Solr
</ins><span class="cx"> #
</span><span class="cx"> module Flare::Search::Builder
</span><span class="cx">
</span><del>- def self.included(base)
- base.class_eval do
- def operator
- ' AND '
- end
- end
</del><ins>+ #
+ # Resets @query_params and @filter_params
+ #
+ def init_params
+ @query_params = Flare::Search::Param::Collection.new
+ @filter_params = Flare::Search::Param::Collection.new
</ins><span class="cx"> end
</span><span class="cx">
</span><del>- def init_params; @q_params = []; @f_params = []; end
-
- def q_params
- @q_params ||= []
</del><ins>+ #
+ # query_params map to the Solr param "q"
+ #
+ def query_params
+ @query_params ||= Flare::Search::Param::Collection.new
</ins><span class="cx"> end
</span><span class="cx">
</span><del>- def f_params
- @f_params ||= []
</del><ins>+ #
+ # filter_params map to the Solr param "fq"
+ #
+ def filter_params
+ @filter_params ||= Flare::Search::Param::Collection.new
</ins><span class="cx"> end
</span><span class="cx">
</span><ins>+ #
+ # Combines all params as one Collection
+ #
</ins><span class="cx"> def params
</span><del>- f_params + q_params
</del><ins>+ Flare::Search::Param::Collection.new(filter_params + query_params)
</ins><span class="cx"> end
</span><span class="cx">
</span><ins>+ #
+ # Returns the total number of params
+ #
</ins><span class="cx"> def total_params
</span><span class="cx"> params.size
</span><span class="cx"> end
</span><span class="cx">
</span><ins>+ #
+ # Checks all params (+params+) using empty?
+ #
</ins><span class="cx"> def has_params?
</span><span class="cx"> ! params.empty?
</span><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><del>- # Imports f params from a hash
</del><ins>+ # Imports filter params from a hash
</ins><span class="cx"> #
</span><del>- def import_f_params(hash)
</del><ins>+ def import_filter_params(hash)
</ins><span class="cx"> return false unless hash.respond_to?(:each_pair)
</span><span class="cx"> hash.each_pair do |field,values|
</span><span class="cx"> # values of main param should NOT be keyed: f[field][]=value
</span><span class="cx"> raise "Facet param not an array!" if ! values.is_a? Array
</span><span class="cx"> values.each do |value|
</span><del>- add_f_param(field, value.sub(/^-/, ''), value[0,1]==Flare::Search::Param::Base.negate_char)
</del><ins>+ add_filter_param(field, value.sub(/^-/, ''), value[0,1]==Flare::Search::Param::Base.negate_char)
</ins><span class="cx"> end
</span><span class="cx"> end
</span><span class="cx"> end
</span><del>-
</del><ins>+
</ins><span class="cx"> #
</span><del>- # Imports q params from an array
</del><ins>+ # Imports query params from an array
</ins><span class="cx"> #
</span><del>- def import_q_params(array)
</del><ins>+ def import_query_params(array)
</ins><span class="cx"> return false unless array.respond_to?(:each)
</span><span class="cx"> array.each do |value|
</span><span class="cx"> ## values of main param should NOT be keyed: q[]=value
</span><span class="cx"> raise "Text param not string!" if ! value.is_a? String
</span><del>- add_q_param(value.sub(/^-/, ''), value[0,1]==Flare::Search::Param::Base.negate_char)
</del><ins>+ add_query_param(value.sub(/^-/, ''), value[0,1]==Flare::Search::Param::Base.negate_char)
</ins><span class="cx"> end
</span><span class="cx"> end
</span><del>-
</del><ins>+
</ins><span class="cx"> #
</span><span class="cx"> # Can use for facet params or text params.
</span><span class="cx"> # If the second argument is a string, it is assumed to be a facet f.
</span><span class="lines">@@ -69,70 +83,30 @@
</span><span class="cx"> # qb.add_param('this is a NEGATIVE text search', true)
</span><span class="cx"> #
</span><span class="cx"> def add_param(*args)
</span><del>- (args.size > 1 and args[1].is_a? String) ? add_f_param(*args) : add_q_param(*args)
</del><ins>+ (args.size > 1 and args[1].is_a? String) ? add_filter_param(*args) : add_query_param(*args)
</ins><span class="cx"> end
</span><del>-
</del><ins>+
</ins><span class="cx"> #
</span><del>- # Added a standard q value
</del><ins>+ # Add a standard "q" value
</ins><span class="cx"> #
</span><del>- def add_q_param(text, negate=false)
</del><ins>+ def add_query_param(text, negate=false)
</ins><span class="cx"> text=text.to_s.strip
</span><del>- q_params << Flare::Search::Param::Query.new(text, negate) unless text.to_s.empty?
</del><ins>+ query_params << Flare::Search::Param::Query.new(text, negate) unless text.to_s.empty?
</ins><span class="cx"> end
</span><del>-
</del><ins>+
</ins><span class="cx"> #
</span><del>- # Added facet constraint
</del><ins>+ # Add a "fq" value
</ins><span class="cx"> #
</span><del>- def add_f_param(field, text, negate=false)
</del><ins>+ def add_filter_param(field, text, negate=false)
</ins><span class="cx"> field=field.to_s.strip
</span><del>- f_params << Flare::Search::Param::Filter.new(field, text, negate) unless field.to_s.empty?
</del><ins>+ filter_params << Flare::Search::Param::Filter.new(field, text, negate) unless field.to_s.empty?
</ins><span class="cx"> end
</span><del>-
</del><ins>+
</ins><span class="cx"> #
</span><del>- # Generates filters/f and queries/q together as one string
</del><ins>+ # Returns the "q" query for highlighting
</ins><span class="cx"> #
</span><del>- def query
- queries.join(self.operator)
</del><ins>+ def hl_query
+ query_params.generate_query
</ins><span class="cx"> end
</span><del>-
- #
- # Generates filters/f and queries/q query strings in an array
- #
- def queries
- f_queries + q_queries
- end
-
- #
- # String made from all query/q strings
- #
- def q_query
- q_queries.join(self.operator)
- end
-
- #
- # Array of flattened query/q strings
- #
- def q_queries
- q_params.collect {|q|q.to_query}
- end
-
- #
- # String made from all facet params
- #
- def f_query
- f_queries.join(self.operator)
- end
-
- #
- # Array of filter/f strings
- #
- def f_queries
- f_params.collect {|f|f.to_query}
- end
-
- #
- # Returns the complete text f query for highlighting
- #
- def hl_query; q_query; end
-
</del><ins>+
</ins><span class="cx"> end
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflaresearchparamrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare/search/param.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare/search/param.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/lib/flare/search/param.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -3,6 +3,18 @@
</span><span class="cx"> #
</span><span class="cx"> module Flare::Search::Param
</span><span class="cx">
</span><ins>+ class Collection < Array
+
+ def generate_query(operator=' AND ')
+ generate_queries.join(operator)
+ end
+
+ def generate_queries
+ collect{|p|p.to_query}
+ end
+
+ end
+
</ins><span class="cx"> #
</span><span class="cx"> # The base param class.
</span><span class="cx"> # Example:
</span><span class="lines">@@ -51,23 +63,6 @@
</span><span class="cx"> #
</span><span class="cx"> def negate_char; self.class.negate_char; end
</span><span class="cx">
</span><del>- #
- # Escapes all Lucene special characters:
- # http://lucene.apache.org/java/docs/queryparsersyntax.html#Escaping%20Special%20Characters
- # Probably better to just use the DisMax handler?
- #
- # THIS IS CURRENTLY NOT USED ANYWHERE IN FLARE
- #
- def self.escape(value)
- chars = ['\+', '\-', '\&', '\|', '\!', '\(', '\)', '\{', '\}', '\[', '\]', '\^', '\"', '\~', '\*', '\?', '\\\\', '\:']
- value.gsub(/#{chars.join('|')}/) { |match| '\\' + match }
- end
-
- #
- # Instance method proxy to class method
- #
- def escape(value); self.class.escape(value); end
-
</del><span class="cx"> end# end Flare::Request::Param::Base
</span><span class="cx">
</span><span class="cx">
</span><span class="lines">@@ -124,18 +119,14 @@
</span><span class="cx"> # Preset, dynamic "_facet" field, filter param
</span><span class="cx"> #
</span><span class="cx"> class FacetFilter < Filter
</span><del>- def self.field_suffix
- '_facet'
- end
</del><ins>+ def self.field_suffix; '_facet'; end
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> #
</span><span class="cx"> # Preset, dynamic "_text" field, filter param
</span><span class="cx"> #
</span><span class="cx"> class TextFilter < Filter
</span><del>- def self.field_suffix
- '_text'
- end
</del><ins>+ def self.field_suffix; '_text'; end
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> end
</span><span class="cx">\ No newline at end of file
</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 (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare/view_helper/documents.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/lib/flare/view_helper/documents.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx"> t = <<-EOF
</span><span class="cx"> <h5>Applied Filters:</h5>
</span><span class="cx"> <ul>
</span><del>- <% @flare.f_params.each do |f| %>
</del><ins>+ <% @flare.filter_params.each do |f| %>
</ins><span class="cx"> <li><%= field_to_label(f.field) %>: <%= f.value %> <%= negate_search_param_link(f) %> <%= remove_search_param_link(f) %></li>
</span><span class="cx"> <% end %>
</span><span class="cx"> </ul>
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx"> t = <<-EOF
</span><span class="cx"> <h5>Applied Queries:</h5>
</span><span class="cx"> <ul>
</span><del>- <% @flare.q_params.each do |f| %>
</del><ins>+ <% @flare.query_params.each do |f| %>
</ins><span class="cx"> <li><%= f.value %> <%= negate_search_param_link(f) %> <%= remove_search_param_link(f) %></li>
</span><span class="cx"> <% end %>
</span><span class="cx"> </ul>
</span><span class="lines">@@ -197,11 +197,11 @@
</span><span class="cx"> <div id="FlareAppliedFilters">
</span><span class="cx"> <% if @flare.total_params > 0 %>
</span><span class="cx">
</span><del>- <% if @flare.f_params.size > 0 %>
</del><ins>+ <% if @flare.filter_params.size > 0 %>
</ins><span class="cx"> <%= applied_search_filters_view %>
</span><span class="cx"> <% end %>
</span><span class="cx">
</span><del>- <% if @flare.q_params.size > 0 %>
</del><ins>+ <% if @flare.query_params.size > 0 %>
</ins><span class="cx"> <%= applied_search_queries_view %>
</span><span class="cx"> <% end %>
</span><span class="cx">
</span><span class="lines">@@ -223,7 +223,7 @@
</span><span class="cx"> t = <<-EOF
</span><span class="cx"> <div id="FlareAvailableFacets">
</span><span class="cx"> <% facet_fields.each do |field| %>
</span><del>- <% facet = @flare.facet(field) %>
</del><ins>+ <% facet = @flare.find_facet_by_name(field) %>
</ins><span class="cx"> <dl>
</span><span class="cx"> <% # Would be nice if Solr::Response::Standard implemented the size method + stored "values" in a variable cache? %>
</span><span class="cx"> <% # collect all of the facet values, but only if the name is not blank - this doesn't really belong here %>
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflareview_helperurlrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare/view_helper/url.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare/view_helper/url.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/lib/flare/view_helper/url.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -12,10 +12,10 @@
</span><span class="cx"> #
</span><span class="cx"> def inputs_for_search_form(text_attrs={})
</span><span class="cx"> params = text_field_tag("#{q_param}[]", nil, text_attrs)
</span><del>- @flare.q_params.each do |q|
</del><ins>+ @flare.query_params.each do |q|
</ins><span class="cx"> params += hidden_field_tag("#{q_param}[]", q.value)
</span><span class="cx"> end
</span><del>- @flare.f_params.each do |f|
</del><ins>+ @flare.filter_params.each do |f|
</ins><span class="cx"> params += hidden_field_tag("#{f_param}[#{f.field}][]", f.value)
</span><span class="cx"> end
</span><span class="cx"> params
</span><span class="lines">@@ -47,10 +47,10 @@
</span><span class="cx"> #
</span><span class="cx"> def base_search_form_elements(text_attrs={})
</span><span class="cx"> elements = text_field_tag("#{q_param}[]", nil, text_attrs)
</span><del>- @flare.q_params.each do |q|
</del><ins>+ @flare.query_params.each do |q|
</ins><span class="cx"> elements += hidden_field_tag("#{q_param}[]", q.value)
</span><span class="cx"> end
</span><del>- @flare.f_params.each do |f|
</del><ins>+ @flare.filter_params.each do |f|
</ins><span class="cx"> elements += hidden_field_tag("#{f_param}[#{f.field}][]", f.value)
</span><span class="cx"> end
</span><span class="cx"> elements
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibflarerb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/lib/flare.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/flare.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/lib/flare.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -5,6 +5,12 @@
</span><span class="cx">
</span><span class="cx"> VERSION='0.1.2'
</span><span class="cx">
</span><ins>+ autoload :Search, 'flare/search'
+ autoload :ViewHelper, 'flare/view_helper'
+ autoload :Context, 'flare/context'
+ autoload :Pagination, 'flare/pagination'
+ autoload :Facet, 'flare/facet'
+
</ins><span class="cx"> class << self
</span><span class="cx">
</span><span class="cx"> #
</span><span class="lines">@@ -47,10 +53,4 @@
</span><span class="cx"> #
</span><span class="cx"> require File.join(base_dir, 'core_ext.rb')
</span><span class="cx"> require File.join(base_dir, 'action_controller_ext.rb')
</span><del>-}.call(File.dirname(__FILE__))
-
-#
-# load up the main Flare classes / modules
-# Most of these are in the Manifest.txt file
-#
-%W(search context controller facet pagination view_helper).each {|f|require "flare/#{f}"}
</del><span class="cx">\ No newline at end of file
</span><ins>+}.call(File.dirname(__FILE__))
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsflarelibwill_paginate_link_rendererrb"></a>
<div class="delfile"><h4>Deleted: trunk/rails/vendor/gems/flare/lib/will_paginate_link_renderer.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/lib/will_paginate_link_renderer.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/lib/will_paginate_link_renderer.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-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
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkrailsvendorgemsflaretestunitaction_controller_ext_testrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/test/unit/action_controller_ext_test.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/test/unit/action_controller_ext_test.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/test/unit/action_controller_ext_test.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -1,6 +1,3 @@
</span><del>-
-require File.join(Flare.lib_dir, 'action_controller_ext.rb')
-
</del><span class="cx"> class MyTestController < ActionController::Base
</span><span class="cx">
</span><span class="cx"> end
</span></span></pre></div>
<a id="trunkrailsvendorgemsflaretestunitcontext_testrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/test/unit/context_test.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/test/unit/context_test.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/test/unit/context_test.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx"> #
</span><span class="cx"> def test_request_for_facets
</span><span class="cx"> f = Flare::Context.new
</span><del>- r = f.send(:build_request_for_facet_values, 'author_facet')
</del><ins>+ r = f.send(:build_request_for_find_facet_by_name, 'author_facet')
</ins><span class="cx"> # {:facets=>{:fields=>["author_facet"]}, :filter_queries=>[], :query=>[]}
</span><span class="cx"> assert r.has_key?(:facets)
</span><span class="cx"> assert_equal r[:facets][:fields].to_s, 'author_facet'
</span></span></pre></div>
<a id="trunkrailsvendorgemsflaretestunitflare_testrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/test/unit/flare_test.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/test/unit/flare_test.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/test/unit/flare_test.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -1,20 +1,5 @@
</span><del>-
-RAILS_ROOT = Flare.base_dir unless defined?(RAILS_ROOT)
-
</del><span class="cx"> class FlareTest < Test::Unit::TestCase
</span><span class="cx">
</span><del>- def boot_rails!
- gem 'rails', '2.0.2'
- require 'initializer'
- rails_config=Rails::Configuration.new
- Flare.boot!(rails_config)
- rails_config
- end
-
- def exec_rails_after_initialize_blocks(rails_config)
- rails_config.after_initialize_blocks.each {|proc|proc.call}
- end
-
</del><span class="cx"> #
</span><span class="cx"> # Flare.new is a shortcut for Flare::Context.new
</span><span class="cx"> #
</span><span class="lines">@@ -22,16 +7,6 @@
</span><span class="cx"> assert_equal Flare::Context, Flare.new.class
</span><span class="cx"> end
</span><span class="cx">
</span><del>- def test_base_dir
- assert File.directory?(File.join(Flare.base_dir, 'lib', 'flare'))
- assert File.file?(File.join(Flare.base_dir, 'lib', 'flare.rb'))
- end
-
- def test_lib_dir
- assert File.directory?(File.join(Flare.lib_dir, 'flare'))
- assert File.file?(File.join(Flare.lib_dir, 'flare.rb'))
- end
-
</del><span class="cx"> #
</span><span class="cx"> # Ensure the Flare.connection attr is read/write
</span><span class="cx"> #
</span></span></pre></div>
<a id="trunkrailsvendorgemsflaretestunitsearch_builder_testrb"></a>
<div class="modfile"><h4>Modified: trunk/rails/vendor/gems/flare/test/unit/search_builder_test.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/test/unit/search_builder_test.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/test/unit/search_builder_test.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -3,13 +3,13 @@
</span><span class="cx"> def setup
</span><span class="cx"> @flare=Flare.new(:connection=>Solr::Connection.new('http://localhost:8983/solr'))
</span><span class="cx"> # add using string
</span><del>- @flare.add_q_param('jazz')
</del><ins>+ @flare.add_query_param('jazz')
</ins><span class="cx"> # add using shortcut
</span><span class="cx"> @flare.add_param('bebop')
</span><span class="cx"> # add a "NOT" query
</span><del>- @flare.add_q_param('death metal', true)
</del><ins>+ @flare.add_query_param('death metal', true)
</ins><span class="cx"> # add a facet constraint
</span><del>- @flare.add_f_param('music_category_facet','MT')
</del><ins>+ @flare.add_filter_param('music_category_facet','MT')
</ins><span class="cx"> # add a "NOT" facet constraint using shortcut
</span><span class="cx"> @flare.add_param('music_category_facet', 'M3', true)
</span><span class="cx"> end
</span><span class="lines">@@ -20,47 +20,47 @@
</span><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> def test_highlighting_query_is_textual_query
</span><del>- assert @flare.hl_query == @flare.q_query
</del><ins>+ assert @flare.hl_query == @flare.query_params.generate_query
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> def test_full_query
</span><span class="cx"> v='music_category_facet:"MT" AND -music_category_facet:"M3" AND (jazz) AND (bebop) AND -(death metal)'
</span><del>- assert v == @flare.query
</del><ins>+ assert v == @flare.params.generate_query
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> def test_full_query_array
</span><span class="cx"> v=['music_category_facet:"MT"', '-music_category_facet:"M3"', '(jazz)', '(bebop)', '-(death metal)']
</span><del>- assert v == @flare.queries
</del><ins>+ assert v == @flare.params.generate_queries
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> def test_textual_query
</span><span class="cx"> v='(jazz) AND (bebop) AND -(death metal)'
</span><del>- assert v == @flare.q_query
</del><ins>+ assert v == @flare.query_params.generate_query
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> def test_textual_query_array
</span><span class="cx"> v = ['(jazz)', '(bebop)', '-(death metal)']
</span><del>- assert v == @flare.q_queries
</del><ins>+ assert v == @flare.query_params.generate_queries
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> def test_faceted_query
</span><span class="cx"> q='music_category_facet:"MT" AND -music_category_facet:"M3"'
</span><del>- assert q == @flare.f_query
</del><ins>+ assert q == @flare.filter_params.generate_query
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> def test_faceted_query_array
</span><span class="cx"> v = ['music_category_facet:"MT"', '-music_category_facet:"M3"']
</span><del>- assert v == @flare.f_queries
</del><ins>+ assert v == @flare.filter_params.generate_queries
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> def test_add_param
</span><span class="cx"> @flare.add_param('latin')
</span><span class="cx"> v = '(jazz) AND (bebop) AND -(death metal) AND (latin)'
</span><del>- assert v == @flare.q_query
</del><ins>+ assert v == @flare.query_params.generate_query
</ins><span class="cx"> #
</span><span class="cx"> @flare.add_param('country_facet', 'portugal')
</span><span class="cx"> v = ['music_category_facet:"MT"', '-music_category_facet:"M3"', 'country_facet:"portugal"']
</span><del>- assert v == @flare.f_queries
</del><ins>+ assert v == @flare.filter_params.generate_queries
</ins><span class="cx"> end
</span><span class="cx">
</span><span class="cx"> def test_init_params
</span></span></pre></div>
<a id="trunkrailsvendorgemsflaretestunitwill_paginate_link_renderer_testrb"></a>
<div class="delfile"><h4>Deleted: trunk/rails/vendor/gems/flare/test/unit/will_paginate_link_renderer_test.rb (595 => 596)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/rails/vendor/gems/flare/test/unit/will_paginate_link_renderer_test.rb        2008-06-09 19:02:30 UTC (rev 595)
+++ trunk/rails/vendor/gems/flare/test/unit/will_paginate_link_renderer_test.rb        2008-06-10 19:10:33 UTC (rev 596)
</span><span class="lines">@@ -1,12 +0,0 @@
</span><del>-class WillPaginateLinkRendererTest < Test::Unit::TestCase
-
- #
- # Just make sure Flare is manipulating WillPaginate::LinkRenderer for now.
- #
- def test_page_link_or_span
- collection = WillPaginate::Collection.new(1000, 10, total = nil)
- lr = WillPaginate::LinkRenderer.new(collection, {}, '')
- assert lr.respond_to?(:orig_page_link_or_span)
- end
-
-end
</del><span class="cx">\ No newline at end of file
</span></span></pre>
</div>
</div>
</body>
</html>