Sha256: 9fb01351d83a01382904115a55b0961861df32ad1a41cb69a5b9b0a2dcc8f111
Contents?: true
Size: 1.29 KB
Versions: 5
Compression:
Stored size: 1.29 KB
Contents
module Rib; module Plugin attr_accessor :disabled def enable self.disabled = false if block_given? then yield else enabled? end ensure self.disabled = true if block_given? end def disable self.disabled = true if block_given? then yield else enabled? end ensure self.disabled = false if block_given? end def enabled? !disabled end def disabled? !!disabled end # Backward compatibility def const_missing mod if Rib.const_defined?(mod) Rib.warn("Using #{mod} is deprecated, please change to Rib::#{mod}", "This compatibility layer would be removed in Rib 1.6+", "Called: #{caller.first}") Rib.const_get(mod) else super end end def self.extended mod return unless mod.name snake_name = mod.name.sub(/(\w+::)+?(\w+)$/, '\2'). gsub(/([A-Z][a-z]*)/, '\\1_').downcase[0..-2] code = (%w[enable disable].map{ |meth| <<-RUBY def #{meth}_#{snake_name} &block #{mod.name}.#{meth}(&block) end RUBY } + %w[enabled? disabled?].map{ |meth| <<-RUBY def #{snake_name}_#{meth} &block #{mod.name}.#{meth}(&block) end RUBY }).join("\n") Rib.singleton_class.module_eval(code, __FILE__, __LINE__) end end; end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
rib-1.6.1 | lib/rib/plugin.rb |
rib-1.6.0 | lib/rib/plugin.rb |
rib-1.5.4 | lib/rib/plugin.rb |
rib-1.5.3 | lib/rib/plugin.rb |
rib-1.5.2 | lib/rib/plugin.rb |