Sha256: 13488d2ca6ee22234047261be8e004d1cc52c1734dbd0ed64183bdeab4049724

Contents?: true

Size: 765 Bytes

Versions: 4

Compression:

Stored size: 765 Bytes

Contents

# frozen_string_literal: true

module Hcloud
  class VolumeResource < AbstractResource
    filter_attributes :name

    def [](arg)
      case arg
      when Integer then find_by(id: arg)
      when String then find_by(name: arg)
      end
    end

    def create(size:, name:, automount: nil, format: nil, location: nil, server: nil)
      prepare_request(
        'volumes', j: COLLECT_ARGS.call(__method__, binding),
                   expected_code: 201
      ) do |response|
        [
          Action.new(client, response.parsed_json[:action]),
          Volume.new(client, response.parsed_json[:volume]),
          response.parsed_json[:next_actions].map do |action|
            Action.new(client, action)
          end
        ]
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hcloud-1.0.3 lib/hcloud/volume_resource.rb
hcloud-1.0.2 lib/hcloud/volume_resource.rb
hcloud-1.0.1 lib/hcloud/volume_resource.rb
hcloud-1.0.0 lib/hcloud/volume_resource.rb