Class: GettextScanner

Inherits:
String show all
Defined in:
lib/gettext.rb

Constant Summary collapse

SINGLE =
"'((?:[^\\\\]|(?:\\\\'))+?)'"
DOUBLE =
'"((?:[^\\\\]|(?:\\\\"))+?)"'
MSG_PATTERN_SINGLE =
/\W(?:s_|N_|_|_i)\(#{SINGLE}\)/mu
MSG_PATTERN_DOUBLE =
/\W(?:s_|N_|_|_i)\(#{DOUBLE}\)/mu
MSG_PATTERN_PLURAL =
/\Wn_\(#{SINGLE},\s*#{SINGLE},\s*.+?\)/mu

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from String

#interpolate, #strip_q, #strip_q!, #unescape_quote

Class Method Details

.Gettext(source) ⇒ Object



15
16
17
# File 'lib/gettext.rb', line 15

def GettextScanner::Gettext(source)
	GettextScanner.new(source).gettext
end

Instance Method Details

#gettextObject



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/gettext.rb', line 19

def gettext
ret = (scan(MSG_PATTERN_SINGLE) + scan(MSG_PATTERN_DOUBLE)).flatten.uniq.sort
 plur = scan(MSG_PATTERN_PLURAL).uniq
  ret += plur.sort
  ret.collect{|m|
    case m
    when String # singular msg
      Msg.new(m.unescape_quote, nil)
    when Array # plural msg
      Msg.new(m[0].unescape_quote, nil, m[1].unescape_quote)
    end
  }
end