Sha256: 43a542978e1fd5087b6b870588245c10124d8e90e337f92b43b1c4f3b8d81ece

Contents?: true

Size: 845 Bytes

Versions: 3

Compression:

Stored size: 845 Bytes

Contents

class Cistern::Request
  def self.register(service, klass, method)
    service.requests << [method, {class: klass, method: method, new: true}]
  end

  def self.service(klass, options={})
    @service = klass
    @service_method = options[:method] || Cistern::String.underscore(
      Cistern::String.demodulize(self.name)
    )
    Cistern::Request.register(klass, self, @service_method)
  end

  def self.service_method
    @service_method
  end

  attr_reader :connection

  alias service connection

  def initialize(connection)
    @connection = connection
  end

  def _real(*args, &block)
    real(*args, &block)
  end

  def _mock(*args, &block)
    mock(*args, &block)
  end

  def real(*args, &block)
    raise NotImplementedError
  end

  def mock(*args, &block)
    Cistern::Mock.not_implemented(self.class.service_method)
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cistern-0.12.3 lib/cistern/request.rb
cistern-0.12.2 lib/cistern/request.rb
cistern-0.12.1 lib/cistern/request.rb