def fetch(args, options={})
      @primary_fetch.is_a?(Proc) ? @primary_fetch[args] : (raise NotFound)
    rescue NotFound
      return nil if options[:skip_fallback]

      run_fallback(args)
    end
def fetch(args, options={})
      @primary_fetch.is_a?(Proc) ? @primary_fetch[args] : (raise NotFound)
    rescue NotFound
      return nil if options[:skip_fallback]

      run_fallback(args)
    end
Method to find a record using a hash as the criteria

 @example
   class GithubUser
     include MongoMapper::Document
     include ClassProxy

     primary_fetch  { |args| where(args).first or (raise NotFound) }
     fallback_fetch { |args| Octokit.user(args[:login]) }
   end

   GithubUser.fetch(login: 'heelhook') # -> Uses primary_fetch
                                       # -> and, if NotFound, fallback_fetch

 @param [ Hash ] args The criteria to use
 @options options [ true, false] :skip_fallback Don't use fallback methods