citrus_test

citrus_test makes it easier to test Citrus grammars.

Quick Start

require 'citrus_test'

# citrus_test expects all your Citrus grammars to be located in grammar_dir.
# The path grammar_dir is set to is relative to the directory that the source
# file that set it is in. (If you're using irb, use an absolute path.)
GrammarTest.grammar_dir = "../grammars/"

# What you name your class is important. For example, this class will use the
# grammar located at ../grammars/nahuatal_language.citrus. The name of your
# class *must* end in Test.
class NahuatalLanguageTest < GrammarTest
    def test_possession
        # The parse() method returns the .value of the result of parsing.
        possessed_house = parse(:possession, "no-kal")
        assert_equal('house', possessed_house)

        # This asserts that:
        # _ = parse(:possession, "no-kal")
        # _ # => "house"
        # _.possessor # => "me"
        assert_parses(:possession, "no-kal", "house", possessor: "me")

        # deny_parses() does the opposite.
        deny_parses(:possession, "kal-li")
    end
end