Files
Orchard/src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Services/RubyScriptingRuntime.cs
Renaud Paquay 5cdb528d2b Step 2 in renaming Orchard.Scripting to Orchard.Scripting.Dlr
--HG--
branch : dev
rename : src/Orchard.Tests.Modules/Scripting/ScriptingTests.cs => src/Orchard.Tests.Modules/Scripting.Dlr/ScriptingTests.cs
rename : src/Orchard.Tests.Modules/SimpleScripting/EvaluatorTests.cs => src/Orchard.Tests.Modules/Scripting/EvaluatorTests.cs
rename : src/Orchard.Tests.Modules/SimpleScripting/ParserTests.cs => src/Orchard.Tests.Modules/Scripting/ParserTests.cs
rename : src/Orchard.Tests.Modules/SimpleScripting/SimpleScriptingTests.cs => src/Orchard.Tests.Modules/Scripting/SimpleScriptingTests.cs
rename : src/Orchard.Tests.Modules/SimpleScripting/TokenizerTests.cs => src/Orchard.Tests.Modules/Scripting/TokenizerTests.cs
rename : src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Orchard.Scripting.csproj => src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Orchard.Scripting.Dlr.csproj
2010-11-28 10:01:59 -08:00

36 lines
1.3 KiB
C#

using IronRuby;
using Microsoft.Scripting.Hosting;
namespace Orchard.Scripting.Dlr.Services {
public class RubyScriptingRuntime : IScriptingRuntime {
private readonly LanguageSetup _defaultLanguageSetup;
private readonly ScriptRuntime _scriptingRuntime;
public RubyScriptingRuntime() {
_defaultLanguageSetup = Ruby.CreateRubySetup();
var setup = new ScriptRuntimeSetup();
setup.LanguageSetups.Add(_defaultLanguageSetup);
_scriptingRuntime = new ScriptRuntime(setup);
}
public ScriptEngine GetDefaultEngine() {
return _scriptingRuntime.GetEngineByTypeName(_defaultLanguageSetup.TypeName);
}
public ScriptScope CreateScope() {
return _scriptingRuntime.CreateScope();
}
public dynamic ExecuteExpression(string expression, ScriptScope scope) {
var engine = GetDefaultEngine();
var source = engine.CreateScriptSourceFromString(expression);
return source.Execute(scope);
}
public void ExecuteFile(string fileName, ScriptScope scope) {
var engine = GetDefaultEngine();
engine.ExecuteFile(fileName, scope);
}
}
}