Make sure you view the correct docs: latest release, master.
Welcome to Tool, the general purpose Ruby library used by Sinatra 2.0, Mustermann and related projects.
Mixin for easy method decorations.
class Frank extend Tool::Decoration def self.get(path, &block) decorate(block) do |method| puts "mapping GET #{path} to #{method}" end end end class MyApp < Frank get '/hi' do "Hello World" end get '/'; get '/index.php' def index "This is the index page." end end
Weak reference caching based on key equality. Used for caching.
class ExpensiveComputation @map = Tool::EqualityMap.new def self.new(*args) @map.fetch(*args) { super } end end
Note that fetch
is not guaranteed to return the object, even if it has not been garbage collected yet, especially when used concurrently. Therefore, the block passed to fetch
has to be idempotent.
Have thread local values without them actually being thread global.
Advantages:
local = Tool::ThreadLocal.new local[:key] = "value" Thread.new do local[:key] = "other value" puts local[:key] # other value end.join puts local[:key] # value
Usage with a pre-filled array:
local = Tool::ThreadLocal.new([:foo]) local << :bar Thread.new { p local }.join # [:foo] p local # [:foo, :bar]
Enables Ruby's built-in warnings (-w) but filters out those caused by third-party gems. Does not invlove any manual set up.
require 'tool/warning_filter' Foo = 10 Foo = 20
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4