Sha256: 335d7e53d976e68ff04beaa1718f85c3f198b1ad7778f8b3c36f73faa7f1f3c0

Contents?: true

Size: 1.99 KB

Versions: 3

Compression:

Stored size: 1.99 KB

Contents

module AssMaintainer
  class InfoBase
    # Define absract Interfaces
    # for worker classes
    module Interfaces
      # Interface for class which make new InfoBase
      # Class must implement +#entry_point+ methodmodule Fixtures
      module IbMaker
        attr_reader :infobase
        def execute(infobase)
          @infobase = infobase
          entry_point
        end

        def entry_point
          fail NotImplementedError
        end
      end

      # Interface for class which destroy InfoBase
      # Class must implement +#entry_point+ methodmodule Fixtures
      module IbDestroyer
        attr_reader :infobase
        def execute(infobase)
          @infobase = infobase
          entry_point
        end

        def entry_point
          fail NotImplementedError
        end
      end

      # Interface for {FileIb::InfoBaseWrapper} and
      # {ServerIb::InfoBaseWrapper} classes
      module InfoBaseWrapper
        # Returns array of infobase sessions
        # For file infobase returns empty array
        # @return [Array <Session>]
        def sessions
          fail NotImplementedError
        end

        # Lock infobase. It work for server infobase only.
        # For file infobase it do nothing
        def lock
          fail NotImplementedError
        end

        # Unlock infobase which {#locked_we?}.
        # It work for server infobase only.
        # For file infobase it do nothing
        def unlock
          fail NotImplementedError
        end

        # Unlock infobase.
        # It work for server infobase only.
        # For file infobase it do nothing
        def unlock!
          fail NotImplementedError
        end

        # Lock infobase. It work for server infobase only.
        # For file infobase it return +false+
        def locked?
          fail NotImplementedError
        end

        # True if infobase locked this
        # For file infobase it return +false+
        def locked_we?
          fail NotImplementedError
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ass_maintainer-info_base-0.1.2 lib/ass_maintainer/info_base/interfaces.rb
ass_maintainer-info_base-0.1.1 lib/ass_maintainer/info_base/interfaces.rb
ass_maintainer-info_base-0.1.0 lib/ass_maintainer/info_base/interfaces.rb