Sha256: 5b9252c36cc57f2ef056cfd3c894c8872b8bedc8b208b3910e89ec4112bb9f32

Contents?: true

Size: 1.54 KB

Versions: 1

Compression:

Stored size: 1.54 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)
            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
      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

1 entries across 1 versions & 1 rubygems

Version Path
rack-scaffold-0.0.1 ./lib/rack/scaffold/adapters.rb