4 * Fix regression in `PathsFilter`
9 * Sync i18n with Cucumber Gherkin
10 * Drop support for HHVM tests on Travis
11 * Add `TableNode::fromList()` method (thanks @TravisCarden)
12 * Add `ExampleNode::getOutlineTitle()` method (thanks @duxet)
13 * Use realpath, so the feature receives the cwd prefixed (thanks @glennunipro)
14 * Explicitly handle non-two-dimensional arrays in TableNode (thanks @TravisCarden)
15 * Fix to line/linefilter scenario runs which take relative paths to files (thanks @generalconsensus)
20 * Fix partial paths matching in `PathsFilter`
25 * Provide clearer exception for non-writeable cache directories
30 * Ensure we reset tags between features
35 * Sync 18n with gherkin 3
40 * Ensure keywords are trimmed when syncing translations
41 * Sync 18n with cucumber
46 * Added validation enforcing that all rows of a `TableNode` have the same number of columns
47 * Added `TableNode::getColumn` to get a column from the table
48 * Sync 18n with cucumber
53 * Added `setFilters(array)` method to `Gherkin` class
54 * Added `NarrativeFilter` for non-english `RoleFilter` lovers
59 * Fix parsing of features without line feed at the end
64 * Added `getKeyword()` and `getKeywordType()` methods to `StepNode`, deprecated `getType()`.
70 * Properly handle tables with rows terminating in whitespace
75 * Handle case where Gherkin cache is broken
80 * Fixed the compatibility with PHP 5.6-beta by avoiding to use the broken PHP array function
81 * The YamlFileLoader no longer extend from ArrayLoader but from AbstractFileLoader
86 * Fixed scenario tag filtering
87 * Do not allow multiple multiline step arguments
88 * Sync 18n with cucumber
93 * Changed the behavior when no loader can be found for the resource. Instead of throwing an exception, the
94 Gherkin class now returns an empty array.
99 * Dropped the dependency on the Symfony Finder by using SPL iterators directly
100 * Added testing on HHVM on Travis. HHVM is officially supported (previous release was actually already compatible)
105 * All paths passed to PathsFilter are converted using realpath
110 * Add `ComplexFilterInterace` that has complex behavior for scenarios and requires to pass
112 * `TagFilter` is an instance of a `ComplexFilterInterace` now
117 * Example node is a scenario
118 * Nodes do not have uprefs (memory usage fix)
119 * Scenario filters do not depend on feature nodes
124 * All paths passed to PathsFilter are converted using realpath
129 * TableNode is now traversable using foreach
130 * All possibly thrown exceptions implement Gherkin\Exception interface
131 * Sync i18n with cucumber
136 * Extend ExampleNode with additional methods
141 * Extract `KeywordNodeInterface` and `ScenarioLikeInterface`
142 * Add `getIndex()` methods to scenarios, outlines, steps and examples
143 * Throw proper exception for fractured node tree
148 * Use versioned subfolder in FileCache
153 * A lot of optimizations in Parser and Lexer
154 * Node tree is now immutable by nature (no setters)
155 * Example nodes are now part of the node tree. They are lazily generated by Outline node
156 * Sync with latest cucumber i18n
161 * Fix leaks in memory cache
166 * Fix encoding bug introduced with previous release
167 * Sync i18n with cucumber
172 * Explicitly use utf8 encoding
177 * Support `an` prefix with RoleFilter
189 * Fix dependency version requirement
194 * Features filtering behavior change. Now emptified (by filtering) features
195 that do not match filter themselves are removed from resultset.
196 * Small potential bug fix in TableNode
201 * Fixed bug in i18n syncing script
202 * Resynced Gherkin i18n
207 * Support long row hashes in tables ([see](https://github.com/Behat/Gherkin/issues/40))
208 * Synced Gherkin i18n
213 * Fixed issue with loading empty features
214 * Synced Gherkin i18n
219 * Fixed exception message for "no loader found"
224 * Fixed minor loader bug with empty base path
225 * Synced Gherkin i18n
230 * Added ability to filter outline scenarios by line and range filters
231 * Synced Gherkin i18n
232 * Refactored table parser to read row line numbers too
237 * Fixed StepNode `getLanguage()` and `getFile()`
242 * Features freeze after parsing
243 * Implemented GherkinDumper (@Halleck45)
244 * Synced i18n with Cucumber
245 * Updated inline documentation
250 * Fixed caching bug, where `isFresh()` always returned false
255 * Added parser caching layer
256 * Added support for table delimiter escaping (use `\|` for that)
257 * Added LineRangeFilter (thanks @headrevision)
258 * Synced i18n dictionary with cucumber/gherkin
263 * Synced i18n dictionary with cucumber/gherkin
268 * Fixed issue about parsing features without indentation
273 * Background titles support
274 * Correct parsing of titles/descriptions (hirarchy lexing)
275 * Migration to the cucumber/gherkin i18n dictionary
276 * Speed optimizations
277 * Refactored KeywordsDumper
284 * Read feature description even if it looks like a step
289 * Removed file loading routines from Parser (fixes `is_file()` issue on some systems - thanks
295 * Updated spanish trasnaltion (@anbotero)
296 * Integration with Composer and Travis CI
301 * Updated pt language step types (@danielcsgomes)
307 * Return all tags, including inherited in `Scenario::getTags()`
308 * New `Feature::getOwnTags()` and `Scenario::getOwnTags()` method added,
309 which returns only own tags
314 * Fixed comments parsing.
315 You can’t have comments at the end of a line # like this
316 # But you can still have comments at the beginning of a line
321 * Added `getRaw()` method to PyStringNode
332 * Fixed bug, introduced with 1.0.4 - hash in PyStrings
337 * Fixed inability to comment pystrings
342 * Fixed introduced with 1.0.2 pystring parsing bug
347 * Fixed bugs in text with comments parsing
359 1.0.0RC2 / 2011-02-25
360 =====================
363 * Missing phpunit config
365 1.0.0RC1 / 2011-02-15
366 =====================
368 * Huge optimizations to Lexer & Parser
369 * Additional loaders (Yaml, Array, Directory)
370 * Filters (Tag, Name, Line)
372 * Nodes optimizations
373 * Additional tests for exceptions and translations
379 * New Parser & Lexer (based on AST)
380 * New verbose parsing exception handling
381 * New translation mechanics
382 * 47 brand new translations (see i18n)
383 * Full test suite for everything from AST nodes to translations