Class: Rex::Struct2::CStruct_Values

Inherits:
Object
  • Object
show all
Defined in:
lib/rex/struct2/c_struct.rb

Instance Method Summary collapse

Constructor Details

#initialize(obj) ⇒ CStruct_Values

Returns a new instance of CStruct_Values.



11
12
13
# File 'lib/rex/struct2/c_struct.rb', line 11

def initialize(obj)
	@obj = obj
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(sym, *args) ⇒ Object

this one is for HD, the whiniest girl around… allow for like v.field = whatever



29
30
31
32
33
34
35
# File 'lib/rex/struct2/c_struct.rb', line 29

def method_missing(sym, *args)
	if sym.to_s[-1] == "="[0]
		return self[sym.to_s[0 .. -2]] = args[0]
	else
		return self[sym.to_s]
	end
end

Instance Method Details

#[](*args) ⇒ Object



15
16
17
18
19
# File 'lib/rex/struct2/c_struct.rb', line 15

def [](*args)
	o = @obj[*args]
	return if !o
	return o.value
end

#[]=(*args) ⇒ Object



21
22
23
24
25
# File 'lib/rex/struct2/c_struct.rb', line 21

def []=(*args)
	o = @obj[*args[0 .. -2]]
	return if !o
	o.value = args[-1]
end