Sha256: f550610a41d3ad8695c4712128583c6d871e7dc45724480d39d500e7b6114939

Contents?: true

Size: 513 Bytes

Versions: 24

Compression:

Stored size: 513 Bytes

Contents

class Micon::Core
  def register_extension name, &block
    name.must_be.a Symbol
    block.must_be.defined
    
    raise "extension :#{name} already registered!" if extensions.include? name

    extensions[name] = block
  end
  
  def extension name, target = nil, *args, &default_extension    
    name.must_be.a Symbol
    
    if block = extensions[name] || default_extension
      target ? target.instance_exec(*args, &block) : block.call(*args)
    end
  end
  
  def extensions; @extensions ||= {} end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
rad_core-0.2.6 lib/rad/_support/extensions.rb
rad_core-0.2.5 lib/rad/_support/extensions.rb
rad_core-0.2.4 lib/rad/_support/extensions.rb
rad_core-0.2.3 lib/rad/_support/extensions.rb
rad_core-0.2.2 lib/rad/_support/extensions.rb
rad_core-0.2.1 lib/rad/_support/extensions.rb
rad_core-0.2.0 lib/rad/_support/extensions.rb
rad_core-0.0.30 lib/rad/_support/extensions.rb
rad_core-0.0.29 lib/rad/_support/extensions.rb
rad_core-0.0.28 lib/rad/_support/extensions.rb
rad_core-0.0.27 lib/rad/_support/extensions.rb
rad_core-0.0.26 lib/rad/_support/extensions.rb
rad_core-0.0.25 lib/rad/_support/extensions.rb
rad_core-0.0.24 lib/rad/_support/extensions.rb
rad_core-0.0.23 lib/rad/_support/extensions.rb
rad_core-0.0.22 lib/rad/_support/extensions.rb
rad_core-0.0.21 lib/rad/_support/extensions.rb
rad_core-0.0.20 lib/rad/_support/extensions.rb
rad_core-0.0.19 lib/rad/_support/extensions.rb
rad_core-0.0.18 lib/rad/_support/extensions.rb