Sha256: 295be1decf2352658af4c430957db0a1a4b08a0ffc706fb4cdd2d926c7e14609

Contents?: true

Size: 741 Bytes

Versions: 1

Compression:

Stored size: 741 Bytes

Contents

require 'ruby_parser'
require 'reek/source/config_file'
require 'reek/source/tree_dresser'

module Reek
  module Source
    #
    # A +Source+ object represents a chunk of Ruby source code.
    #
    class SourceCode
      attr_reader :desc

      def initialize(code, desc, parser = RubyParser.new)
        @source = code
        @desc = desc
        @parser = parser
      end

      def relevant_config_files
        []
      end

      def syntax_tree
        begin
          ast = @parser.parse(@source, @desc)
        rescue Racc::ParseError, RubyParser::SyntaxError => error
          $stderr.puts "#{desc}: #{error.class.name}: #{error}"
        end
        ast ||= s()
        TreeDresser.new.dress(ast)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reek-1.4.0 lib/reek/source/source_code.rb