class RD::RBLFile
Constants
- SUFFIX
Attributes
filename[R]
labels[R]
Public Class Methods
basename(path)
click to toggle source
# File lib/rd/rbl-file.rb, line 26 def RBLFile.basename(path) if /\.(rd|rb)$/ === path $` else path end end
create_rbl_file(filename, resolver)
click to toggle source
# File lib/rd/rbl-file.rb, line 16 def RBLFile.create_rbl_file(filename, resolver) file = File.open(RBLFile.rbl_file_path(filename), "w") file.print(RBLFile.labels_to_string(resolver)) file.close end
labels_to_string(resolver)
click to toggle source
# File lib/rd/rbl-file.rb, line 34 def RBLFile.labels_to_string(resolver) (resolver.collect do |i| i.to_label + " => " + resolver.get_anchor(i) end).join("\n") end
new(filename)
click to toggle source
# File lib/rd/rbl-file.rb, line 11 def initialize(filename) @filename = RBLFile.basename(filename) @labels = [] end
rbl_file_path(filename)
click to toggle source
# File lib/rd/rbl-file.rb, line 22 def RBLFile.rbl_file_path(filename) basename(filename) + "." + SUFFIX end
Public Instance Methods
load_rbl_file(search_paths)
click to toggle source
# File lib/rd/rbl-file.rb, line 40 def load_rbl_file(search_paths) f = search_file(@filename, search_paths, [SUFFIX]) raise "RBLFile not found." unless f src = File.readlines(f).join("") @labels = string_to_labels(src) end
parse_line(src)
click to toggle source
# File lib/rd/rbl-file.rb, line 55 def parse_line(src) col = src.rindex("=>") raise "RBL file parse error." unless col label = src[0 .. col - 1].strip anchor = src[col + 2 .. -1].strip [label, anchor] end
refer(label)
click to toggle source
# File lib/rd/rbl-file.rb, line 63 def refer(label) label = @labels.find{|i| i[0] == label} return nil unless label label[1] end
string_to_labels(src)
click to toggle source
# File lib/rd/rbl-file.rb, line 47 def string_to_labels(src) labels = [] src.each_line do |i| labels << parse_line(i) end labels end