Class: Atlas::BoxVersion
Overview
Representation and handling of Box Version objects.
Constant Summary
Constants inherited from Resource
Resource::INTERNAL_ATTRIBUTE_KEYS
Instance Attribute Summary collapse
-
#description ⇒ Object
Properties of the version.
-
#providers ⇒ Object
Properties of the version.
-
#status ⇒ Object
Properties of the version.
-
#version ⇒ Object
Properties of the version.
Attributes inherited from Resource
Class Method Summary collapse
-
.create(box_tag, attr = {}) ⇒ Version
Create a new version.
-
.find(tag) ⇒ Version
Find a version by it’s tag.
Instance Method Summary collapse
-
#create_provider(attr) ⇒ BoxProvider
Create a provider for this version.
-
#delete ⇒ Hash
Delete the version.
-
#initialize(tag, hash = {}) ⇒ BoxVersion
constructor
Initialize a version from a versiontag and object hash.
-
#release ⇒ Hash
Release the version.
-
#revoke ⇒ Hash
Revoke the version.
-
#save ⇒ Hash
Save the version.
Methods inherited from Resource
#attributes, date_accessor, date_writer, #inspect, #to_hash, #update_with_response
Methods included from Validations
Constructor Details
#initialize(tag, hash = {}) ⇒ BoxVersion
Initialize a version from a versiontag and object hash.
50 51 52 53 54 |
# File 'lib/atlas/box_version.rb', line 50 def initialize(tag, hash = {}) hash.replace_key!("description_markdown", "description") super(tag, hash) end |
Instance Attribute Details
#description ⇒ Object
Properties of the version.
12 13 14 |
# File 'lib/atlas/box_version.rb', line 12 def description @description end |
#providers ⇒ Object
Properties of the version.
12 13 14 |
# File 'lib/atlas/box_version.rb', line 12 def providers @providers end |
#status ⇒ Object
Properties of the version.
12 13 14 |
# File 'lib/atlas/box_version.rb', line 12 def status @status end |
#version ⇒ Object
Properties of the version.
12 13 14 |
# File 'lib/atlas/box_version.rb', line 12 def version @version end |
Class Method Details
.create(box_tag, attr = {}) ⇒ Version
Create a new version.
37 38 39 40 41 42 |
# File 'lib/atlas/box_version.rb', line 37 def self.create(box_tag, attr = {}) tag = "#{box_tag}/#{attr[:version]}" version = new(tag, attr) version.save version end |
.find(tag) ⇒ Version
Find a version by it’s tag.
22 23 24 25 26 27 |
# File 'lib/atlas/box_version.rb', line 22 def self.find(tag) url_builder = UrlBuilder.new tag response = Atlas.client.get(url_builder.box_version_url) new(tag, response) end |
Instance Method Details
#create_provider(attr) ⇒ BoxProvider
Create a provider for this version.
73 74 75 |
# File 'lib/atlas/box_version.rb', line 73 def create_provider(attr) BoxProvider.create(tag, attr) end |
#delete ⇒ Hash
Delete the version.
120 121 122 |
# File 'lib/atlas/box_version.rb', line 120 def delete Atlas.client.delete(url_builder.box_version_url) end |
#release ⇒ Hash
Release the version.
102 103 104 105 106 |
# File 'lib/atlas/box_version.rb', line 102 def release response = Atlas.client.put("#{url_builder.box_version_url}/release") update_with_response(response) end |
#revoke ⇒ Hash
Revoke the version.
111 112 113 114 115 |
# File 'lib/atlas/box_version.rb', line 111 def revoke response = Atlas.client.put("#{url_builder.box_version_url}/revoke") update_with_response(response) end |
#save ⇒ Hash
Save the version.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/atlas/box_version.rb', line 80 def save # rubocop:disable Metrics/AbcSize body = { version: to_hash } # providers are saved seperately body[:version].delete(:providers) begin response = Atlas.client.put(url_builder.box_version_url, body: body) rescue Atlas::Errors::NotFoundError response = Atlas.client.post("#{url_builder.box_url}/versions", body: body) end # trigger the same on the providers providers.each(&:save) if providers update_with_response(response, [:providers]) end |