class Fastly::BelongsToServiceAndVersion
Encapsulates behavior of objects requiring both service and version
def self.delete_path(obj)
def self.delete_path(obj) put_path(obj) end
def self.get_path(service, version, name, _opts = {})
def self.get_path(service, version, name, _opts = {}) "/service/#{service}/version/#{version}/#{path}/#{path_escape(name)}" end
def self.path_escape(path)
def self.path_escape(path) @uri_parser ||= URI::Parser.new # the leading space in the escape character set is intentional @uri_parser.escape(path, ' !*\'();:@&=+$,/?#[]') end
def self.post_path(opts)
def self.post_path(opts) "/service/#{opts[:service_id]}/version/#{opts[:version]}/#{path}" end
def self.put_path(obj)
def self.put_path(obj) get_path(obj.service_id, obj.version_number, obj.name) end
def as_hash
def as_hash super.delete_if { |var| %w(service_id version).include?(var) } end
def service
def service @service ||= fetcher.get(Service, service_id) end
def version
def version @version_obj ||= fetcher.get(Fastly::Version, service_id, version_number) end
def version_number # rubocop:disable all
Get the number of the Version this belongs to
def version_number # rubocop:disable all @version end # rubocop:enable all