each_label() { |i| ... }
click to toggle source
def each_label
tmp = []
labels.each_value do |i|
i.each do |j|
tmp.push(j)
end
end
tmp.sort{|i,j| i[1] <=> j[1]}.each do |i|
yield(i[0])
end
end
get_anchor(element)
click to toggle source
def get_anchor(element)
if num = get_label_num(element)
num2anchor(num)
end
end
get_label_num(element)
click to toggle source
def get_label_num(element)
entry = labels[element.to_label].find{|i| i[0] == element }
return nil unless entry
entry[1]
end
label2str(label)
click to toggle source
def label2str(label)
case label
when String
label
when Element, Reference::RDLabel
label.to_label
else
raise ArgumentError, "can't extract Label from #{label}."
end
end
make_rbl_file(filename)
click to toggle source
def make_rbl_file(filename)
RBLFile.create_rbl_file(filename, self)
end
refer(label)
click to toggle source
def refer(label)
matched = labels[label2str(label)]
return nil unless matched
num2anchor(matched[0][1])
end
refer_element(label)
click to toggle source
def refer_element(label)
labels.fetch(label2str(label), []).collect{|i| i[0] }
end
refer_external_file(label)
click to toggle source
def refer_external_file(label)
label = label.label if label.is_a? Reference
rbl_suite.refer(label.element_label, label.filename)
end
referent_of_label(label)
click to toggle source
def referent_of_label(label)
label = label.label if label.is_a? Reference
if label.filename
refer_external_file(label)
else
anchor = refer(label)
return nil unless anchor
[nil, anchor]
end
end