Sha256: 44e82e806798e0c5e3d54b128fb30158270482cc0b74da2efd278e4cb425de16
Contents?: true
Size: 1.02 KB
Versions: 6
Compression:
Stored size: 1.02 KB
Contents
require 'ostruct' class OpenStruct # Access a value in the OpenStruct by key, like a Hash. # This increases OpenStruct's "duckiness". # # o = OpenStruct.new # o.t = 4 # o['t'] #=> 4 # def [](key) key = key.to_sym unless key.is_a?(Symbol) @table[key] end # Set a value in the OpenStruct by key, like a Hash. # # o = OpenStruct.new # o['t'] = 4 # o.t #=> 4 # def []=(key,val) raise TypeError, "can't modify frozen #{self.class}", caller(1) if self.frozen? key = key.to_sym unless key.is_a?(Symbol) @table[key]=val end end # _____ _ # |_ _|__ ___| |_ # | |/ _ \/ __| __| # | | __/\__ \ |_ # |_|\___||___/\__| # =begin test require 'test/unit' class TCOpenStruct < Test::Unit::TestCase def test_op_fetch o = OpenStruct.new( { :a => 1 } ) assert_equal( 1, o[:a] ) end def test_op_store o = OpenStruct.new( { :a => 1 } ) assert_nothing_raised { o[:b] = 2 } assert_equal( 2, o.b ) end end =end
Version data entries
6 entries across 6 versions & 1 rubygems