Module: Docker::Model::ClassMethods

Defined in:
lib/docker/model.rb

Overview

This defines the DSL for the including Classes.

Instance Method Summary collapse

Instance Method Details

#all(options = {}, connection = Docker.connection) ⇒ Object

Retrieve every Instance of a model for the given server.



70
71
72
73
74
# File 'lib/docker/model.rb', line 70

def all(options = {}, connection = Docker.connection)
  path = "#{self.resource_prefix}/json"
  hashes = connection.json_request(:get, path, options) || []
  hashes.map { |hash| new(:id => hash['Id'], :connection => connection) }
end

#create_request(&block) ⇒ Object

Define how the Model should send a create request to the server.



54
55
56
# File 'lib/docker/model.rb', line 54

def create_request(&block)
  block.nil? ? @create_request : (@create_request = block)
end

#docker_request(action, method, &outer_block) ⇒ Object

Define a method named action that sends an http method request to the Docker Server.



60
61
62
63
64
65
66
67
# File 'lib/docker/model.rb', line 60

def docker_request(action, method, &outer_block)
  define_method(action) do |query = nil, &block|
    ensure_created!
    path = "#{self.class.resource_prefix}/#{self.id}/#{action}"
    body = self.connection.json_request(method, path, query, &block)
    outer_block.nil? ? body : instance_exec(body, &outer_block)
  end
end

#resource_prefix(val = nil) ⇒ Object

Define the Model’s prefix for all requests.



49
50
51
# File 'lib/docker/model.rb', line 49

def resource_prefix(val = nil)
  val.nil? ? @resource_prefix : (@resource_prefix = val)
end