Sha256: cae008f34920c3369dd24393bed22e7c9a454f96f11cc9a47cee6fb6b4589025
Contents?: true
Size: 1.3 KB
Versions: 47
Compression:
Stored size: 1.3 KB
Contents
module Alula module Video class BaseResource < Alula::ApiResource extend Alula::ResourceAttributes class << self def api_name(name = nil) if name @api_name = name elsif @api_name @api_name else superclass.api_name end end # Infer resource name from classname if not provided def resource_name(name = nil) if name @resource_name = name elsif @resource_name @resource_name else @resource_name = self.name.split('::').last.downcase.to_sym end end def resource_url(id = nil) "/#{api_name}/v1/#{resource_name}/#{id}" end end api_name :video # Instance method def resource_url(id = self.id) "/#{self.class.api_name}/v1/#{self.class.resource_name}/#{id}" end def construct_from(json_object) @raw_data = json_object.dup @values = json_object self.id = json_object['id'] unless [nil, ''].include?(json_object['id']) @dirty_attributes = Set.new @errors = ModelErrors.new(self.class) @related_models = {} cache_links(json_object['relationships'] || {}) self end end end end
Version data entries
47 entries across 47 versions & 1 rubygems