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 5bcc52d0c3fe11b9f9a4a85fea0074f31d194545
tree 13b4c938f8d6c6977641effae374d1d17abcd56d
parent 49890673aef1adbfb8f920314d785072439d6402
tree 13b4c938f8d6c6977641effae374d1d17abcd56d
parent 49890673aef1adbfb8f920314d785072439d6402
| name | age | message | |
|---|---|---|---|
| |
MIT-LICENSE | Sat Apr 05 01:14:20 -0700 2008 | [technoweenie] |
| |
README | Sat Apr 05 01:14:20 -0700 2008 | [technoweenie] |
| |
Rakefile | Sat Apr 05 01:14:20 -0700 2008 | [technoweenie] |
| |
init.rb | Sat Apr 05 01:14:20 -0700 2008 | [technoweenie] |
| |
lib/ | Thu Sep 18 11:04:36 -0700 2008 | [towski] |
| |
spec/ | Thu Sep 18 11:04:36 -0700 2008 | [towski] |
| |
tasks/ | Sat Apr 05 01:14:20 -0700 2008 | [technoweenie] |
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





