Feature #15920 » env-no-freeze.patch
| hash.c | ||
|---|---|---|
|
return rb_hash_delete_if(env_to_hash());
|
||
|
}
|
||
|
/*
|
||
|
* call-seq:
|
||
|
* ENV.freeze -> raises TypeError
|
||
|
*
|
||
|
* Ruby does not allow ENV to be frozen, so calling ENV.freeze
|
||
|
* raises TypeError.
|
||
|
*/
|
||
|
static VALUE
|
||
|
env_freeze(VALUE self)
|
||
|
{
|
||
|
rb_raise(rb_eTypeError, "cannot freeze ENV");
|
||
|
return self; /* Not reached */
|
||
|
}
|
||
|
/*
|
||
|
* call-seq:
|
||
|
* ENV.shift -> Array or nil
|
||
| ... | ... | |
|
rb_define_singleton_method(envtbl, "filter", env_select, 0);
|
||
|
rb_define_singleton_method(envtbl, "filter!", env_select_bang, 0);
|
||
|
rb_define_singleton_method(envtbl, "shift", env_shift, 0);
|
||
|
rb_define_singleton_method(envtbl, "freeze", env_freeze, 0);
|
||
|
rb_define_singleton_method(envtbl, "invert", env_invert, 0);
|
||
|
rb_define_singleton_method(envtbl, "replace", env_replace, 1);
|
||
|
rb_define_singleton_method(envtbl, "update", env_update, 1);
|
||
| test/ruby/test_env.rb | ||
|---|---|---|
|
end
|
||
|
end
|
||
|
def test_frozen
|
||
|
assert_raise(TypeError) { ENV.freeze }
|
||
|
end
|
||
|
def test_frozen
|
||
|
ENV[PATH_ENV] = "/"
|
||
|
ENV.each do |k, v|
|
||
- « Previous
- 1
- 2
- Next »