class XMLRPCStruct
Base class for XML-RPC structures. Stores key and values pairs. Key names are mapped to method names by converting '-' to '_' characters.
Base class for XML-RPC structures. Stores key and values pairs. Key names are mapped to method names by converting '-' to '_' characters.
Public Class Methods
new(members)
click to toggle source
members A list of the structure's key names or nil if any key names are allowed.
# File lib/ec2/amitools/util.rb, line 73 def initialize members unless members.kind_of? Array or members.nil? raise ArgumentError.new( "invalid members argument" ) end @members = members end
Public Instance Methods
method_missing( method_symbol, argument=nil )
click to toggle source
Provide direct access to individual instance elements by methods named after the element's key.
# File lib/ec2/amitools/util.rb, line 82 def method_missing( method_symbol, argument=nil ) # Here kid, play with this loaded gun... method = method_symbol.to_s # Determine if setter or getter call and remove '=' if setter. setter = /[\S]+=/.match(method) member = (setter ? method.slice(0, method.size - 1) : method) # Map method name to member name. member = member.gsub('_', '-') # If valid attribute set or get accordingly. If the member list is nil then # any members are allowed. if @members.nil? or @members.include?( member ) if setter raise ArgumentError, "value for key #{member} may not be nil" if argument.nil? self[member] = argument else self[member] end else raise NoMethodError.new( method ) end end