class Gedcomx::Record

Attributes

people[R]
relationships[R]

Public Class Methods

java_class() click to toggle source
# File lib/gedcomx/record.rb, line 6
def self.java_class
  Java::OrgGedcomx::Gedcomx
end
new(input = nil) click to toggle source
# File lib/gedcomx/record.rb, line 10
def initialize(input = nil)
  @record = input || self.class.java_class.new

  @people = []
  @people = @record.persons.map { |person| Gedcomx::Person.new(person) } if @record.persons

  @relationships = []
  if @record.relationships
    @relationships = @record.relationships.map { |relationship| Gedcomx::Relationship.new(relationship) }
  end
end

Public Instance Methods

add_couple(person1, person2) click to toggle source
# File lib/gedcomx/record.rb, line 42
def add_couple(person1, person2)
  relate_people(person1, person2, Gedcomx::TYPES[:couple])
end
add_parent_child(parent, child) click to toggle source
# File lib/gedcomx/record.rb, line 46
def add_parent_child(parent, child)
  relate_people(parent, child, Gedcomx::TYPES[:parent_child])
end
add_person(person) click to toggle source
# File lib/gedcomx/record.rb, line 22
def add_person(person)
  return false unless person.is_a? Gedcomx::Person
  @record.add_person(person.to_java)
  @people << person
end
add_relationship(relationship) click to toggle source
# File lib/gedcomx/record.rb, line 28
def add_relationship(relationship)
  return false unless relationship.is_a? Gedcomx::Relationship
  @record.add_relationship(relationship.to_java)
  @relationships << relationship
end
each_person() { |person| ... } click to toggle source
# File lib/gedcomx/record.rb, line 50
def each_person
  @people.each do |person|
    yield person
  end
end
each_relationship() { |relationship| ... } click to toggle source
# File lib/gedcomx/record.rb, line 56
def each_relationship
  @relationships.each do |relationship|
    yield relationship
  end
end
relate_people(person1, person2, type) click to toggle source
# File lib/gedcomx/record.rb, line 34
def relate_people(person1, person2, type)
  return false unless ( person1.is_a?(Gedcomx::Person) && person2.is_a?(Gedcomx::Person) )
  reference1 = Gedcomx::ResourceReference.create(resource: person1.relative_id)
  reference2 = Gedcomx::ResourceReference.create(resource: person2.relative_id)
  relationship = Gedcomx::Relationship.create(person1: reference1, person2: reference2, type: type)
  add_relationship(relationship)
end
to_java() click to toggle source
# File lib/gedcomx/record.rb, line 62
def to_java
  @record
end