singleton~waterlink
singleton
Singleton library for Crystal. Created out of necessity to work around the problem with class variables inside of generic classes.
Installation
Add this to your application's shard.yml
:
dependencies:
singleton:
github: waterlink/singleton.cr
Usage
require "singleton"
Fetching instance of certain type
Singleton::Of(Example).instance
This uses Example.new
to produce the instance.
Making singleton out of Example(T)
class now would look like that:
class Example(T)
def self.instance
Singleton::Of(self).instance
end
end
Resetting all singletons (in tests)
Singleton.reset
Contributing
- Fork it ( https://github.com/waterlink/singleton.cr/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- waterlink Oleksii Fedorov - creator, maintainer