Sha256: 52ba3ec2863fb4f34c1be98c818aabce061d787122a2044eaba8f96981dc66a7

Contents?: true

Size: 993 Bytes

Versions: 6

Compression:

Stored size: 993 Bytes

Contents

module Cadet
  class Relationship
    attr_accessor :underlying

    def initialize(relationship)
      @underlying = relationship
    end

    def == other_rel
      @underlying.getId == other_rel.underlying.getId
    end

    def []= (property, value)
      @underlying.setProperty(property.to_java_string, value)
    end

    def [] (property)
      @underlying.getProperty(property.to_java_string)
    end

    def get_other_node(node)
      Node.new @underlying.getOtherNode(node.underlying)
    end

    def start_node
      Node.new @underlying.getStartNode
    end

    def end_node
      Node.new @underlying.getEndNode
    end

    def method_missing(name, *args, &block)
      case name
        when /([A-z_]*)_to$/
          self.class.class_eval "
            def #{name}(value)
              end_node.create_outgoing(value, :#{$1})
            end
          "
          self.send(name, *args, &block)
        else
          raise NotImplementedError
      end
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cadet-0.1.5-java lib/cadet/relationship.rb
cadet-0.1.4-java lib/cadet/relationship.rb
cadet-0.1.3-java lib/cadet/relationship.rb
cadet-0.1.2-java lib/cadet/relationship.rb
cadet-0.1.1-java lib/cadet/relationship.rb
cadet-0.1.0-java lib/cadet/relationship.rb