Sha256: 58fdb8901491dbe018b917af0c16b71a68647bfca36250f702e7a6e5778fff5d

Contents?: true

Size: 425 Bytes

Versions: 3

Compression:

Stored size: 425 Bytes

Contents

module Kernel

  # Like `instance_assign`, but only assigns an instance variable if
  # it does not already exist.
  #
  #     @a = 9
  #     instance_extract('@a'=>1, '@b'=>2)
  #     @a   #=> 9
  #     @b   #=> 2
  #
  # CREDIT: T. Yamada

  def instance_extract(hash)
    hash.each do |k,v|
      k = "@#{k}" if k !~ /^@/
      instance_variable_set(k, v) unless instance_variable_defined?(k)
    end
    self
  end

end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
facets-glimmer-3.2.0 lib/core/facets/kernel/instance_extract.rb
facets-3.1.0 lib/core/facets/kernel/instance_extract.rb
facets-3.0.0 lib/core/facets/kernel/instance_extract.rb