Module: Card::Set::All::References
- Extended by:
- Card::Set
- Defined in:
- tmpsets/set/mod001-01_core/all/references.rb
Constant Summary
collapse
- PARTIAL_REF_CODE =
~~~~~~~~~~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/01_core/set/all/references.rb ~~~~~~~~~~~
'P'
Instance Method Summary
collapse
Methods included from Card::Set
abstract_set?, all_set?, clean_empty_module_from_hash, clean_empty_modules, define_on_format, each_format, ensure_set, extended, format, include_set, include_set_formats, process_base_module_list, process_base_modules, register_set, register_set_format, shortname, stage_method, view, write_tmp_file
Methods included from Trait
#card_accessor, #card_reader, #card_writer
Methods included from Event
#define_event, #event
Instance Method Details
#create_reference_to(chunk) ⇒ Object
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'tmpsets/set/mod001-01_core/all/references.rb', line 43
def create_reference_to chunk
referee_name = chunk.referee_name
return false unless referee_name
referee_name.piece_names.each do |name|
next if name.key == key
ref_type = name != referee_name ? PARTIAL_REF_CODE : chunk.reference_code
Card::Reference.create!(
referer_id: id,
referee_id: Card.fetch_id(name),
referee_key: name.key,
ref_type: ref_type,
present: 1
)
end
end
|
#extended_referencers ⇒ Object
12
13
14
15
|
# File 'tmpsets/set/mod001-01_core/all/references.rb', line 12
def extended_referencers
(descendants + [self]).map(&:referencers).flatten.uniq
end
|
#includees ⇒ Object
84
85
86
87
|
# File 'tmpsets/set/mod001-01_core/all/references.rb', line 84
def includees
references_to.where(ref_type: 'I')
.map { |ref| Card.fetch ref.referee_key, new: {} }
end
|
#includers ⇒ Object
75
76
77
78
|
# File 'tmpsets/set/mod001-01_core/all/references.rb', line 75
def includers
references_from.where(ref_type: 'I')
.map(&:referer_id).map(&Card.method(:fetch)).compact
end
|
#name_referencers(link_name = nil) ⇒ Object
7
8
9
10
|
# File 'tmpsets/set/mod001-01_core/all/references.rb', line 7
def name_referencers link_name=nil
link_name = link_name.nil? ? key : link_name.to_name.key
Card.joins(:references_to).where card_references: { referee_key: link_name }
end
|
80
81
82
|
# File 'tmpsets/set/mod001-01_core/all/references.rb', line 80
def referees
references_to.map { |ref| Card.fetch ref.referee_key, new: {} }
end
|
#referencers ⇒ Object
71
72
73
|
# File 'tmpsets/set/mod001-01_core/all/references.rb', line 71
def referencers
references_from.map(&:referer_id).map(&Card.method(:fetch)).compact
end
|
#replace_references(old_name, new_name) ⇒ Object
replace references in card content
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'tmpsets/set/mod001-01_core/all/references.rb', line 18
def replace_references old_name, new_name
obj_content = Card::Content.new raw_content, self
obj_content.find_chunks(Card::Chunk::Reference).select do |chunk|
next unless (old_ref_name = chunk.referee_name)
next unless (new_ref_name = old_ref_name.replace_part old_name, new_name)
chunk.referee_name = chunk.replace_reference old_name, new_name
old_references = Card::Reference.where(referee_key: old_ref_name.key)
old_references.update_all referee_key: new_ref_name.key
end
obj_content.to_s
end
|
#update_references(rendered_content = nil) ⇒ Object
update entries in reference table
32
33
34
35
36
37
38
39
40
41
|
# File 'tmpsets/set/mod001-01_core/all/references.rb', line 32
def update_references rendered_content=nil
raise 'update references should not be called on new cards' if id.nil?
Card::Reference.delete_all_from self unless self.new_card?
rendered_content ||= Card::Content.new raw_content, self
rendered_content.find_chunks(Card::Chunk::Reference).each do |chunk|
create_reference_to chunk
end
end
|