Sha256: 08225ddfc760d23d152fc32e1b4605c6dcf551180d5066375c795d6408dbb355

Contents?: true

Size: 1.16 KB

Versions: 39

Compression:

Stored size: 1.16 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

      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

39 entries across 39 versions & 1 rubygems

Version Path
alula-ruby-1.6.0 lib/alula/resources/video/base_resource.rb
alula-ruby-1.5.0 lib/alula/resources/video/base_resource.rb
alula-ruby-1.4.0 lib/alula/resources/video/base_resource.rb
alula-ruby-1.3.0 lib/alula/resources/video/base_resource.rb
alula-ruby-1.2.4 lib/alula/resources/video/base_resource.rb
alula-ruby-1.2.3 lib/alula/resources/video/base_resource.rb
alula-ruby-1.2.2 lib/alula/resources/video/base_resource.rb
alula-ruby-1.2.1 lib/alula/resources/video/base_resource.rb
alula-ruby-1.2.0 lib/alula/resources/video/base_resource.rb
alula-ruby-1.1.0 lib/alula/resources/video/base_resource.rb
alula-ruby-1.0.2 lib/alula/resources/video/base_resource.rb
alula-ruby-0.69.11 lib/alula/resources/video/base_resource.rb
alula-ruby-1.0.1 lib/alula/resources/video/base_resource.rb
alula-ruby-0.69.10 lib/alula/resources/video/base_resource.rb
alula-ruby-1.0.0 lib/alula/resources/video/base_resource.rb
alula-ruby-0.69.9 lib/alula/resources/video/base_resource.rb
alula-ruby-0.69.8 lib/alula/resources/video/base_resource.rb
alula-ruby-0.69.7 lib/alula/resources/video/base_resource.rb
alula-ruby-0.69.6 lib/alula/resources/video/base_resource.rb
alula-ruby-0.69.5 lib/alula/resources/video/base_resource.rb