README.md in konstructor-0.3.0 vs README.md in konstructor-0.4.0

- old
+ new

@@ -6,14 +6,15 @@ [travis]: http://travis-ci.org/snovity/konstructor [coveralls]: https://coveralls.io/r/snovity/konstructor # Konstructor -Konstructor is a small gem that gives you multiple +This is a small gem that gives you multiple constructors in Ruby. -Use `konstructor` keyword to declare constructors additional to the defaul one: +Use `konstructor` keyword to declare constructors additional +to the defaul one: ```ruby class SomeClass konstructor def create(val) @val = val @@ -156,12 +157,12 @@ [Limitations page](https://github.com/snovity/konstructor/wiki/Limitations) for details. #### Using with other gems -Konstructor doesn't affect other gems, including those -that depend on metaprogramming, such as +Konstructor doesn't affect other gems depending on metaprogramming, +such as [rake](https://github.com/ruby/rake), [thor](https://github.com/erikhuda/thor), [contracts](https://github.com/egonSchiele/contracts.ruby), etc. For instnace, this is how Konstructor works with contracts: @@ -189,9 +190,22 @@ #### Performance Konstructor does all its work when class is being defined. Once class has been defined, it's just standard Ruby instance creation. Therefore, there is no runtime performance penalty. + +As for the cost of declaring a constructor at initial load time, +it's roughly the same as declaring 3 properties with `attr_accessor`. +```ruby + attr_accessor :one, :two, :three + + # following declaration take the same time as above declaration + konstructor + def create + end +``` +See [Benchmarks page](https://github.com/snovity/konstructor/wiki/Benchmarks) +for details. Konstructor doesn't depend on other gems. #### Thread safety