# Changes by Version
## Unreleased
## [0.9.1] - 2016-11-03
### Added
* `Float` class (#46)
* `Array::with_capacity()`
* `Class::const_get()`
* `Class::const_set()`
* `Object::is_frozen()`
* `Object::freeze()`
* `VM::is_block_given()`
* Optional block for marking wrapped data for GC
## [0.9.0] - 2016-10-24
### Added
* `Array::concat()` (#38)
* `Array::dup()` (#38)
* `Array::pop()` (#38)
* `Array::reverse()`
* `Array::reverse_bang()`
* `Array::shift()` (#38)
* `Array::sort_bang()` (#38)
* `Array::sort()` (#38)
* `Array::to_s()` (#38)
* `Array::unshift()` (#38)
* `GC::mark()`
* `Class::wrap_data()`
* `Object::get_data()`
* `wrappable_struct!`
### Changed
* Strings with interior null-bytes can be passed to Ruby
### Fixed
* AppVeyor build freezes (#39)
## [0.8.1] - 2016-09-25
### Changed
* `VM` thread functions to receive `FnOnce` instead of `FnMut`
## [0.8.0] - 2016-09-18
See [wiki page for upgrading from 0.7.x to 0.8.0](https://github.com/d-unseductable/ruru/wiki/Upgrading-from-0.7-to-0.8).
### Added
* `VerifiedObject` trait for safe conversions between types
* `Object::try_convert_to()`
* `Error` enum convertible to exceptions
* `Result<T: Object, Error>` as a result of type conversion
* `unsafe_methods!` macro
* `Class::define_nested_class()`
* `Object::respond_to()`
* `Class::superclass()`
* `Class::ancestors()`
* `Hash::length()`
* `Object::singleton_class()`
* `attr_reader`, `attr_writer`, `attr_accessor` to `Class`
* GVL-related functions to `VM` (#34)
* Checking for presence of method arguments
* Derive `Debug`, `PartialEq` for all Ruby types
* `VM::raise()`
### Changed
* `AnyObject::to()` marked as `unsafe`
* `AnyObject::to()` moved to `Object::to()`
* `AnyObject::ty()` moved to `Object::ty()`
* `methods!` macro sets arguments to `Result<T: Object, Error>` using `try_convert_to()`
* Traits from `ruru::traits::*` module exported to top-level `ruru::*` module
* `Class::new()` receives optional superclass
* `define`, `define_method`, `define_singleton_method` moved from `Class` to `Object` trait
* `Hash::each()` yields keys and values as `AnyObject` instead of `Object` to allow safe conversions
### Fixed
* `x86` build
## [0.7.8] - 2016-07-09
### Added
* `Iterator` for `Array` (#30)
* `FromIterator` for `Array`
## [0.7.7] - 2016-07-07
### Added
* `Hash::each()`
### Fixed
* Windows build
### Removed
* Direct `libc` crate dependency
## [0.7.6] - 2016-07-05
### Added
* `RString::bytesize()`
* `RString::to_string_unchecked()`
### Changed
* Reduce the number of identifiers needed to import when using the `class!` macro
## [0.7.5] - 2016-06-30
### Added
* `VM::block_proc()`
## [0.7.4] - 2016-06-29
### Added
* `Proc` class
### Changed
* Reduce the number of identifiers needed to import when using macros
### Fixed
* Windows build (#25)
## [0.7.3] - 2016-05-07
### Added
* `NilClass`
* `Object.is_nil()`
### Changed
* Move the `ruby-sys` crate to its own repository (#17)
### Fixed
* Warnings from the `methods!` macro
## [0.7.2] - 2016-05-05
### Changed
* Refactor `Value` usage (#15)
## [0.7.1] - 2016-05-05
### Added
* `AnyObject.ty` (#13)
### Removed
* `ruru.unsafe_binding` module
## [0.7.0] - 2016-05-02
### Added
* `VM::require()` (Ruby's `require` statement)
### Changed
* `fn` required when declaring methods in `methods!` macro
----
For versions prior to 0.7.0, please see `git log`.
[0.9.1]: https://github.com/d-unseductable/ruru/compare/v0.9.0...v0.9.1
[0.9.0]: https://github.com/d-unseductable/ruru/compare/v0.8.1...v0.9.0
[0.8.1]: https://github.com/d-unseductable/ruru/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/d-unseductable/ruru/compare/v0.7.8...v0.8.0
[0.7.8]: https://github.com/d-unseductable/ruru/compare/v0.7.7...v0.7.8
[0.7.7]: https://github.com/d-unseductable/ruru/compare/v0.7.6...v0.7.7
[0.7.6]: https://github.com/d-unseductable/ruru/compare/v0.7.5...v0.7.6
[0.7.5]: https://github.com/d-unseductable/ruru/compare/v0.7.4...v0.7.5
[0.7.4]: https://github.com/d-unseductable/ruru/compare/v0.7.3...v0.7.4
[0.7.3]: https://github.com/d-unseductable/ruru/compare/v0.7.2...v0.7.3
[0.7.2]: https://github.com/d-unseductable/ruru/compare/v0.7.1...v0.7.2
[0.7.1]: https://github.com/d-unseductable/ruru/compare/v0.7.0...v0.7.1
[0.7.0]: https://github.com/d-unseductable/ruru/compare/v0.6.0...v0.7.0