Class: Event_record
- Inherits:
-
GEDCOMBase
- Object
- GEDCOMBase
- Event_record
- Defined in:
- lib/gedcom/event_record.rb
Overview
Event_record holds multiple GEDCOM event record types. The type being held in @event_type.
The following are all events and are stored in an Event_record object with their Tag as the @event_type:
FAMILY_EVENT_STRUCTURE:= 0:M
n [ ANUL | CENS | DIV | DIVF ] [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
n [ ENGA | MARR | MARB | MARC ] [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
n [ MARL | MARS ] [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
n EVEN {1:1}
+1 <<EVENT_DETAIL>> {0:1}
INDIVIDUAL_EVENT_STRUCTURE:=
n [ BIRT | CHR ] [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
+1 FAMC @<XREF:FAM>@ {0:1}
n [ DEAT | BURI | CREM ] [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
n ADOP [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
+1 FAMC @<XREF:FAM>@ {0:1}
+2 ADOP <ADOPTED_BY_WHICH_PARENT> {0:1}
n [ BAPM | BARM | BASM | BLES ] [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
n [ CHRA | CONF | FCOM | ORDN ] [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
n [ NATU | EMIG | IMMI ] [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
n [ CENS | PROB | WILL] [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
n [ GRAD | RETI ] [Y|<NULL>] {1:1}
+1 <<EVENT_DETAIL>> {0:1}
n EVEN {1:1}
+1 <<EVENT_DETAIL>> {0:1}
LDS_INDIVIDUAL_ORDINANCE:= 0:M
n [ BAPL | CONL ] {1:1}
+1 STAT <LDS_BAPTISM_DATE_STATUS> {0:1}
+1 DATE <DATE_LDS_ORD> {0:1}
+1 TEMP <TEMPLE_CODE> {0:1}
+1 PLAC <PLACE_LIVING_ORDINANCE> {0:1}
+1 <<SOURCE_CITATION>> {0:M}
+1 <<NOTE_STRUCTURE>> {0:M}
n ENDL {1:1}
+1 STAT <LDS_ENDOWMENT_DATE_STATUS> {0:1}
+1 DATE <DATE_LDS_ORD> {0:1}
+1 TEMP <TEMPLE_CODE> {0:1}
+1 PLAC <PLACE_LIVING_ORDINANCE> {0:1}
+1 <<SOURCE_CITATION>> {0:M}
+1 <<NOTE_STRUCTURE>> {0:M}
n SLGC {1:1}
+1 STAT <LDS_CHILD_SEALING_DATE_STATUS> {0:1}
+1 DATE <DATE_LDS_ORD> {0:1}
+1 TEMP <TEMPLE_CODE> {0:1}
+1 PLAC <PLACE_LIVING_ORDINANCE> {0:1}
+1 FAMC @<XREF:FAM>@ {1:1}
+1 <<SOURCE_CITATION>> {0:M}
+1 <<NOTE_STRUCTURE>> {0:M}
LDS_SPOUSE_SEALING:=
n SLGS {1:1}
+1 STAT <LDS_SPOUSE_SEALING_DATE_STATUS> {0:1}
+1 DATE <DATE_LDS_ORD> {0:1}
+1 TEMP <TEMPLE_CODE> {0:1}
+1 PLAC <PLACE_LIVING_ORDINANCE> {0:1}
+1 <<SOURCE_CITATION>> {0:M}
+1 <<NOTE_STRUCTURE>> {0:M}
The EVEN tag in this structure is for recording general events or attributes that are not shown in the
above "by using a subordinate TYPE tag to show what event or attribute is recorded. For example, a\ncandidate for state senate in the 1952 election could be recorded:\n 1 EVEN\n 2 TYPE Election\n 2 DATE 07 NOV 1952\n 2 NOTE Candidate for State Senate.\n\nThe TYPE tag is also optionally used to modify the basic understanding of its superior event and is\nusually provided by the user. For example:\n 1 ORDN\n 2 TYPE Deacon\n\nThe presence of a DATE tag and/or PLACe tag makes the assertion of when and/or where the event\ntook place, and therefore that the event did happen. The absence of both of these tags require a\nY(es) value on the parent TAG line to assert that the event happened. Using this convention protects\nGEDCOM processors which may remove (prune) lines that have no value and no subordinate lines.\nIt also allows a note or source to be attached to the event context without implying that the event\noccurred.\n\nIt is not proper to use a N(o) value with an event tag to infer that it did not happen. Inferring that an\nevent did not occur would require a different tag. A symbol such as using an exclamation mark (!)\npreceding an event tag to indicate an event is known not to have happened may be defined in the future.\n">>. The general event or attribute type is declared
EVENT_DETAIL:= (These all get included in the Event_record as attributes)
n TYPE <EVENT_DESCRIPTOR> {0:1}
n DATE <DATE_VALUE> {0:1}
n "n <<ADDRESS_STRUCTURE>> {0:1}\nn AGE <AGE_AT_EVENT> {0:1}\nn AGNC <RESPONSIBLE_AGENCY> {0:1}\nn CAUS <CAUSE_OF_EVENT> {0:1}\nn <<SOURCE_CITATION>> {0:M}\nn <<MULTIMEDIA_LINK>> {0:M}\nn <<NOTE_STRUCTURE>> {0:M}\n">> {0:1}
AGE_AT_EVENT:= Size=1:12
[ < | > | <NULL>] YYy MMm DDDd | YYy | MMm | DDDd | YYy MMm | YYy DDDd | MMm DDDd | CHILD | INFANT | STILLBORN
Where:
>:: greater than indicated age
<:: less than indicated age
y:: a label indicating years
m:: a label indicating months
d:: a label indicating days
YY:: number of full years
MM:: number of months
DDD:: number of days
CHILD:: age < 8 years
INFANT:: age < 1 year
STILLBORN:: died just prior, at, or near birth, 0 years
A number that indicates the age in years, months, and days that the principal was at the time of the
associated event. Any labels must come after their corresponding number, for example; 4y 8m 10d.
EVENT_DESCRIPTOR:= Size=1:90
A descriptor that should be used whenever the EVEN tag is used to define the event being cited. For
example, if the event was a purchase of a residence, the EVEN tag would be followed by a
subordinate TYPE tag with the value "Purchased Residence." Using this descriptor with any of the
other defined event basically classifies the basic definition of the associated tag but does not
change its basic process. The form of using the TYPE tag with defined event has not been used
by very many products. The MARR tag could be subordinated with a TYPE tag and
EVENT_DESCRIPTOR value of Common Law. Other possible descriptor values might include
"Childbirth-unmarried," "Common Law," or "Tribal Custom," for example. The event descriptor
should use the same word or phrase and in the same language, when possible, as was used by the
recorder of the event. Systems that display data from the GEDCOM form should be able to display the
descriptor value in their screen or printed output.
RESPONSIBLE_AGENCY:= Size=1:120
The organization, institution, corporation, person, or other entity that has or control
interests in the associated context. For example, an employer of a person of an associated occupation,
or a church that administered rites or events, or an organization responsible for creating and/or
archiving records.
CAUSE_OF_EVENT:= Size=1:90
Used in special cases to record the reasons which precipitated an event. Normally this will be used
subordinate to a death event to show cause of death, such as might be listed on a death certificate.
The attributes are all arrays for the level +1 tags/records.
-
Those ending in _ref are GEDCOM XREF index keys
-
Those ending in _record are array of classes of that type.
-
The remainder are arrays of attributes that could be present in this record.
GEDCOM 5.5.1 Draft adds (at same level as ADDR)
I have not included these in the Address_record, but include them in the parent
records that include ADDRESS_STRUCTURE. This is functionally equivalent, as they are not
sub-records of ADDR, but at the same level.
n EMAIL <ADDRESS_EMAIL> {0:3}
n FAX <ADDRESS_FAX> {0:3}
n WWW <ADDRESS_WEB_PAGE> {0:3}
ADDRESS_EMAIL:= SIZE=5:120
An electronic address that can be used for contact such as an email address.
ADDRESS_FAX:= SIZE=5:60
A FAX telephone number appropriate for sending data facsimiles.
ADDRESS_WEB_PAGE:= SIZE=5:120
The world wide web page address.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#address_email ⇒ Object
GEDCOM 5.5.1 Draft.
-
#address_fax ⇒ Object
GEDCOM 5.5.1 Draft.
-
#address_record ⇒ Object
Returns the value of attribute address_record.
-
#address_web_page ⇒ Object
GEDCOM 5.5.1 Draft.
-
#adoption_record ⇒ Object
Returns the value of attribute adoption_record.
-
#age ⇒ Object
Returns the value of attribute age.
-
#agency ⇒ Object
Returns the value of attribute agency.
-
#cause_record ⇒ Object
Returns the value of attribute cause_record.
-
#date_record ⇒ Object
Returns the value of attribute date_record.
-
#event_age_record ⇒ Object
Returns the value of attribute event_age_record.
-
#event_descriptor ⇒ Object
Returns the value of attribute event_descriptor.
-
#event_status ⇒ Object
Returns the value of attribute event_status.
-
#event_type ⇒ Object
Returns the value of attribute event_type.
-
#lds_date_status ⇒ Object
Returns the value of attribute lds_date_status.
-
#lds_slgc_family_ref ⇒ Object
Returns the value of attribute lds_slgc_family_ref.
-
#lds_temp_code ⇒ Object
Returns the value of attribute lds_temp_code.
-
#multimedia_citation_record ⇒ Object
Returns the value of attribute multimedia_citation_record.
-
#note_citation_record ⇒ Object
Returns the value of attribute note_citation_record.
-
#phonenumber ⇒ Object
Returns the value of attribute phonenumber.
-
#place_record ⇒ Object
Returns the value of attribute place_record.
-
#religion ⇒ Object
GEDCOM 5.5.1 Draft.
-
#restriction ⇒ Object
not standard at the event level, but we might want this in DB.
-
#source_citation_record ⇒ Object
Returns the value of attribute source_citation_record.
-
#submitter_ref ⇒ Object
Returns the value of attribute submitter_ref.
Instance Method Summary collapse
- #date ⇒ Object
- #event_tag(tag) ⇒ Object
-
#initialize(*a) ⇒ Event_record
constructor
A new instance of Event_record.
- #is_event?(tag) ⇒ Boolean
-
#place ⇒ Object
where the event took place.
- #to_gedcom(level = 0) ⇒ Object
Methods inherited from GEDCOMBase
#changed, #changed?, #created?, #find, #locked?, no_tabs, #private?, #save, tabs, #to_db, #to_s, #token_to_s
Constructor Details
#initialize(*a) ⇒ Event_record
Returns a new instance of Event_record.
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 |
# File 'lib/gedcom/event_record.rb', line 186 def initialize(*a) super(*a) @sub_level = [ #level + 1 [:print, "RESN", :restriction], [:print, "TYPE", :event_descriptor], [:print, "STAT", :lds_date_status], [:walk, nil, :cause_record], [:walk, nil, :date_record], [:print, "TEMP", :lds_temp_code], [:walk, nil, :place_record], [:walk, nil, :address_record], [:print, "PHON", :phonenumber], [:print, "EMAIL", :address_email], [:print, "WWW", :address_web_page], [:print, "FAX", :address_fax], [:print, "AGE", :age], [:walk, nil, :event_age_record], [:print, "AGNC", :agency], [:walk, nil, :multimedia_citation_record], [:walk, nil, :source_citation_record], [:walk, nil, :note_citation_record], [:xref, "SUBM", :submitter_ref], [:walk, nil, :adoption_record], [:xref, "FAMC", :lds_slgc_family_ref], [:print, "RELI", :religion], #GEDCOM 5.5.1 ] end |
Instance Attribute Details
#address_email ⇒ Object
GEDCOM 5.5.1 Draft
182 183 184 |
# File 'lib/gedcom/event_record.rb', line 182 def address_email @address_email end |
#address_fax ⇒ Object
GEDCOM 5.5.1 Draft
182 183 184 |
# File 'lib/gedcom/event_record.rb', line 182 def address_fax @address_fax end |
#address_record ⇒ Object
Returns the value of attribute address_record.
178 179 180 |
# File 'lib/gedcom/event_record.rb', line 178 def address_record @address_record end |
#address_web_page ⇒ Object
GEDCOM 5.5.1 Draft
182 183 184 |
# File 'lib/gedcom/event_record.rb', line 182 def address_web_page @address_web_page end |
#adoption_record ⇒ Object
Returns the value of attribute adoption_record.
180 181 182 |
# File 'lib/gedcom/event_record.rb', line 180 def adoption_record @adoption_record end |
#age ⇒ Object
Returns the value of attribute age.
178 179 180 |
# File 'lib/gedcom/event_record.rb', line 178 def age @age end |
#agency ⇒ Object
Returns the value of attribute agency.
179 180 181 |
# File 'lib/gedcom/event_record.rb', line 179 def agency @agency end |
#cause_record ⇒ Object
Returns the value of attribute cause_record.
179 180 181 |
# File 'lib/gedcom/event_record.rb', line 179 def cause_record @cause_record end |
#date_record ⇒ Object
Returns the value of attribute date_record.
178 179 180 |
# File 'lib/gedcom/event_record.rb', line 178 def date_record @date_record end |
#event_age_record ⇒ Object
Returns the value of attribute event_age_record.
180 181 182 |
# File 'lib/gedcom/event_record.rb', line 180 def event_age_record @event_age_record end |
#event_descriptor ⇒ Object
Returns the value of attribute event_descriptor.
177 178 179 |
# File 'lib/gedcom/event_record.rb', line 177 def event_descriptor @event_descriptor end |
#event_status ⇒ Object
Returns the value of attribute event_status.
178 179 180 |
# File 'lib/gedcom/event_record.rb', line 178 def event_status @event_status end |
#event_type ⇒ Object
Returns the value of attribute event_type.
177 178 179 |
# File 'lib/gedcom/event_record.rb', line 177 def event_type @event_type end |
#lds_date_status ⇒ Object
Returns the value of attribute lds_date_status.
181 182 183 |
# File 'lib/gedcom/event_record.rb', line 181 def lds_date_status @lds_date_status end |
#lds_slgc_family_ref ⇒ Object
Returns the value of attribute lds_slgc_family_ref.
181 182 183 |
# File 'lib/gedcom/event_record.rb', line 181 def lds_slgc_family_ref @lds_slgc_family_ref end |
#lds_temp_code ⇒ Object
Returns the value of attribute lds_temp_code.
181 182 183 |
# File 'lib/gedcom/event_record.rb', line 181 def lds_temp_code @lds_temp_code end |
#multimedia_citation_record ⇒ Object
Returns the value of attribute multimedia_citation_record.
180 181 182 |
# File 'lib/gedcom/event_record.rb', line 180 def multimedia_citation_record @multimedia_citation_record end |
#note_citation_record ⇒ Object
Returns the value of attribute note_citation_record.
180 181 182 |
# File 'lib/gedcom/event_record.rb', line 180 def note_citation_record @note_citation_record end |
#phonenumber ⇒ Object
Returns the value of attribute phonenumber.
178 179 180 |
# File 'lib/gedcom/event_record.rb', line 178 def phonenumber @phonenumber end |
#place_record ⇒ Object
Returns the value of attribute place_record.
178 179 180 |
# File 'lib/gedcom/event_record.rb', line 178 def place_record @place_record end |
#religion ⇒ Object
GEDCOM 5.5.1 Draft
182 183 184 |
# File 'lib/gedcom/event_record.rb', line 182 def religion @religion end |
#restriction ⇒ Object
not standard at the event level, but we might want this in DB.
176 177 178 |
# File 'lib/gedcom/event_record.rb', line 176 def restriction @restriction end |
#source_citation_record ⇒ Object
Returns the value of attribute source_citation_record.
179 180 181 |
# File 'lib/gedcom/event_record.rb', line 179 def source_citation_record @source_citation_record end |
#submitter_ref ⇒ Object
Returns the value of attribute submitter_ref.
179 180 181 |
# File 'lib/gedcom/event_record.rb', line 179 def submitter_ref @submitter_ref end |
Instance Method Details
#date ⇒ Object
275 276 277 278 279 280 281 |
# File 'lib/gedcom/event_record.rb', line 275 def date if @date_record != nil @date_record.first.date else nil end end |
#event_tag(tag) ⇒ Object
226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 |
# File 'lib/gedcom/event_record.rb', line 226 def event_tag(tag) case tag when "ANUL" then tag when "CENS" then tag when "DIV" then tag when "DIVF" then tag when "ENGA" then tag when "MARR" then tag when "MARB" then tag when "MARC" then tag when "MARL" then tag when "MARS" then tag when "EVEN" then tag when "RESI" then tag when "SLGS" then tag when "BIRT" then tag when "CHR" then tag when "ADOP" then tag when "DEAT" then tag when "BURI" then tag when "CREM" then tag when "BAPM" then tag when "BARM" then tag when "BASM" then tag when "BLES" then tag when "CHRA" then tag when "CONF" then tag when "FCOM" then tag when "ORDN" then tag when "NATU" then tag when "EMIG" then tag when "IMMI" then tag when "CENS" then tag when "PROB" then tag when "WILL" then tag when "GRAD" then tag when "RETI" then tag when "BAPL" then tag when "CONL" then tag when "ENDL" then tag when "SLGC" then tag else "EVEN" end end |
#is_event?(tag) ⇒ Boolean
271 272 273 |
# File 'lib/gedcom/event_record.rb', line 271 def is_event?(tag) @event_type.first.to_s == tag #all attributes are arrays, even the single value ones. end |
#place ⇒ Object
where the event took place. We are reporting only the first place as a string. If you want all the places recorded, then you should access Event_record#place_record, which will return an array of PLAC records in the event.
285 286 287 288 289 290 291 |
# File 'lib/gedcom/event_record.rb', line 285 def place if @place_record != nil @place_record.first.place else nil end end |
#to_gedcom(level = 0) ⇒ Object
214 215 216 217 218 219 220 221 222 223 224 |
# File 'lib/gedcom/event_record.rb', line 214 def to_gedcom(level=0) tag = event_tag(@event_type[0].to_s) # print "'#{@event_type}' '#{@event_descriptor}' => #{tag}\n" if @event_status != nil && @event_status[0] != nil && @event_status[0][0] != nil @this_level = [ [:print, tag, :event_status] ] else @this_level = [ [:nodata, tag, nil] ] end super(level) end |