lib/rio/context.rb in rio-0.3.7 vs lib/rio/context.rb in rio-0.3.8

- old
+ new

@@ -1,8 +1,8 @@ #-- # =============================================================================== -# Copyright (c) 2005, Christopher Kleckner +# Copyright (c) 2005, 2006 Christopher Kleckner # All rights reserved # # This file is part of the Rio library for ruby. # # Rio is free software; you can redistribute it and/or modify @@ -20,11 +20,11 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # =============================================================================== #++ # # To create the documentation for Rio run the command -# rake rdoc +# ruby build_doc.rb # from the distribution directory. Then point your browser at the 'doc/rdoc' directory. # # Suggested Reading # * RIO::Doc::SYNOPSIS # * RIO::Doc::INTRO @@ -48,9 +48,24 @@ @explicit = @explicit.clone end def delete(key) @values.delete(key) @explicit.delete(key) + end + def get_keystate(key) + key_exists = @values.key?(key) + key_val = @values[key] + key_explicit = @explicit[key] + [key,key_exists,key_val,key_explicit] + end + def set_keystate(key,key_exists,key_val,key_explicit) + if(key_exists) then + @values[key] = key_val + @explicit[key] = key_explicit + else + @values.delete(key) + @explicit.delete(key) + end end def set_(key,val) @values[key] = val unless @explicit[key] end def []=(key,val)