Sha256: e69dbf4f6a17b38a7c415c7a2917b0eb513d1a9f9bc83609370628dbc7a4e66a
Contents?: true
Size: 693 Bytes
Versions: 4
Compression:
Stored size: 693 Bytes
Contents
# Module extension for defining prequisite tasks. module Taskable # Define or call a task. def task n, &block case n when Hash name, preq = *n.to_a[0] else name, preq = n, [] end task_name = "#{name}:task" define_method(task_name) do |cache,*args| cache ||= {} return cache[name] if cache.key?(name) preq.each do |q| send("#{q}:task",cache,*args) end cache[name] = block.call(*args) end private task_name end def call_target(name,*a) send("#{name}:task",nil,*a) end #def cache # @taskable_cache ||= {} #end #def function s, &b # define_method s, &b # private s #end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
ratch-0.2.1 | dev/taskable-simple.rb |
ratch-0.2.2 | dev/taskable-simple.rb |
ratch-0.3.0 | work/scrap/taskable-simple.rb |
ratch-0.1 | dev/taskable-simple.rb |