Sha256: 07c5ff07cb93f3f68c9183a7bd61a660923d5144247a48320d5b67421f36cf1a

Contents?: true

Size: 815 Bytes

Versions: 1

Compression:

Stored size: 815 Bytes

Contents

module Kernel

  def state(data=nil)
    if state
      instance_variables.each do |iv|
        name = iv.to_s.sub(/^[@]/, '').to_sym
        instance_variable_set(iv, data[name])
      end
    else
      data = Hash.new
      instance_variables.each do |iv|
        name = iv.to_s.sub(/^[@]/, '').to_sym
        data[name] = instance_variable_get(iv)
      end
      data
    end
  end

end

class Array
  def state(data=nil)
    data ? replace(data) : dup
  end
end

class String
  def state(data=nil)
    data ? replace(data) : dup
  end
end

class Hash
  def state(data=nil)
    data ? replace(data) : dup
  end
end

class Struct
  def state(data=nil)
    if data
      data.each_pair {|k,v| send(k.to_s + "=", v)}
    else
      data = Hash.new
      each_pair{|k,v| data[k] = v}
      data
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
facets-2.6.0 lib/core/facets/kernel/state.rb