Beispiel #1
0
        private static void Pack(RantPackage package, string contentPath)
        {
            foreach (var path in Directory.EnumerateFiles(contentPath, "*.*", SearchOption.AllDirectories)
                     .Where(p =>
                            p.EndsWith(".rant", StringComparison.OrdinalIgnoreCase) ||
                            p.EndsWith(".rants", StringComparison.OrdinalIgnoreCase) ||
                            p.EndsWith(".rantpgm", StringComparison.OrdinalIgnoreCase)))
            {
                RantProgram pattern;
                switch (Path.GetExtension(path).ToLower())
                {
                case ".rantpgm":
                    pattern = RantProgram.LoadFile(path);
                    break;

                default:
                    pattern = RantProgram.CompileFile(path);
                    break;
                }
                string relativePath;
                TryGetRelativePath(contentPath, path, out relativePath, true);
                pattern.Name = relativePath;
                package.AddResource(pattern);
                Console.WriteLine("+ " + pattern.Name);
            }

            foreach (string path in Directory.GetFiles(contentPath, "*.table", SearchOption.AllDirectories))
            {
                Console.WriteLine("+ " + path);
                var table = RantDictionaryTable.FromStream(Path.GetFileNameWithoutExtension(path), File.Open(path, FileMode.Open));
                package.AddResource(table);
            }
        }
Beispiel #2
0
        private static void Pack(RantPackage package, string contentPath)
        {
            foreach (string path in Directory.EnumerateFiles(contentPath, "*.*", SearchOption.AllDirectories)
                     .Where(p => p.EndsWith(".rant") || p.EndsWith(".rants")))
            {
                var    pattern = RantProgram.CompileFile(path);
                string relativePath;
                TryGetRelativePath(contentPath, path, out relativePath, true);
                pattern.Name = relativePath;
                package.AddResource(pattern);
                Console.WriteLine("+ " + pattern.Name);
            }

            foreach (string path in Directory.GetFiles(contentPath, "*.table", SearchOption.AllDirectories))
            {
                Console.WriteLine("+ " + path);
                var table = RantDictionaryTable.FromStream(Path.GetFileNameWithoutExtension(path), File.Open(path, FileMode.Open));
                package.AddResource(table);
            }
        }
Beispiel #3
0
        public void SaveLoadRun()
        {
            var package = new RantPackage
            {
                ID          = "TestPackage",
                Description = "This is a test.",
                Title       = "Test Package?!",
                Version     = new RantPackageVersion(1, 1, 0)
            };

            package.AddResource(RantDictionaryTable.FromStream("nouns", File.Open("Tables/nouns.table", FileMode.Open)));
            package.AddResource(RantProgram.CompileString("TestProgram", @"[case:title]<noun-food-fruit-yellow> [rs:5;,\s]{[rn]}"));
            package.Save("TestPackage.rantpkg");

            package = RantPackage.Load("TestPackage.rantpkg");
            rant.LoadPackage(package);

            Assert.AreEqual("Banana 1, 2, 3, 4, 5", rant.DoName("TestProgram").Main);
            Assert.AreEqual("TestPackage", package.ID);
            Assert.AreEqual("This is a test.", package.Description);
            Assert.AreEqual("Test Package?!", package.Title);
            Assert.AreEqual("1.1.0", package.Version.ToString());
        }