home / releases / 0_3
**David Persson (58):**

 - Updating formatting in li3 command.
 - Removing unreachable code in `li3`.
 - Adding `Command::clear()`, removing auto clear from `li3`.
 - Adding `$tn()` plural shortcut for templates.
 - Updating code parser for new shortcut translation methods.
 - Updating and enhancing `g11n extract` command.
 - Removing obsolete properties from `MessageTest`.
 - Updating g11n bootstrap code to add plural rule to root locale.
 - Rewriting `Message::translate()` to use filters.
 - Updating translation outputFilters to use new `Message::translate()`.
 - Fixing passing of params of `Message::translate()` to filters.
 - Updating locations for g11n data in app bootstrap.
 - Moving assignment of named parameters into `Command::_init()`.
 - Removing `Command::initialize()`.
 - Updating `Command` class docblocks.
 - Adding output for failed save operation.
 - Adding default app g11n data directory.
 - Updating `Gettext` catalog adapter to check if file is readable.
 - Refactoring merging and formatting of message items.
 - Fixing passing and selecting of write scope.
 - Updating `Extract` command for using a single config for extraction.
 - Updating namespace declarations.
 - Fixing namespaces in generate commands.
 - Fixing typo.
 - Updating `Extract` commmand to prompt for scope if it is empty.
 - Adding template for doc messages.
 - Refactoring determination of application context.
 - Updating argument parsing in console router.
 - Updating *nix console wrapper.
 - Adding windows console wrapper.
 - Updating formatting in li3 command.
 - Removing unreachable code in `li3`.
 - Adding `Command::clear()`, removing auto clear from `li3`.
 - Moving assignment of named parameters into `Command::_init()`.
 - Removing `Command::initialize()`.
 - Updating `Command` class docblocks.
 - Refactoring determination of application context.
 - Updating argument parsing in console router.
 - Updating *nix console wrapper.
 - Adding windows console wrapper.
 - Simplifying nested try/catch block.
 - Updating console return value handling.
 - Updating docs.
 - Updating console help generation.
 - Updating base style.
 - Updating layout and home page.
 - Updating comment formatting in CSS file.
 - Some corrections to base styles.
 - Cleaning up base stylesheet.
 - Fixing formatting of header.
 - Updating formatting in base.css. Adding general list styling.
 - Updating base.css. Pre padding. Form focus.
 - Moving styles for crumbs and paging.
 - Updating formatting in console help action. Removing unused code.
 - Updating documentation for windows.
 - `Catalog` to extend `Adaptable`.
 - Linking to site in subtitle.
 - Moving g11n data directory.

**James Logsdon (12):**

 - Adding `isset()` support to `Document` object (ticket #8).
 - Adding test for invalid console command
 - 80% coverage on `core\Libraries`
 - Adding a test for `core\Object::_parents()`
 - 98% coverage for `core\Object`
 - 100% coverage for `http\Response`
 - Fixing read test for curl
 - 100% coverage for `util\Collection`
 - Correcting format of mocks
 - 100% coverage on `util\collection\Filters`
 - Fixing code formatting
 - Fixing duplicate use line

**Joël Perras (12):**

 - Start of cookie adapter for session.
 - Adding basic Cookie read capabilities.
 - Adding partial implementation of delete() for Cookie adapter.
 - Fixing issue where empty placeholder file was being deleted during File cache adapter test run.
 - Replacing CRLF EOL markers with LF.
 - Start of cookie adapter for session.
 - Adding basic Cookie read capabilities.
 - Adding partial implementation of delete() for Cookie adapter.
 - Initial refactor of Connections class to use Adaptable base.
 - Cleaning up cookie session adapter.
 - Adding doc block to Session class.
 - Removing duplicated Cookie adapter due to adapter -> adapters namespace change.

**Matthew Harris (2):**

 - Adding Syslog logging adapter.

**Nate Abele (21):**

 - Adding fix for `view\Stream` when `echo` statements span multiple lines.
 - Cleaning up docblocks in `core\Libraries`.
 - Fixing class inheritance for `http\Base`.
 - Adding explicit array cast to `Document::__construct()` to prevent fatal errors when iterating nested objects.
 - Implementing draft for standard sockets interface, and refactoring `http\Service` to use it.
 - Fixing docblock formatting in `reflection\Inspector`.
 - Implementing draft for standard sockets interface, and refactoring `http\Service` to use it.
 - Cleanup and minor refactorings of test suite classes.
 - Refactoring `data\Model` to make schema introspection lazy, adding `Model::_connection()` as a convenience method to retrieve the connection object associated with the current model.
 - Updating docblock comments.
 - Removing API redundancies in `Document::data()`.
 - Removing API redundancies in `Document::data()`.
 - Adding plugin lookup support for assets in `http\Media::asset()`, refactoring `Html` helper.
 - Implementing magic `__set_state()` method in `core\Object`.
 - Cleaning up formatting in `Cache` classes, adding `Cache` adapter for `audit\Logger`.
 - Cleaning up formatting in `Cache` classes, adding `Cache` adapter for `audit\Logger`.
 - Fixing docblocks and cleaning up code formatting in `helper\Form`.
 - Cleaning up from merge in `helper\Form`.
 - Refactoring `Validator::check()`, implementing updated rules syntax. Fixing merge in `CouchDb` adapter, and began refactoring `Document`.
 - Updating `Model` test to comply with new `Validator::check()` API.
 - Fixing code formatting in `Syslog` adapter.

**Niel Archer (76):**

 - Updating possible SAPIs
 - Fix to have _env['PLATFORM'] assigned before _base is.
 - Fixing PHP_SELF to return more useful value.
 - Removed hack for SCRIPT_NAME
 - Fixed sequence so _env['PLATFORM'] is not overwritten when array is populated.
 - Updating .gitignore
 - Importing MySQLi adapter file
 - Adding basic methods/properties
 - Adding _execute method
 - Fixing _base() returning '\' for root on Windows.
 - Adding columns method to adapter.
 - Fixing variable name
 - Added disconnect method to MySQLi adapter
 - Adding error method to MySQLi adapter
 - Adding result method to MySQLi adapter
 - Adding value method to MySQLi Adapter.
 - Fixing some typoes
 - Adding the missing mode to MySQLi adapter's result method.
 - Fixing return value from _base() to ignore backslash.
 - Fixing return value from _base() to drop backslash character.
 - Removing SCRIPT_NAME to SCRIPT_URL fallback for CGI platforms.
 - Fixing dirname returning backslash instead of empty string.
 - Fixing testLibraryConfigAccess() so it can pass on Windows
 - Fixing last test in testTestsRun() so it will work on Windows.
 - Fixing one test in testIdentifierIntrospection() so it will work on Windows.
 - Fixing minor mistake in documentation.
 - Fixing constructor to only call encoding when one has been specified.
 - Updates to MySQLi adapter.
 - Adding tests.
 - Adding some documentation for Unit class
 - Fixing documentation of MySQLi adapter.
 - Fixing minor error
 - Documenting: alphabeticised options to make finding easier.
 - Documenting: Alphabetically sorting options to make finding a particular one easier.
 - Fixing formatting, grammar, spelling, typoes, and whitespace.
 - Fixing formatting and whitespace.
 - New docblocks.
 - Fixing links in docblocks.
 - Fixing typoes and spelling in Sqlite3 class docblock
 - Fixing some ommisions.
 - Documenting: alphabeticised options to make finding easier.
 - Fixing documentation of MySQLi adapter.
 - Documenting: Alphabetically sorting options to make finding a particular one easier.
 - Fixing formatting and whitespace.
 - Changing class dockblock of core/Libraries to sort options for easier finding.
 - Fixing regex for stripping docblock prefix.
 - Fixing whitespace and adding to dockblocks
 - Updating dockblocks.
 - Adding/updating dockblocks and fixing typoes.
 - Adding/updating dockblocks and fixing typoes.
 - Updating dockblocks to reflect changes to documentation standards.
 - Updating dockblocks to reflect changes to documentation standards.
 - Updating docblocks to reflect changes to the documentation standard.
 - Updating docblocks to reflect changes to the documentation standard.
 - Updating docblocks to reflect changes to the documentation standard.
 - Updating docblocks to reflect changes to the documentation standard.
 - Updating docblocks to reflect changes to the documentation standard.
 - Updating docblocks to reflect changes to the documentation standard.
 - Updating docblocks to reflect changes to the documentation standard.
 - Updating docblocks to reflect changes to the documentation standard.
 - Updating docblocks to reflect changes to the documentation standard.
 - Updating docblocks to reflect changes to the documentation standard.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.
 - Updating dockblocks to reflect changes to doucument standards.

**alkemann (20):**

 - Optional viewing of included files and non-tested classes for unit tests
 - Implemented filter test for `Model` requires data in `MockTag` table
 - Integration and functionl test folders for app template
 - A unit, a functional and an integration test to go in app template
 - File formatting on app template tests
 - Added. but commented out a test for getting 100% coverage on `Connections`
 - Added some tests for `Document` _isComplexTypes to achieve 100% coverage
 - Changes to `ModelTest` to make it use a `MockAdapter` currently causes fails due to required refactor of `Model`::__init()
 - Removed null return from `CouchDB` adapter on empty find
 - Added _errors class property and errors() method to `Document`
 - Updated `Model` create to retrieve default values from schema
 - `ModelTest` test for the added feature to 'create()' of using schema for default values
 - Added field parameter to the 'data' method of `Document` with tests also includes test for 'isset'
 - Added field parameter to the 'data' method of `Document` with tests also includes test for 'isset'
 - Update `FormHelper` select method to correctly create multiple selects
 - Formatting fix on `Form` helper
 - Removed newline at end of file and fixed an extra long line
 - Updated `Form` select() to accept array values for multiple selects
 - Updated `Document` data() method to match `Record` and be compatible with `Form`
 - Added `__unset()` to `Document` with tests

**gwoo (60):**

 - fixing case on MySql mock
 - fixing case again in MockMySql
 - updating tests locate and menu to include cases, integration, functional
 - fixing Group to run only cases/intregation/functional test
 - updating test menu and group all
 - initial work on test controller and reporters
 - hacking on Report
 - updating connections usage of libraries::locate
 - more refactoring of test suite
 - test suite refactor is "working" still needs more cleanup and organization
 - changing keyword preg to regex in \test\Unit::assertTags
 - updating http serivce to use contexts by default. seems to be much much faster
 - adding validates implementation
 - refactoring Model::validates. adding Record::errors
 - changing Validator::check to take array as first param
 - changing model::validates to use classes['validator']
 - renaming variable in Validator::check()
 - workgin on http
 - updating service
 - contuned refactoring of test suite. added a bunch more test cases and change url style access.
 - adding some coverage for reporters
 - adding some coverage for \test\Report
 - fixing test command
 - workign some more on standard socket interface
 - fixing stream::send
 - adding simple curl send
 - fixing router test so it does not interfere with test suite. moved Report::run() to Dispatcher::run()
 - adding tearDown to form to reset routes
 - fixing up mocks for model and document test
 - cleaning oup some tests
 - updatgin example app test cases
 - fixing bad merge
 - updating `\test\Unit::subject()` so coverage works for plugin and app tests
 - some refactoring of `\action\Request` to all passing url, data, query to constructor
 - fixing Html reporter test so it works from sub directories
 - updating console\Test and \console\Request
 - some cleanup to \console\Command and \console\Response
 - adding filters to console\Dispatcher, refactoring \console\Request to use _init
 - boosting \console\Request coverage to 100%
 - adding some exception handling to console\Dispatcher
 - updating console\Test and \console\Request
 - some cleanup to \console\Command and \console\Response
 - adding filters to console\Dispatcher, refactoring \console\Request to use _init
 - boosting \console\Request coverage to 100%
 - adding some exception handling to console\Dispatcher
 - updating some libraries
 - singularizing some namespaces, merging 0.3-console and some other changes from forks
 - fixing some errors from singularity renaming and fixing MockAdapter
 - re-adding tmp directories
 - updating FormHelper::select
 - removing unused code from \data\source\Database
 - renaming some other adapters to adapter
 - fixing mock adapter in ModelTest
 - adding exit for dispatcher exception. adding order and limit to couchdb
 - adding resource direcotry for g11n, tmp, upload, sqlite type data
 - removing exit from \console\Dispatcher, returning stdClass object with statues on exception
 - cleaning up some tests and adding resources to gitignore
 - removing app/extensions/g11n
 - renaming/removing some app/tests directories
 - removing the app test cases that are not really needed

**Joshua McNeese (2):**

- Modified `Collection` to use SPL `iterator_count()` for getting count of items, deprecating `RecordSet::count()`
- Tweaking read/write multiple test to not convert to array first (which was causing the previous test to succeed, even though it was not counting correctly)