class GetText::ErubiParser

Public Class Methods

init(config) click to toggle source

Sets some preferences to parse ERB files.

  • config: a Hash of the config. It can takes some values below:

    • :extnames: An Array of target files extension. Default is [“.rhtml”].

# File lib/gettext/tools/parser/erubi.rb, line 24
def init(config)
  config.each{|k, v|
    @config[k] = v
  }
end
new(path, options={}) click to toggle source

@param path [String] eRuby script path to be parsed @param options [Hash]

# File lib/gettext/tools/parser/erubi.rb, line 52
def initialize(path, options={})
  @path = path
  @options = options
end
parse(path, options={}) click to toggle source

Parses eRuby script located at ‘path`.

This is a short cut method. It equals to ‘new(path, options).parse`.

@return [Array<POEntry>] Extracted messages @see initialize and parse

# File lib/gettext/tools/parser/erubi.rb, line 44
def parse(path, options={})
  parser = new(path, options)
  parser.parse
end

Public Instance Methods

detect_encoding(content) click to toggle source
# File lib/gettext/tools/parser/erubi.rb, line 72
def detect_encoding(content)
  if /#.*coding: (\S*)/ =~ content.lines.first
    $1.upcase
  else
    content.encoding
  end
end
parse() click to toggle source

Extracts messages from @path.

@return [Array<POEntry>] Extracted messages

# File lib/gettext/tools/parser/erubi.rb, line 60
def parse
  content = IO.read(@path)

  encoding = detect_encoding(content)
  content.force_encoding(encoding)

  erb = Erubi::Engine.new(content)
  src = erb.src

  RubyParser.new(@path, @options).parse_source(src)
end