class GetText::ErbParser
Constants
- MAGIC_COMMENT
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/erb.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/erb.rb, line 54 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/erb.rb, line 44 def parse(path, options={}) parser = new(path, options) parser.parse end
Public Instance Methods
detect_encoding(erb_source)
click to toggle source
# File lib/gettext/tools/parser/erb.rb, line 77 def detect_encoding(erb_source) if /\A#coding:(.*)\n/ =~ erb_source $1 else nil end end
parse()
click to toggle source
Extracts messages from @path.
@return [Array<POEntry>] Extracted messages
# File lib/gettext/tools/parser/erb.rb, line 62 def parse content = IO.read(@path) src = ERB.new(content).src # Force the src encoding back to the encoding in magic comment # or original content. encoding = detect_encoding(src) || content.encoding src.force_encoding(encoding) # Remove magic comment prepended by erb in Ruby 1.9. src = src.gsub(MAGIC_COMMENT, "") RubyParser.new(@path, @options).parse_source(src) end