Method: MethodSource::CodeHelpers#expression_at
- Defined in:
- lib/method_source/code_helpers.rb
#expression_at(file, line_number, options = {}) ⇒ String
Retrieve the first expression starting on the given line of the given file.
This is useful to get module or method source code.
line 1!
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/method_source/code_helpers.rb', line 20 def expression_at(file, line_number, ={}) = { :strict => false, :consume => 0 }.merge!() lines = file.is_a?(Array) ? file : file.each_line.to_a relevant_lines = lines[(line_number - 1)..-1] || [] extract_first_expression(relevant_lines, [:consume]) rescue SyntaxError => e raise if [:strict] begin extract_first_expression(relevant_lines) do |code| code.gsub(/\#\{.*?\}/, "temp") end rescue SyntaxError raise e end end |