Sha256: bfd87568348f2a07987a524c5b9c020363bf21ae51e416e369cb353ddd997a24

Contents?: true

Size: 1.08 KB

Versions: 35

Compression:

Stored size: 1.08 KB

Contents

require 'uri'
module ActiveFedora
  
  class Relationship 
    
    attr_accessor :subject, :predicate, :object, :is_literal, :data_type
    def initialize(attr={})
      attr = {:is_literal => false}.merge(attr)
      @is_literal = attr[:is_literal] # must happen first
      self.subject = attr[:subject]
      @predicate = attr[:predicate]
      self.object = attr[:object]
      @data_type = attr[:data_type]
    end
    
    def subject=(subject)
      @subject = generate_uri(subject)
    end
    
    def subject_pid=(pid)
      @subject = "info:fedora/#{pid}"
    end
    
    def object=(object)
      @object = (is_literal)? object : generate_uri(object)
    end
    
    def object_pid=(pid)
      @object = "info:fedora/#{pid}"
    end
    
    def generate_uri(input)
      if input.class == Symbol || input == nil
        return input
      elsif input.is_a? URI::Generic
        return input.to_s
      elsif input.respond_to?(:pid)
        return "info:fedora/#{input.pid}"
      else
        input.include?("info:fedora") ? input : "info:fedora/#{input}"
      end
    end
  
  end
  
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
active-fedora-3.1.6 lib/active_fedora/relationship.rb
active-fedora-3.1.5 lib/active_fedora/relationship.rb
active-fedora-3.1.4 lib/active_fedora/relationship.rb
active-fedora-3.1.3 lib/active_fedora/relationship.rb
active-fedora-3.1.2 lib/active_fedora/relationship.rb
active-fedora-3.1.1 lib/active_fedora/relationship.rb
active-fedora-3.1.0 lib/active_fedora/relationship.rb
active-fedora-3.1.0.rc4 lib/active_fedora/relationship.rb
active-fedora-3.1.0.rc3 lib/active_fedora/relationship.rb
active-fedora-3.1.0.rc2 lib/active_fedora/relationship.rb
active-fedora-3.1.0.rc1 lib/active_fedora/relationship.rb
active-fedora-3.1.0.pre14 lib/active_fedora/relationship.rb
active-fedora-3.1.0.pre13 lib/active_fedora/relationship.rb
active-fedora-3.1.0.pre12 lib/active_fedora/relationship.rb
active-fedora-3.1.0.pre11 lib/active_fedora/relationship.rb
active-fedora-3.1.0.pre10 lib/active_fedora/relationship.rb
active-fedora-3.1.0.pre9 lib/active_fedora/relationship.rb
active-fedora-3.0.7 lib/active_fedora/relationship.rb
active-fedora-3.0.6 lib/active_fedora/relationship.rb
active-fedora-3.1.0.pre8 lib/active_fedora/relationship.rb