Class: Edoxen::Meeting

Inherits:
Lutaml::Model::Serializable
  • Object
show all
Includes:
LocalizationHost, OfficersHost
Defined in:
lib/edoxen/meeting.rb,
sig/edoxen.rbs

Overview

A single Meeting (event) — produces Decisions via Motions and Votings. Carries identity, time, polymorphic venues, officers, agenda, components, attendance, minutes, and URN links to one or more DecisionCollection documents.

Meetings and DecisionCollections are kept as separate documents and joined by URN because they have different lifetimes: agendas exist weeks before a meeting; decisions only after adoption.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#agendaAgenda? (readonly)

Returns the value of attribute agenda.

Returns:



514
515
516
# File 'sig/edoxen.rbs', line 514

def agenda
  @agenda
end

#attendanceArray[Attendance]? (readonly)

Returns the value of attribute attendance.

Returns:



517
518
519
# File 'sig/edoxen.rbs', line 517

def attendance
  @attendance
end

#cityString? (readonly)

Returns the value of attribute city.

Returns:

  • (String, nil)


505
506
507
# File 'sig/edoxen.rbs', line 505

def city
  @city
end

#committeeString? (readonly)

Returns the value of attribute committee.

Returns:

  • (String, nil)


507
508
509
# File 'sig/edoxen.rbs', line 507

def committee
  @committee
end

#committee_groupString? (readonly)

Returns the value of attribute committee_group.

Returns:

  • (String, nil)


508
509
510
# File 'sig/edoxen.rbs', line 508

def committee_group
  @committee_group
end

#componentsArray[MeetingComponent]? (readonly)

Returns the value of attribute components.

Returns:



515
516
517
# File 'sig/edoxen.rbs', line 515

def components
  @components
end

#country_codeString? (readonly)

Returns the value of attribute country_code.

Returns:

  • (String, nil)


506
507
508
# File 'sig/edoxen.rbs', line 506

def country_code
  @country_code
end

#date_rangeDateRange? (readonly)

Returns the value of attribute date_range.

Returns:



501
502
503
# File 'sig/edoxen.rbs', line 501

def date_range
  @date_range
end

#deadlinesArray[Deadline]? (readonly)

Returns the value of attribute deadlines.

Returns:



516
517
518
# File 'sig/edoxen.rbs', line 516

def deadlines
  @deadlines
end

#decisionsArray[Decision]? (readonly)

Returns the value of attribute decisions.

Returns:



519
520
521
# File 'sig/edoxen.rbs', line 519

def decisions
  @decisions
end

#general_areaString? (readonly)

Returns the value of attribute general_area.

Returns:

  • (String, nil)


504
505
506
# File 'sig/edoxen.rbs', line 504

def general_area
  @general_area
end

#hostsArray[HostRef]? (readonly)

Returns the value of attribute hosts.

Returns:



510
511
512
# File 'sig/edoxen.rbs', line 510

def hosts
  @hosts
end

#identifierArray[StructuredIdentifier]? (readonly)

Returns the value of attribute identifier.

Returns:



494
495
496
# File 'sig/edoxen.rbs', line 494

def identifier
  @identifier
end

#landing_urlString? (readonly)

Returns the value of attribute landing_url.

Returns:

  • (String, nil)


512
513
514
# File 'sig/edoxen.rbs', line 512

def landing_url
  @landing_url
end

#localizationsArray[MeetingLocalization]? (readonly)

Returns the value of attribute localizations.

Returns:



522
523
524
# File 'sig/edoxen.rbs', line 522

def localizations
  @localizations
end

#minutesArray[Minutes]? (readonly)

Returns the value of attribute minutes.

Returns:



518
519
520
# File 'sig/edoxen.rbs', line 518

def minutes
  @minutes
end

#motionsArray[Motion]? (readonly)

Returns the value of attribute motions.

Returns:



520
521
522
# File 'sig/edoxen.rbs', line 520

def motions
  @motions
end

#officersArray[Officer]? (readonly)

Returns the value of attribute officers.

Returns:



509
510
511
# File 'sig/edoxen.rbs', line 509

def officers
  @officers
end

#ordinalInteger? (readonly)

Returns the value of attribute ordinal.

Returns:

  • (Integer, nil)


496
497
498
# File 'sig/edoxen.rbs', line 496

def ordinal
  @ordinal
end

#recurrenceRecurrence? (readonly)

Returns the value of attribute recurrence.

Returns:



502
503
504
# File 'sig/edoxen.rbs', line 502

def recurrence
  @recurrence
end

#registration_urlString? (readonly)

Returns the value of attribute registration_url.

Returns:

  • (String, nil)


513
514
515
# File 'sig/edoxen.rbs', line 513

def registration_url
  @registration_url
end

#relationsArray[MeetingRelation]? (readonly)

Returns the value of attribute relations.

Returns:



523
524
525
# File 'sig/edoxen.rbs', line 523

def relations
  @relations
end

#series_refString? (readonly)

Returns the value of attribute series_ref.

Returns:

  • (String, nil)


497
498
499
# File 'sig/edoxen.rbs', line 497

def series_ref
  @series_ref
end

#source_urlsArray[SourceUrl]? (readonly)

Returns the value of attribute source_urls.

Returns:



511
512
513
# File 'sig/edoxen.rbs', line 511

def source_urls
  @source_urls
end

#statusString? (readonly)

Returns the value of attribute status.

Returns:

  • (String, nil)


499
500
501
# File 'sig/edoxen.rbs', line 499

def status
  @status
end

#typeString? (readonly)

Returns the value of attribute type.

Returns:

  • (String, nil)


498
499
500
# File 'sig/edoxen.rbs', line 498

def type
  @type
end

#urnString? (readonly)

Returns the value of attribute urn.

Returns:

  • (String, nil)


495
496
497
# File 'sig/edoxen.rbs', line 495

def urn
  @urn
end

#venuesArray[Venue]? (readonly)

Returns the value of attribute venues.

Returns:



503
504
505
# File 'sig/edoxen.rbs', line 503

def venues
  @venues
end

#visibilityString? (readonly)

Returns the value of attribute visibility.

Returns:

  • (String, nil)


500
501
502
# File 'sig/edoxen.rbs', line 500

def visibility
  @visibility
end

#votingsArray[Voting]? (readonly)

Returns the value of attribute votings.

Returns:



521
522
523
# File 'sig/edoxen.rbs', line 521

def votings
  @votings
end

Instance Method Details

#chairPerson?

Returns:



529
# File 'sig/edoxen.rbs', line 529

def chair: -> Person?

#city_entryObject

Resolve the meeting's UN/LOCODE via the canonical unlocode gem.

Returns:

  • (Object)


69
70
71
72
73
# File 'lib/edoxen/meeting.rb', line 69

def city_entry
  return nil if city.nil? || city.to_s.empty?

  Edoxen::ReferenceData.find_unlocode(city)
end

#find_agenda_item(label) ⇒ AgendaItem?

Parameters:

  • label (String, Symbol)

Returns:



64
65
66
# File 'lib/edoxen/meeting.rb', line 64

def find_agenda_item(label)
  agenda&.find_item(label)
end

#hybrid?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/edoxen/meeting.rb', line 88

def hybrid?
  !physical_venues.empty? && !virtual_venues.empty?
end

#in_languageMeetingLocalization?

Parameters:

  • code (String, Symbol)
  • fallback: (Boolean)

Returns:



524
# File 'sig/edoxen.rbs', line 524

def in_language: (String|Symbol code, ?fallback: bool) -> MeetingLocalization?

#officers_with_roleArray[Officer]

Parameters:

  • role (String, Symbol)

Returns:



528
# File 'sig/edoxen.rbs', line 528

def officers_with_role: (String|Symbol role) -> Array[Officer]

#physical_only?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/edoxen/meeting.rb', line 96

def physical_only?
  !physical_venues.empty? && virtual_venues.empty?
end

#physical_venuesArray[Venue]

All physical venues (polymorphic Venue filter).

Returns:



80
81
82
# File 'lib/edoxen/meeting.rb', line 80

def physical_venues
  venues_by_kind("physical")
end

#primary_localizationMeetingLocalization?

Returns:



525
# File 'sig/edoxen.rbs', line 525

def primary_localization: -> MeetingLocalization?

#secretaryPerson?

Returns:



75
76
77
# File 'lib/edoxen/meeting.rb', line 75

def secretary
  officers_with_role("secretary").first&.person
end

#virtual_only?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/edoxen/meeting.rb', line 92

def virtual_only?
  !virtual_venues.empty? && physical_venues.empty?
end

#virtual_venuesArray[Venue]

Returns:



84
85
86
# File 'lib/edoxen/meeting.rb', line 84

def virtual_venues
  venues_by_kind("virtual")
end