Sha256: cce5771b671c980ef4a73a9eba9b9ee52063b2ec1403f7ecd2f10085320f3fb3

Contents?: true

Size: 779 Bytes

Versions: 15

Compression:

Stored size: 779 Bytes

Contents

require_relative 'specified_attributes'

module VagrantPlugins
  module Skytap
    module API
      class Resource
        include SpecifiedAttributes

        attr_reader :attrs, :env

        class << self
          def resource_name
            name.split("::").last
          end
        end

        def initialize(*args)
          @attrs = args.first
          @env = args.last
        end

        def url
          "/#{self.class.resource_name.downcase}s/#{id}"
        end

        def reload
          resp = api_client.get(url)
          refresh(JSON.load(resp.body))
        end

        def refresh(attrs)
          @attrs = attrs
          self
        end

        private

        def api_client
          env[:api_client]
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
vagrant-skytap-0.2.3 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.2.2 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.2.1 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.2.0 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.11 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.10 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.9 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.8 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.7 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.6 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.5 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.4 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.3 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.2 lib/vagrant-skytap/api/resource.rb
vagrant-skytap-0.1.1a lib/vagrant-skytap/api/resource.rb