<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -8,7 +8,7 @@ module Shooter
       module ClassMethods
         def acts_as_searchable(options = {})
           unless searchable?
-            cattr_accessor :searchable_attributes, :comparison_operator, :searchable_scope_options
+            cattr_accessor :searchable_attributes, :comparison_operator, :searchable_scope_options, :wildcards
             include InstanceMethods
           end
           
@@ -18,6 +18,7 @@ module Shooter
           self.comparison_operator = options.delete(:comparison) || :like
           self.searchable_scope_options ||= {}
           self.searchable_scope_options.update(options) {|k,v1,v2| k.to_sym == :include ? [v1 &lt;&lt; v2].flatten.compact.uniq : v2 }
+          self.wildcards = options.delete(:wildcards) || [&quot;*&quot;]
         end
 
         def searchable?
@@ -28,7 +29,7 @@ module Shooter
       module InstanceMethods
         def self.included(base)
           if base.respond_to?(:named_scope)
-            base.named_scope :search, lambda { |query| base.searchable_scope_options.merge(:conditions =&gt; [base.searchable_attributes.map {|attribute| &quot;#{&quot;#{base.table_name}.&quot; unless attribute.to_s.include?(&quot;.&quot;)}#{attribute} #{base.comparison_operator.to_s.upcase} :query&quot;}.join(&quot; OR &quot;), {:query =&gt; query}])}
+            base.named_scope :search, lambda { |query| base.wildcards.each {|w| query = query.gsub(w, &quot;%&quot;).gsub(/\%+/, &quot;%&quot;) }; base.searchable_scope_options.merge(:conditions =&gt; [base.searchable_attributes.map {|attribute| &quot;#{&quot;#{base.table_name}.&quot; unless attribute.to_s.include?(&quot;.&quot;)}#{attribute} #{base.comparison_operator.to_s.upcase} :query&quot;}.join(&quot; OR &quot;), {:query =&gt; query}])}
           else
             base.extend ClassMethods
           end
@@ -36,6 +37,7 @@ module Shooter
 
         module ClassMethods
           def search(query = nil, options = {})
+            self.wildcards.each {|w| query = query.gsub(w, &quot;%&quot;).gsub(/\%+/, &quot;%&quot;) }
             with_scope(:find =&gt; self.searchable_scope_options.merge(:conditions =&gt; [self.searchable_attributes.map {|attribute| &quot;#{&quot;#{table_name}.&quot; unless attribute.to_s.include?(&quot;.&quot;)}#{attribute} #{self.comparison_operator.to_s.upcase} :query&quot;}.join(&quot; OR &quot;), {:query =&gt; query}])) do
               block_given? ? yield(options) : find(:all, options)
             end</diff>
      <filename>lib/acts_as_searchable.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>fbaf267c51cdf6b76b5a1afb3e33e681947e2bc9</id>
    </parent>
  </parents>
  <author>
    <name>Joshua Clayton</name>
    <email>jclayton@fusionary.com</email>
  </author>
  <url>http://github.com/joshuaclayton/acts_as_searchable/commit/6cda7d114194f9252afec58e803340533acecfb7</url>
  <id>6cda7d114194f9252afec58e803340533acecfb7</id>
  <committed-date>2009-03-11T08:30:15-07:00</committed-date>
  <authored-date>2009-03-11T08:30:15-07:00</authored-date>
  <message>Allow asterisks as wildcards (by default)</message>
  <tree>b8a717c5ca68642fd695a2e404330fd857b5bcb3</tree>
  <committer>
    <name>Joshua Clayton</name>
    <email>jclayton@fusionary.com</email>
  </committer>
</commit>
