case args.first
when :first then find_initial(options)
when :last then find_last(options)
when :all then options[:conditions] = { :published => true }; find_every(options)
else find_from_ids(args, options)
end
end
But is not very DRY since I pasted the code from active_record/base.rb.
I did use that initially, but it broke my associations. After all it was the least work to just stick with a named_scope and double-check frontend controllers for not showing unpublished items.