<!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=&gt;:descending}] if @flare.q_params.size==0
</del><ins>+        req[:sort] = [{:score=&gt;:descending}, {:id=&gt;: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=&gt;:descending}] if @flare.q_params.size==0
</del><ins>+        req[:sort] = [{:score=&gt;:descending}, {:id=&gt;: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">                 &lt;%= render :partial=&gt;'catalog/suggestions' %&gt;
</span><span class="cx">         &lt;% else %&gt;
</span><span class="cx">         
</span><del>-        &lt;% #Pagination %&gt;
-        
</del><span class="cx">         &lt;%= will_paginate @documents %&gt;
</span><span class="cx">           
</span><span class="cx">     &lt;% @documents.each do |document| %&gt;
</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 &lt;&lt; &quot;tzinfo&quot;
</span><span class="cx">   # config.gems[&quot;rails&quot;] = &quot;1.2.3&quot;
</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(&quot;F&quot;)
</span><span class="cx">             zclient.cmdFormat(&quot;usmarc&quot;)
</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(&quot;@attr 1=1016 ^C#{ckey}&quot;) }
</del><ins>+          begin
+            connect {|c| c.search(&quot;@attr 1=1016 ^C#{ckey}&quot;) }
+          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 &lt; 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=&gt;'http://localhost:8983/solr', :query_type=&gt;: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 &quot;flare&quot; to ActionController::Base
+  * adds a new instance method named &quot;flare&quot; 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 &quot;flare&quot; class method.
+Example:
+  class DocumentsController &lt; ApplicationController
+    flare :documents
+  end
+
+You can pass in configuration options to the &lt;tt&gt;flare&lt;/tt&gt; class method also:
+  class DocumentsController &lt; 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 &lt; 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 &quot;License&quot;); 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 &quot;AS IS&quot; 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 &lt;tt&gt;Flare.boot!&lt;/tt&gt; in your Rails environment.rb:
-
-inside of the &quot;Rails::Initializer.run do |config|&quot; block:
-  require 'flare'
-  Flare.boot!(rails_config)
-
-Booting flare does the following:
-  * adds a new class method named &quot;flare&quot; to ActionController::Base
-  * adds a new instance method named &quot;flare&quot; 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 &quot;flare&quot; class method.
-Example:
-  class DocumentsController &lt; ApplicationController
-    flare
-  end
-
-You can pass in configuration options to the &lt;tt&gt;flare&lt;/tt&gt; 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 &quot;License&quot;); 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 &quot;AS IS&quot; 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 = &quot;flare&quot;
</span><del>-    p.author = &quot;Erik Hatcher, Matt Mitchell&quot;
</del><ins>+    p.authors = ['Erik Hatcher', 'Matt Mitchell']
</ins><span class="cx">     p.description = &quot;A Ruby Gem that promises to expose the power of Solr through a web UI&quot;
</span><span class="cx">     p.email = 'goodieboy@gmail.com'
</span><span class="cx">     p.summary = &quot;Using Solr and Rails, Flare builds views and queries needed for faceted browsing and searching&quot;
</span><span class="cx">     p.url = &quot;http://wiki.apache.org/solr/Flare&quot;
</span><del>-    p.clean_globs = ['test/actual'] # Remove this directory on &quot;rake clean&quot;
</del><ins>+    #p.clean_globs = ['test/actual'] # Remove this directory on &quot;rake clean&quot;
</ins><span class="cx">     p.remote_rdoc_dir = '' # Release to root
</span><del>-    p.changes = p.paragraphs_of('CHANGELOG.txt', 0..1).join(&quot;\n\n&quot;)
</del><ins>+    p.changes = p.paragraphs_of('CHANGELOG', 0..1).join(&quot;\n\n&quot;)
</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 &lt;&lt; FileList.new('lib/**/*.rb').exclude('lib/solr*')
</span><span class="cx">   
</span><span class="cx">   rdoc.rdoc_files.add(files)
</span><del>-  rdoc.main = &quot;README.txt&quot; # page to start on
</del><ins>+  rdoc.main = &quot;README&quot; # page to start on
</ins><span class="cx">   rdoc.title = &quot;flare documentation&quot;
</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=&gt;'http://localhost:8983/solr', :query_type=&gt;: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=&gt;: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
-&lt;tt&gt;add_q_param&lt;/tt&gt; adds a simple value to the &quot;q&quot; param that gets sent to Solr
-&lt;tt&gt;add_f_param&lt;/tt&gt; adds a value to the &quot;fq&quot; param that gets sent to Solr
-&lt;tt&gt;add_param&lt;/tt&gt; 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
+  * &lt;tt&gt;add_query_param&lt;/tt&gt; adds a value to the &quot;q&quot; param that gets sent to Solr
+  * &lt;tt&gt;add_filter_param&lt;/tt&gt; adds a value to the &quot;fq&quot; param that gets sent to Solr
+  * &lt;tt&gt;add_param&lt;/tt&gt; 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, &amp;block)
</del><ins>+  def find_suggestions(term=q_query, &amp;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, &amp;block)
</del><ins>+  def find_first_suggestion(term=text_query, &amp;block)
</ins><span class="cx">     suggestions(term, &amp;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, &amp;block)
-    #field = &quot;#{field}#{Flare::Search::Param::FacetFilter.field_suffix}&quot;
-    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, &amp;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(&amp;block)
-    facet_fields.inject({}) { |f| {f=&gt;facet(f, &amp;block)} }
</del><ins>+  def find_all_facets(&amp;block)
+    find_all_facet_fields.inject({}) { |f| {f=&gt;find_facet_by_name(f, &amp;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 (*_&lt;suffix&gt;) 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=&gt;q_queries,
-        :filter_queries=&gt;f_queries,
</del><ins>+        :query=&gt;query_params.generate_queries,
+        :filter_queries=&gt;filter_params.generate_queries,
</ins><span class="cx">         :facets=&gt;{
</span><del>-          :queries=&gt;[query]
</del><ins>+          :queries=&gt;[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=&gt;q_queries,
-        :filter_queries =&gt; f_queries,
</del><ins>+        :query=&gt;query_params.generate_queries,
+        :filter_queries =&gt; filter_params.generate_queries,
</ins><span class="cx">         :facets =&gt; {
</span><span class="cx">           :fields =&gt; [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 &quot;request&quot; hash
</span><del>-    # - The &quot;request&quot; argument will have it's :start value set
</del><ins>+    # * The &quot;request&quot; argument will have it's :start value set
</ins><span class="cx">     #   based on the &quot;page&quot; arg and the &quot;request&quot; 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">     # &quot;type&quot; 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 &lt; Solr::Response::Dismax
-        
-        end
</del><ins>+        class #{class_prefix}Response &lt; Solr::Response::Dismax; end
</ins><span class="cx">       EOF
</span><span class="cx">       Kernel.eval &quot;#{class_prefix}Request&quot;
</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 &quot;min_count_for_suggestions&quot;
</span><span class="cx">       #
</span><span class="cx">       def suggestions_for_index
</span><del>-        @flare.suggestions if @documents.total_hits &lt;= min_count_for_suggestions
</del><ins>+        @flare.find_suggestions if @documents.total_hits &lt;= 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(&quot;#{params[:id]}_facet&quot;) do |config|
</del><ins>+        @flare.find_facet_by_name(&quot;#{params[:id]}_facet&quot;) 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 &quot;q&quot;
+  #
+  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 &quot;fq&quot;
+  #
+  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 &quot;Facet param not an array!&quot; 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 &quot;Text param not string!&quot; 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 &gt; 1 and args[1].is_a? String) ? add_f_param(*args) : add_q_param(*args)
</del><ins>+    (args.size &gt; 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 &quot;q&quot; 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 &lt;&lt; Flare::Search::Param::Query.new(text, negate) unless text.to_s.empty?
</del><ins>+    query_params &lt;&lt; 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 &quot;fq&quot; 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 &lt;&lt; Flare::Search::Param::Filter.new(field, text, negate) unless field.to_s.empty?
</del><ins>+    filter_params &lt;&lt; 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 &quot;q&quot; 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 &lt; 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 = ['\+', '\-', '\&amp;', '\|', '\!', '\(', '\)', '\{', '\}', '\[', '\]', '\^', '\&quot;', '\~', '\*', '\?', '\\\\', '\:']
-        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 &quot;_facet&quot; field, filter param
</span><span class="cx">   #
</span><span class="cx">   class FacetFilter &lt; 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 &quot;_text&quot; field, filter param
</span><span class="cx">   #
</span><span class="cx">   class TextFilter &lt; 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 = &lt;&lt;-EOF
</span><span class="cx">       &lt;h5&gt;Applied Filters:&lt;/h5&gt;
</span><span class="cx">       &lt;ul&gt;
</span><del>-      &lt;% @flare.f_params.each do |f| %&gt;
</del><ins>+      &lt;% @flare.filter_params.each do |f| %&gt;
</ins><span class="cx">         &lt;li&gt;&lt;%= field_to_label(f.field) %&gt;: &lt;%= f.value %&gt; &lt;%= negate_search_param_link(f) %&gt; &lt;%= remove_search_param_link(f) %&gt;&lt;/li&gt;
</span><span class="cx">       &lt;% end %&gt;
</span><span class="cx">       &lt;/ul&gt;
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx">       t = &lt;&lt;-EOF
</span><span class="cx">       &lt;h5&gt;Applied Queries:&lt;/h5&gt;
</span><span class="cx">       &lt;ul&gt;
</span><del>-        &lt;% @flare.q_params.each do |f| %&gt;
</del><ins>+        &lt;% @flare.query_params.each do |f| %&gt;
</ins><span class="cx">           &lt;li&gt;&lt;%= f.value %&gt; &lt;%= negate_search_param_link(f) %&gt; &lt;%= remove_search_param_link(f) %&gt;&lt;/li&gt;
</span><span class="cx">         &lt;% end %&gt;
</span><span class="cx">       &lt;/ul&gt;
</span><span class="lines">@@ -197,11 +197,11 @@
</span><span class="cx">       &lt;div id=&quot;FlareAppliedFilters&quot;&gt;
</span><span class="cx">       &lt;% if @flare.total_params &gt; 0 %&gt;
</span><span class="cx">         
</span><del>-        &lt;% if @flare.f_params.size &gt; 0 %&gt;
</del><ins>+        &lt;% if @flare.filter_params.size &gt; 0 %&gt;
</ins><span class="cx">           &lt;%= applied_search_filters_view %&gt;
</span><span class="cx">         &lt;% end %&gt;
</span><span class="cx">         
</span><del>-        &lt;% if @flare.q_params.size &gt; 0 %&gt;
</del><ins>+        &lt;% if @flare.query_params.size &gt; 0 %&gt;
</ins><span class="cx">           &lt;%= applied_search_queries_view %&gt;
</span><span class="cx">         &lt;% end %&gt;
</span><span class="cx">         
</span><span class="lines">@@ -223,7 +223,7 @@
</span><span class="cx">       t = &lt;&lt;-EOF
</span><span class="cx">       &lt;div id=&quot;FlareAvailableFacets&quot;&gt;
</span><span class="cx">         &lt;% facet_fields.each do |field| %&gt;
</span><del>-          &lt;% facet = @flare.facet(field) %&gt;
</del><ins>+          &lt;% facet = @flare.find_facet_by_name(field) %&gt;
</ins><span class="cx">           &lt;dl&gt;
</span><span class="cx">             &lt;% # Would be nice if Solr::Response::Standard implemented the size method + stored &quot;values&quot; in a variable cache? %&gt;
</span><span class="cx">             &lt;% # collect all of the facet values, but only if the name is not blank - this doesn't really belong here %&gt;
</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(&quot;#{q_param}[]&quot;, 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(&quot;#{q_param}[]&quot;, 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(&quot;#{f_param}[#{f.field}][]&quot;, 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(&quot;#{q_param}[]&quot;, 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(&quot;#{q_param}[]&quot;, 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(&quot;#{f_param}[#{f.field}][]&quot;, 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 &lt;&lt; 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 &quot;flare/#{f}&quot;}
</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 &lt; 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=&gt;{:fields=&gt;[&quot;author_facet&quot;]}, :filter_queries=&gt;[], :query=&gt;[]}
</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 &lt; 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=&gt;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 &quot;NOT&quot; 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 &quot;NOT&quot; 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:&quot;MT&quot; AND -music_category_facet:&quot;M3&quot; 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:&quot;MT&quot;', '-music_category_facet:&quot;M3&quot;', '(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:&quot;MT&quot; AND -music_category_facet:&quot;M3&quot;'
</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:&quot;MT&quot;', '-music_category_facet:&quot;M3&quot;']
</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:&quot;MT&quot;', '-music_category_facet:&quot;M3&quot;', 'country_facet:&quot;portugal&quot;']
</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 &lt; 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>