This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
commit 8f647f7631e4f195017ea112ee00c78627693e77
tree 8a4479213681a43fcf1a5a1634e7dd36f3283788
parent 5bcc52d0c3fe11b9f9a4a85fea0074f31d194545
tree 8a4479213681a43fcf1a5a1634e7dd36f3283788
parent 5bcc52d0c3fe11b9f9a4a85fea0074f31d194545
| name | age | message | |
|---|---|---|---|
| |
MIT-LICENSE | Sat Apr 05 01:14:20 -0700 2008 | |
| |
README | Sat Apr 05 01:14:20 -0700 2008 | |
| |
Rakefile | Sat Apr 05 01:14:20 -0700 2008 | |
| |
init.rb | Sat Apr 05 01:14:20 -0700 2008 | |
| |
lib/ | Tue Dec 23 15:08:18 -0800 2008 | |
| |
spec/ | Tue Dec 23 15:08:18 -0800 2008 | |
| |
tasks/ | Sat Apr 05 01:14:20 -0700 2008 |
README
CanSearch
=========
Allows you create common named_scopes and chain them together with #search and
#search_for.
class Topic
belongs_to :forum
can_search do
scoped_by :forums
scoped_by :created, :scope => :date_range
end
# creates these two named scopes
# named_scope :by_forums, lambda { |f| {:conditions => {:forum_id => f}} }
# named_scope :created, lambda { |range| {:conditions => ...} }
end
Topic.search(:forum => 1) # Topic.by_forums(1)
Topic.search(:forums => [1,2]) # Topic.by_forums([1,2])
Topic.search(:created => (time1..time2)) # Topic.created(time1..time2)
Topic.search(:created => \
{:period => :daily, :start => Time.now}) # Topic.created(Time.now, Time.now + 1.day)
You can automatically paginate:
Topic.search :forum => 1, :page => params[:page]
You can also access the named_scope directly for custom #find or #calculate calls.
Topic.search_for(:forum => 1).sum(:hits)
Oh, and you can combine scopes:
Topic.search :forum => 1, :forums => [2, 3], :created => (time1..time2)
def can_search(&block)
self.search_scopes = CanSearch::SearchScopes.new(self, &block)
end
end
Copyright (c) 2008-* Rick Olson, released under the MIT license








