summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/compile.rb
Commit message (Collapse)AuthorAgeFilesLines
* Changing the name of the Compile class to Compiler,Luke Kanies2008-02-111-467/+0
| | | | | since it's stupid to have a class named after a verb.
* Refactoring the interface between the Compile classLuke Kanies2008-02-111-3/+1
| | | | | and the AST::Node class to match that to the definitions and AST classes.
* Changing some methods in the Compile class toLuke Kanies2008-02-111-23/+23
| | | | | be more internally consistent (switched store_resource to add_resource, and store_override to add_override).
* Fixed #1030 - class and definition evaluation has been significantlyLuke Kanies2008-02-111-9/+1
| | | | | | refactored, fixing this problem and making the whole interplay between the classes, definitions, and nodes, and the Compile class much cleaner.
* Converting the Compile class to use a Node::Catalog instanceLuke Kanies2008-02-111-56/+11
| | | | | as its resource container, instead of having its own behaviour around resource uniqueness.
* Moving all of the tests for Puppet::Parser::Compile toLuke Kanies2008-02-111-5/+16
| | | | | | rspec, so I can refactor the class to more heavily rely on a Node::Catalog instead of doing its own resource container management.
* Applying a fix for #998 -- I used a patch equivalent toLuke Kanies2008-01-191-0/+3
| | | | | bartv's, although I could not use his commit because it was against the 'master' branch instead of 0.24.x.
* Fixing #982 -- I have completely removed the GRATR graph libraryLuke Kanies2008-01-071-5/+1
| | | | from the system, and implemented my own topsort method.
* Fixing #971 -- classes can once again be included multipleLuke Kanies2008-01-071-0/+3
| | | | times.
* Renaming 'configuration' to 'catalog', fixing #954.Luke Kanies2007-12-111-20/+20
|
* Fixing the first part of #787. Not all collections wereLuke Kanies2007-11-201-4/+5
| | | | | | | | being evaluated on the first pass because they were being deleted from the collections list during evaluation, which caused some to get skipped. This commit fixes that problem, which helps in the trivial cases where the collections are in the same scope. I expect it's still broken for more complicated usages.
* Fixing #800 by refactoring how configurations are retrievedLuke Kanies2007-11-121-6/+3
| | | | | | | | | from the server. The real problem was getting all of the validation done before any caching, which required a good bit more refactoring than I expected. In actuality, this commit is relatively small even though it covers many files; most of the changes just make the code clearer or shorter.
* Moving some compile tests to the spec/ directory, andLuke Kanies2007-11-121-5/+14
| | | | | | | | | | | | switching the node scope to no longer be lazy evaluation, just like I switched 'main'. When I made all of these classes and nodes lazy evaluated, I should have decoupled my real goal (using resources to evaluate them) from the idea of lazy-evaluating them, and this basically does that. I also changed the scope heirarchy slightly so that scopes will tend to be below the node scope, altho this was already generally the case.
* Changing the 'main' class to no longer be lazy-evaluated.Luke Kanies2007-11-121-0/+2
| | | | | It was getting evaluated after node classes, which caused even stranger ordering issues.
* Switching the class resource evaluation to only happenLuke Kanies2007-11-081-4/+7
| | | | | when using :include, not (for example) when evaluating node classes.
* Classes once again get evaluated immediately when theLuke Kanies2007-11-081-0/+1
| | | | | | | | | | 'include' function is used, instead of being lazy-evaluated. Previous work caused resources to get created to model these classes, but in the process, I removed the fact that the classes were evaluated immediately. This meant that you couldn't guarantee that a class was evaluated before you went to use its variables.
* This commit is focused on getting the 'puppet' executableLuke Kanies2007-10-051-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | to work. As a result, it involves a lot of integration-level testing, and a lot of small design changes to make the code actually work. In particular, indirections can now have default termini, so that configurations and facts default to their code terminus Also, I've removed the ability to manually control whether ast nodes are used. I might need to add it back in later, but if so it will be in the form of a global setting, rather than the previous system of passing it through 10 different classes. Instead, the parser detects whether there are AST nodes defined and requires them if so or ignores them if not. About 75 tests are still failing in the main set of tests, but it's going to be a long slog to get them working -- there are significant design issues around them, as most of the failures are a result of tests trying to emulate both the client and server sides of a connection, which normally would have different fact termini but in this case must have the same terminus just because they're in the same process and are global. The next step, then, is to figure that process out, thus finding a way to make this all work.
* Fixing some failed tests. Mostly cleanup. Next is to make all of the user ↵Luke Kanies2007-09-071-1/+5
| | | | tests pass again, dammit.
* Flipped the switch so that compiles now return a Configuration instance ↵Luke Kanies2007-09-041-4/+5
| | | | instead of pre-extracting the configuration.
* Successfully modified all tests and code so that all language tests pass ↵Luke Kanies2007-09-041-9/+5
| | | | again. This is the majority of the work necessary to make the separate "configuration" object work.
* We now have a real configuration object, as a subclass of GRATR::Digraph, ↵Luke Kanies2007-09-041-107/+35
| | | | that has a resource graph including resources for the container objects like classes and nodes. It is apparently functional, but I have not gone through all of the other tests to fix them yet. That is next.
* More refactoring. I have removed a few more extraneous methods from Scope, ↵Luke Kanies2007-09-031-4/+8
| | | | mostly just pointing directly to the compile, and I have begun (but commented out) the move to having resources to model each of the classes and nodes, in addition to the definitions. This will, again, enable a real Configuration object, and it will enable class versioning and similar features.
* Deleting old documentation that somehow made it back into the tree in the ↵Luke Kanies2007-09-011-5/+11
| | | | switch to git, and refactoring the evaluate_classes method on the compile object so I can use resources as intermediaries, thus making classes do late-binding evaluation.
* And we have multiple environment support in the parser. The only remaining ↵Luke Kanies2007-08-251-1/+2
| | | | piece to make this complete is to add multiple environment support to the fileserver. I also renamed Configuration.rb to Compile.rb (that is, I fixed all the classes that used to know it as a configuration).
* Renaming the "configuration" object to "compile", because it is only a ↵Luke Kanies2007-08-251-0/+558
transitional object and I want the real "configuration" object to be the thing that I pass from the server to the client; it will be a subclass of GRATR::Digraph.