Skip to content
Simple Rails plugin for named_scopes based on time columns
Ruby
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
spec
README
Rakefile
init.rb

README

=== Timed Scopes

Times Scopes is a simple plugin to add some named scopes to your model based on their time columns.

= Usage

class Post < ActiveRecord::Base
  has_timed_scopes
end

= What It Does

Calling has_timed_scopes will reflect on the model's columns and add three scopes for each column ending in "_at" or "_on". For example, a model with a published_at column gets "published_after", "published_before", and "published_between".

Post.published_after(1.month.ago)
  # => :conditions => ['posts.published_at > ?', 1.month.ago]
Post.published_before(1.year.ago)
  # => :conditions => ['posts.published_at < ?', 1.year.ago]
Post.published_between(2.months.ago, 1.month.ago)
  # => :conditions => ['posts.published_at > ? AND posts.published_at < ?', 2.months.ago, 1.month.ago]

By default, each timed scope will order the results on that column descending. You can ascend by passing "ASC" as an additional argument.

Post.published_before(1.year.ago, "ASC")

Or you can return the results unordered by passing false as an additional argument.

Post.published_before(1.year.ago, false)
Something went wrong with that request. Please try again.