Sha256: f891b0fee330c6e21273ef94f3c71d9ea983586ee79266d27755eba2c7ccd3da

Contents?: true

Size: 477 Bytes

Versions: 5

Compression:

Stored size: 477 Bytes

Contents

#encoding: utf-8

class Class
  # Creates a subclass of the current class parametrized with a given set of
  # parameters. The parameters have form { symbol: value } and they cause
  # singleton method(s) named "symbol" be defined on the subclass, returning
  # "value".
  # 
  def parametrize parameters
    Class.new( self ).tap do |subclass|
      parameters.each_pair { |symbol, value|
        subclass.define_singleton_method symbol do value end
      }
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
y_support-2.0.31 lib/y_support/core_ext/class/misc.rb
y_support-2.0.30 lib/y_support/core_ext/class/misc.rb
y_support-2.0.29 lib/y_support/core_ext/class/misc.rb
y_support-2.0.28 lib/y_support/core_ext/class/misc.rb
y_support-2.0.26 lib/y_support/core_ext/class/misc.rb