Class: Atlas::BoxVersion
Overview
Representation and handling of Box Version objects.
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
#inspect, #to_hash, #update_with_response
Constructor Details
#initialize(tag, hash = {}) ⇒ BoxVersion
Initialize a version from a versiontag and object hash.
47 48 49 50 51 52 53 |
# File 'lib/atlas/box_version.rb', line 47 def initialize(tag, hash = {}) if hash.key? 'description_markdown' hash['description'] = hash['description_markdown'] end 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.
34 35 36 37 38 39 |
# File 'lib/atlas/box_version.rb', line 34 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.
19 20 21 22 23 24 |
# File 'lib/atlas/box_version.rb', line 19 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.
72 73 74 |
# File 'lib/atlas/box_version.rb', line 72 def create_provider(attr) BoxProvider.create(tag, attr) end |
#delete ⇒ Hash
Delete the version.
119 120 121 |
# File 'lib/atlas/box_version.rb', line 119 def delete Atlas.client.delete(url_builder.box_version_url) end |
#release ⇒ Hash
Release the version.
101 102 103 104 105 |
# File 'lib/atlas/box_version.rb', line 101 def release response = Atlas.client.put("#{url_builder.box_version_url}/release") update_with_response(response) end |
#revoke ⇒ Hash
Revoke the version.
110 111 112 113 114 |
# File 'lib/atlas/box_version.rb', line 110 def revoke response = Atlas.client.put("#{url_builder.box_version_url}/revoke") update_with_response(response) end |
#save ⇒ Hash
Save the version.
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/atlas/box_version.rb', line 79 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 |