Sha256: d66192375f08d4229d38c4cc46f1bc49db12b9f26132e0b829fb682691626bae

Contents?: true

Size: 592 Bytes

Versions: 1

Compression:

Stored size: 592 Bytes

Contents

class Class 
  def layer( *layer_keys )
    layer_keys.each do | layer_key |
      layer_key = layer_key.to_s.downcase.to_sym
      layer_name = ContextR::layerize( layer_key )
      layer = ContextR.layer_by_name( layer_name )
      layer_in_class = ContextR::LayerInClass.new( self, layer )

      define_private_class_method( layer_key ) do
        layer_in_class
      end
    end
    
    nil
  end

protected
  def define_private_class_method( symbol, &block )
    (class << self; self; end).instance_eval do
      define_method( symbol, block )
      private symbol 
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
contextr-0.0.1 lib/core_ext/class.rb