Flowdock
method

translate_line

Importance_0
RSpec latest stable (1.3.1) - 0 notes - Class: Spec::Translator

Method deprecated or moved

This method is deprecated or moved on the latest stable version. The last existing version (1.1.4) is shown here.

translate_line(line) public

No documentation

This method has no description. You can help the RSpec community by adding new notes.

Hide source
# File lib/spec/translator.rb, line 36
    def translate_line(line)
      # Translate deprecated mock constraints
      line.gsub!(/:any_args/, 'any_args')
      line.gsub!(/:anything/, 'anything')
      line.gsub!(/:boolean/, 'boolean')
      line.gsub!(/:no_args/, 'no_args')
      line.gsub!(/:numeric/, 'an_instance_of(Numeric)')
      line.gsub!(/:string/, 'an_instance_of(String)')

      return line if line =~ /(should_not|should)_receive/
      
      line.gsub!(/(^\s*)context([\s*|\(]['|"|A-Z])/, '\1describe\2')
      line.gsub!(/(^\s*)specify([\s*|\(]['|"|A-Z])/, '\1it\2')
      line.gsub!(/(^\s*)context_setup(\s*[do|\{])/, '\1before(:all)\2')
      line.gsub!(/(^\s*)context_teardown(\s*[do|\{])/, '\1after(:all)\2')
      line.gsub!(/(^\s*)setup(\s*[do|\{])/, '\1before(:each)\2')
      line.gsub!(/(^\s*)teardown(\s*[do|\{])/, '\1after(:each)\2')
      
      if line =~ /(.*\.)(should_not|should)(?:_be)(?!_)(.*)/m
        pre = $1
        should = $2
        post = $3
        be_or_equal = post =~ /(<|>)/ ? "be" : "equal"
        
        return "#{pre}#{should} #{be_or_equal}#{post}"
      end
      
      if line =~ /(.*\.)(should_not|should)_(?!not)\s*(.*)/m
        pre = $1
        should = $2
        post = $3
        
        post.gsub!(/^raise/, 'raise_error')
        post.gsub!(/^throw/, 'throw_symbol')
        
        unless standard_matcher?(post)
          post = "be_#{post}"
        end
        
        # Add parenthesis
        post.gsub!(/^(\w+)\s+([\w|\.|\,|\(.*\)|\'|\"|\:|@| ]+)(\})/, '\1(\2)\3') # inside a block
        post.gsub!(/^(redirect_to)\s+(.*)/, '\1(\2)') # redirect_to, which often has http:
        post.gsub!(/^(\w+)\s+([\w|\.|\,|\(.*\)|\{.*\}|\'|\"|\:|@| ]+)/, '\1(\2)')
        post.gsub!(/(\s+\))/, ')')
        post.gsub!(/\)\}/, ') }')
        post.gsub!(/^(\w+)\s+(\/.*\/)/, '\1(\2)') #regexps
        line = "#{pre}#{should} #{post}"
      end

      line
    end
Register or log in to add new notes.