Sha256: 26ed7acbf26b598cace1dbcb2e2b31ac1cce82b7d8a17c69d5e3007512758241

Contents?: true

Size: 716 Bytes

Versions: 5

Compression:

Stored size: 716 Bytes

Contents

module Draper
  module Finders

    def find(id, options = {})
      decorate(source_class.find(id), options)
    end

    def all(options = {})
      decorate_collection(source_class.all, options)
    end

    def first(options = {})
      decorate(source_class.first, options)
    end

    def last(options = {})
      decorate(source_class.last, options)
    end

    def method_missing(method, *args, &block)
      result = super
      options = args.extract_options!

      case method.to_s
      when /^find_((last_)?by_|or_(initialize|create)_by_)/
        decorate(result, options)
      when /^find_all_by_/
        decorate_collection(result, options)
      else
        result
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
draper-1.0.0.beta6 lib/draper/finders.rb
draper-1.0.0.beta5 lib/draper/finders.rb
draper-1.0.0.beta4 lib/draper/finders.rb
draper-1.0.0.beta3 lib/draper/finders.rb
draper-1.0.0.beta2 lib/draper/finders.rb