Sha256: 0a2058b2609fab87c9b669b01268535b542fe51d5913b231219109e058f1c4da

Contents?: true

Size: 1.71 KB

Versions: 2

Compression:

Stored size: 1.71 KB

Contents

module Rack
  class Scaffold
    def self.adapters
      @@adapters ||= []
    end

    module Adapters
      class NotImplementedError < StandardError; end

      class Base
        attr_reader :klass

        class << self
          def inherited(adapter)
            ::Rack::Scaffold.adapters << adapter
            super
          end

          def ===(model)
            raise NotImplementedError
          end

          def resources(model, options = {})
            raise NotImplementedError
          end
        end

        def initialize(klass)
          @klass = klass
        end

        def singular
          raise NotImplementedError
        end

        def plural
          raise NotImplementedError
        end

        def count
          raise NotImplementedError
        end

        def all
          raise NotImplementedError
        end

        def paginate(offset, limit)
          raise NotImplementedError
        end

        def [](id)
          raise NotImplementedError
        end

        def find(options = {})
          raise NotImplementedError
        end

        def create!(attributes = {})
          raise NotImplementedError
        end

        def update!(attributes = {})
          raise NotImplementedError
        end

        def destroy!
          raise NotImplementedError
        end

        def timestamps?
          raise NotImplementedError
        end

        def update_timestamp_field
          raise NotImplementedError
        end
      end
    end
  end
end

require 'rack/scaffold/adapters/active_record' if defined?(ActiveRecord::Base)
require 'rack/scaffold/adapters/sequel' if defined?(Sequel)
require 'rack/scaffold/adapters/core_data' if defined?(Sequel) and defined?(CoreData)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rack-scaffold-0.0.3 ./lib/rack/scaffold/adapters.rb
rack-scaffold-0.0.2 ./lib/rack/scaffold/adapters.rb