Sha256: 5034e9b13160659551ebbaa443e5e70dc367a94013124f1c32eac1124c9e45b4

Contents?: true

Size: 639 Bytes

Versions: 1

Compression:

Stored size: 639 Bytes

Contents

# frozen_string_literal: true

require 'roda/endpoints'

class Roda
  module Endpoints
    # Generic HTTP endpoint abstraction.
    module Repository
      # @param [<ROM::Struct>] _kwargs
      def list(**_kwargs)
        root.to_a
      end

      # @return [Time]
      def last_modified
        root.order(Sequel.desc(:updated_at)).first&.updated_at
      end

      # @param [Integer] id
      # @return [ROM::Struct]
      def fetch(id)
        if id.to_i < 1
          raise ArgumentError,
                "#{self.class}#fetch: invalid id provided: #{id.inspect}"
        end
        root.fetch(id.to_i)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
roda-endpoints-0.3.3 lib/roda/endpoints/repository.rb