Sha256: 1d5bc6078c4e1ee25689737a2f8abd8f2a46e0a1a48f890cc1cac1644e31f61f

Contents?: true

Size: 965 Bytes

Versions: 16

Compression:

Stored size: 965 Bytes

Contents

ENV = Object.new

class << ENV
  def [](name)
    `process.env[#{name}] || nil`
  end

  def []=(name, value)
    `process.env[#{name.to_s}] = #{value.to_s}`
  end

  def key?(name)
    `process.env.hasOwnProperty(#{name})`
  end

  def empty?
    `Object.keys(process.env).length === 0`
  end

  def keys
    `Object.keys(process.env)`
  end

  def delete(name)
    %x{
      var value = process.env[#{name}] || nil;
      delete process.env[#{name}];
      return value;
    }
  end

  def fetch(key, default_value = undefined, &block)
    return self[key] if key?(key)
    return yield key if block_given?
    return default_value unless `typeof(#{default_value}) === 'undefined'`
    raise KeyError, 'key not found'
  end

  def to_s
    'ENV'
  end

  def to_h
    keys.to_h { |k| [k, self[k]] }
  end

  def merge(keys)
    to_h.merge(keys)
  end

  alias has_key? key?
  alias include? key?
  alias inspect to_s
  alias member? key?
  alias to_hash to_h
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
opal-1.7.4 stdlib/nodejs/env.rb
opal-1.7.3 stdlib/nodejs/env.rb
opal-1.7.2 stdlib/nodejs/env.rb
opal-1.7.1 stdlib/nodejs/env.rb
opal-1.7.0 stdlib/nodejs/env.rb
opal-1.7.0.rc1 stdlib/nodejs/env.rb
opal-1.6.1 stdlib/nodejs/env.rb
opal-1.6.0 stdlib/nodejs/env.rb
opal-1.6.0.rc1 stdlib/nodejs/env.rb
opal-1.6.0.alpha1 stdlib/nodejs/env.rb
opal-1.5.1 stdlib/nodejs/env.rb
opal-1.5.0 stdlib/nodejs/env.rb
opal-1.5.0.rc1 stdlib/nodejs/env.rb
opal-1.4.1 stdlib/nodejs/env.rb
opal-1.4.0 stdlib/nodejs/env.rb
opal-1.4.0.alpha1 stdlib/nodejs/env.rb