Sha256: 898af6e5e21ddaefba87f5db0fe7f073b8cf8ac633b5bf55b720edbb4ff0d435

Contents?: true

Size: 493 Bytes

Versions: 3

Compression:

Stored size: 493 Bytes

Contents

class Shoes
  class Widget
    def self.inherited klass, &blk
      m = klass.inspect.downcase.split('::').last
      Shoes::App.class_eval do
        define_method m do |*args, &blk|
          klass.class_variable_set :@@__app__, self
          klass.new *args, &blk
        end
      end
      klass.class_eval do
        define_method :method_missing do |*args, &blk|
          klass.class_variable_get(:@@__app__).send *args, &blk
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
green_shoes-0.214.0 lib/shoes/widget.rb
green_shoes-0.207.0 lib/shoes/widget.rb
green_shoes-0.201.0 lib/shoes/widget.rb