class Starscope::FragmentExtractor

Public Class Methods

new(lang, frags) click to toggle source
# File lib/starscope/fragment_extractor.rb, line 3
def initialize(lang, frags)
  @child = Starscope::Lang.const_get(lang)
  @frags = frags
end

Public Instance Methods

extract(path, text) { |tbl, name, args| ... } click to toggle source
# File lib/starscope/fragment_extractor.rb, line 8
def extract(path, text)
  text = @frags.map { |f| f.delete(:frag).strip }.join("\n")

  extractor_metadata = @child.extract(path, text) do |tbl, name, args|
    args.merge!(@frags[args[:line_no] - 1]) if args[:line_no]
    yield tbl, name, args
  end

  # TODO: translate metadata?
  extractor_metadata
end
name() click to toggle source
# File lib/starscope/fragment_extractor.rb, line 20
def name
  @child.name
end