Module: Docker::Model::ClassMethods
- Defined in:
- lib/docker/model.rb
Overview
This defines the DSL for the including Classes.
Instance Method Summary collapse
-
#all(options = {}, connection = Docker.connection) ⇒ Object
Retrieve every Instance of a model for the given server.
-
#create_request(&block) ⇒ Object
Define how the Model should send a create request to the server.
-
#docker_request(action, method, &outer_block) ⇒ Object
Define a method named
actionthat sends an httpmethodrequest to the Docker Server. -
#resource_prefix(val = nil) ⇒ Object
Define the Model’s prefix for all requests.
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( = {}, connection = Docker.connection) path = "#{self.resource_prefix}/json" hashes = connection.json_request(:get, path, ) || [] 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 |