github.com/waterlink/singleton.cr
1.0.0 / published Jan 1, 2017 / repository
Singleton library for Crystal Language.
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