Sha256: ef2766125a758e48c7ad1ab450a315106eb746034f57835fc81c9b2a7795f548

Contents?: true

Size: 1.07 KB

Versions: 6

Compression:

Stored size: 1.07 KB

Contents

module Panda
  class Cloud < Base
    include Panda::Updatable
    
    attr_reader :connection

    def initialize(attributes={})
      super(attributes)
      connection_params = Panda.connection.to_hash.merge!(:cloud_id => id)
      @connection = Connection.new(connection_params)
      Panda.clouds[id] = self
    end

    class << self

      def connection
        Panda.connection
      end
      
      private

      def build_resource(attributes)
        resource = Panda::Cloud.new(attributes)
      end
    end

    def eu?
      region == "eu"
    end

    def us?
      region == "us"
    end

    def region
      return "eu" if connection.api_host == Panda::EU_API_HOST
      return "us" if connection.api_host == Panda::US_API_HOST
    end

    def videos
      VideoScope.new(self)
    end

    def encodings
      EncodingScope.new(self)
    end

    def profiles
      ProfileScope.new(self)
    end

    def method_missing(method_symbol, *arguments)
      lazy_load
      super
    end

    private 
    
    def lazy_load
      reload unless @loaded
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
panda-1.5.0 lib/panda/resources/cloud.rb
panda-1.4.4 lib/panda/resources/cloud.rb
panda-1.4.3 lib/panda/resources/cloud.rb
panda-1.4.2 lib/panda/resources/cloud.rb
panda-1.4.1 lib/panda/resources/cloud.rb
panda-1.4.0 lib/panda/resources/cloud.rb