Class: StableMatching::PreferenceTable
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- StableMatching::PreferenceTable
show all
- Defined in:
- lib/stable-matching/preference_table.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(raw_preference_table) ⇒ PreferenceTable
Returns a new instance of PreferenceTable.
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/stable-matching/preference_table.rb', line 16
def initialize(raw_preference_table)
members = initialize_members_from(raw_preference_table)
raw_preference_table.each do |name, raw_preference_list|
generate_preference_list(
find_member_by_name(name),
raw_preference_list
)
end
super(members)
end
|
Instance Attribute Details
#name_to_member_mapping ⇒ Object
Returns the value of attribute name_to_member_mapping.
14
15
16
|
# File 'lib/stable-matching/preference_table.rb', line 14
def name_to_member_mapping
@name_to_member_mapping
end
|
Instance Method Details
#complete? ⇒ Boolean
47
48
49
50
51
|
# File 'lib/stable-matching/preference_table.rb', line 47
def complete?
counts = members.map { |member| member.preference_list.count }
counts.uniq == [1]
end
|
#members ⇒ Object
53
54
55
|
# File 'lib/stable-matching/preference_table.rb', line 53
def members
__getobj__
end
|
#print ⇒ Object
33
34
35
36
37
38
|
# File 'lib/stable-matching/preference_table.rb', line 33
def print
table = {}
members.each { |m| table[m.name] = m.preference_list.map(&:name) }
pp(table)
end
|
#to_s ⇒ Object
29
30
31
|
# File 'lib/stable-matching/preference_table.rb', line 29
def to_s
members.map { |m| "#{m.name} => #{m.preference_list}" }.join(", ")
end
|
#unmatched ⇒ Object
40
41
42
43
44
45
|
# File 'lib/stable-matching/preference_table.rb', line 40
def unmatched
have_accepted = members.select(&:accepted_proposal?)
have_been_accepted = have_accepted.map(&:current_proposer)
members - have_been_accepted
end
|