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