Sha256: 1375338de0d0f952f9e324beca18366240a85ff5f88e32c5695ceaa355931d2d

Contents?: true

Size: 768 Bytes

Versions: 3

Compression:

Stored size: 768 Bytes

Contents

# Extends the Node class with a hash style accessor methods to the node's properties
org.neo4j.api.core.PropertyContainer.java_class.ruby_class.class_eval do 
  
  # Example:
  #    node[:name] #=> 'Matt'
  #
  def [](arg)
    get_property(arg.to_s)
  end
  
  # Example:
  #    node[:name] = 'Matt'
  #
  def []=(arg, value)
    set_property(arg.to_s, value)
  end
    
  def properties
    properties = {}
    propertyKeys.each do |property|
      properties[property] = self[property]
    end
    properties
  end
  
  def update_properties(hash)
    hash.each_pair do |key, value|
      self[key] = convert(value) unless value.nil?
    end unless hash.nil?
  end
  
  private
  def convert(value)
    return value.to_s if value.is_a? Symbol
    value
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
neo4jr-simple-0.1.7 lib/neo4jr/property_container_extension.rb
neo4jr-simple-0.1.6 lib/neo4jr/property_container_extension.rb
neo4jr-simple-0.1.5 lib/neo4jr/property_container_extension.rb