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