/******************************************************************************* * Copyright (c) 2005, 2016 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * *******************************************************************************/ package org.eclipse.dltk.ruby.core.tests.parser; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import org.eclipse.dltk.ast.declarations.ModuleDeclaration; import org.eclipse.dltk.compiler.env.ModuleSource; import org.eclipse.dltk.core.DLTKLanguageManager; import org.eclipse.dltk.core.tests.model.AbstractModelTests; import org.eclipse.dltk.ruby.core.RubyNature; import org.eclipse.dltk.ruby.core.tests.Activator; public abstract class AbstractRubyParserTests extends AbstractModelTests { public AbstractRubyParserTests(String testProjectName, String name) { super(testProjectName, name); } public ModuleDeclaration processScript(String name) throws Exception { ModuleDeclaration module = null; try (InputStream input = Activator.openResource(name);) { InputStreamReader reader = new InputStreamReader(input); BufferedReader br = new BufferedReader(reader); StringBuffer buffer = new StringBuffer(); while (br.ready()) { String l = br.readLine(); if (l != null) { buffer.append(l); buffer.append('\n'); } } module = (ModuleDeclaration) DLTKLanguageManager.getSourceParser( RubyNature.NATURE_ID).parse( new ModuleSource(name, buffer.toString()), null); assertNotNull(module); assertFalse(module.isEmpty()); } return module; } }