Sha256: 26befabf6bb27ee5cbc30452f378380ca931a1528e80742f4d5f029bd41a961a

Contents?: true

Size: 1.08 KB

Versions: 6

Compression:

Stored size: 1.08 KB

Contents

module Ldp
  class Resource::BinarySource < Ldp::Resource
    attr_accessor :content

    # @param client [Ldp::Client]
    # @param subject [String] the URI for the resource
    # @param content_or_response [String,Ldp::Response]
    # @param base_path [String] ('')
    def initialize client, subject, content_or_response = nil, base_path = ''
      super

      case content_or_response
      when Ldp::Response
      else
        @content = content_or_response
      end
    end

    # @return [Ldp::Response]
    def content
      @content ||= get.body
    end

    def described_by
      described_by = Array(head.links["describedby"]).first

      client.find_or_initialize described_by if described_by
    end

    # Override inspect so that `content` is never shown. It is typically too big to be helpful
    def inspect
      string = "#<#{self.class.name}:#{self.object_id} "
      fields = [:subject].map { |field| "#{field}=\"#{self.send(field)}\"" }
      string << fields.join(", ") << ">"
    end

    protected

    def interaction_model
      RDF::Vocab::LDP.NonRDFSource
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ldp-1.2.1 lib/ldp/resource/binary_source.rb
ldp-1.2.0 lib/ldp/resource/binary_source.rb
ldp-1.1.0 lib/ldp/resource/binary_source.rb
ldp-1.0.3 lib/ldp/resource/binary_source.rb
ldp-1.0.2 lib/ldp/resource/binary_source.rb
ldp-1.0.1 lib/ldp/resource/binary_source.rb