Sha256: 90b30d4c3388e3084a17994c4dce520a4265de6beecb23017c1a1e994103916e
Contents?: true
Size: 1.06 KB
Versions: 60
Compression:
Stored size: 1.06 KB
Contents
require_relative 'abstract_command_handler' class ArrayGetItemHandler < AbstractCommandHandler def initialize @required_parameters_count = 2 end def process(command) begin if command.payload.length < @required_parameters_count raise ArgumentError.new "Array get item parameters mismatch" end if command.payload[0].is_a? Array return get_item_array(command) elsif command.payload[0].is_a? Hash return get_item_hash(command) else raise ArgumentError.new "Cannot get element from %s" % [command.payload[0]] end rescue Exception => e e end end def get_item_array(command) array = command.payload[0] indexes = if command.payload[1].is_a? Array command.payload[1] else command.payload[1..] end if array.is_a? Array indexes.each { |i| array = array[i] } array end end def get_item_hash(command) hash = command.payload[0] key = command.payload[1] hash[key] end end
Version data entries
60 entries across 30 versions & 1 rubygems