Class: Vagrant::Smartos::Zones::Util::Datasets::Manifest
- Inherits:
-
Object
- Object
- Vagrant::Smartos::Zones::Util::Datasets::Manifest
- Defined in:
- lib/vagrant/smartos/zones/util/datasets/manifest.rb
Instance Attribute Summary collapse
-
#env ⇒ Object
readonly
Returns the value of attribute env.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#initialize(name, env) ⇒ Manifest
constructor
A new instance of Manifest.
- #load! ⇒ Object
- #local_filename ⇒ Object
- #remote_filename ⇒ Object
- #to_json ⇒ Object
- #uuid ⇒ Object
- #write! ⇒ Object
Constructor Details
#initialize(name, env) ⇒ Manifest
Returns a new instance of Manifest.
12 13 14 15 |
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 12 def initialize(name, env) @name = name @env = env end |
Instance Attribute Details
#env ⇒ Object (readonly)
Returns the value of attribute env.
10 11 12 |
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 10 def env @env end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
10 11 12 |
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 10 def name @name end |
Instance Method Details
#load! ⇒ Object
24 25 26 27 28 29 |
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 24 def load! json = JSON.load(File.read(local_filename)) @creator = json['creator_uuid'] @uuid = json['uuid'] self end |
#local_filename ⇒ Object
47 48 49 |
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 47 def local_filename env.home_path.join('smartos', 'datasets', manifest_filename).to_s end |
#remote_filename ⇒ Object
51 52 53 |
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 51 def remote_filename '/zones/vagrant/%s' % manifest_filename end |
#to_json ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 31 def to_json { 'creator_name' => 'vagrant-smartos-zones', 'creator_uuid' => creator_uuid, 'description' => name, 'files' => files, 'name' => name, 'os' => 'smartos', 'published_at' => '2015-06-15T15:13:08.425Z', 'type' => 'zone-dataset', 'urn' => urn, 'uuid' => uuid, 'version' => '1.0.0' }.to_json end |
#uuid ⇒ Object
55 56 57 |
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 55 def uuid @uuid ||= SecureRandom.uuid end |
#write! ⇒ Object
17 18 19 20 21 22 |
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 17 def write! File.open(local_filename, 'w') do |f| f.write to_json end self end |