Class: I18nliner::Extractors::RubyExtractor
- Inherits:
-
SexpProcessor
- Object
- SexpProcessor
- I18nliner::Extractors::RubyExtractor
- Includes:
- SexpHelper
- Defined in:
- lib/i18nliner/extractors/ruby_extractor.rb
Constant Summary collapse
- TRANSLATE_CALLS =
[:t, :translate]
Instance Attribute Summary collapse
-
#current_defn ⇒ Object
readonly
Returns the value of attribute current_defn.
-
#current_line ⇒ Object
readonly
Returns the value of attribute current_line.
Class Method Summary collapse
Instance Method Summary collapse
- #each_translation(&block) ⇒ Object
-
#initialize(sexps, scope) ⇒ RubyExtractor
constructor
A new instance of RubyExtractor.
- #process_call(exp) ⇒ Object
- #process_defn(exp) ⇒ Object
Methods included from SexpHelper
#raw, #string_concatenation?, #string_from, #stringish?
Constructor Details
#initialize(sexps, scope) ⇒ RubyExtractor
Returns a new instance of RubyExtractor.
18 19 20 21 22 |
# File 'lib/i18nliner/extractors/ruby_extractor.rb', line 18 def initialize(sexps, scope) @sexps = sexps @scope = scope super() end |
Instance Attribute Details
#current_defn ⇒ Object (readonly)
Returns the value of attribute current_defn.
29 30 31 |
# File 'lib/i18nliner/extractors/ruby_extractor.rb', line 29 def current_defn @current_defn end |
#current_line ⇒ Object (readonly)
Returns the value of attribute current_line.
12 13 14 |
# File 'lib/i18nliner/extractors/ruby_extractor.rb', line 12 def current_line @current_line end |
Class Method Details
.pattern ⇒ Object
14 15 16 |
# File 'lib/i18nliner/extractors/ruby_extractor.rb', line 14 def self.pattern /(^|\W)(t|translate)(\W|$)/ end |
Instance Method Details
#each_translation(&block) ⇒ Object
24 25 26 27 |
# File 'lib/i18nliner/extractors/ruby_extractor.rb', line 24 def each_translation(&block) @block = block process(@sexps) end |
#process_call(exp) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/i18nliner/extractors/ruby_extractor.rb', line 38 def process_call(exp) exp.shift receiver_exp = exp.shift receiver = nil if receiver_exp receiver = receiver_exp[0] == :const ? receiver_exp.last : UnsupportedExpression process(receiver_exp) end method = exp.shift if extractable_call?(receiver, method) @current_line = exp.line # convert s-exps into literals where possible args = process_arguments(exp) process_translate_call(receiver, method, args) else # even if this isn't a translate call, its arguments might contain # one process exp.shift until exp.empty? end s end |
#process_defn(exp) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/i18nliner/extractors/ruby_extractor.rb', line 30 def process_defn(exp) exp.shift @current_defn = exp.shift process exp.shift until exp.empty? @current_defn = nil s() end |