Class: ReceiveChar

Inherits:
ReturnStatus show all
Defined in:
lib/ruby-agi/rs/receive_char.rb

Instance Method Summary collapse

Methods inherited from ReturnStatus

#command, #command_error?, #message, #result, #return_code, #to_s

Constructor Details

#initialize(command, response) ⇒ ReceiveChar

Returns a new instance of ReceiveChar.



44
45
46
# File 'lib/ruby-agi/rs/receive_char.rb', line 44

def initialize(command, response)
	super(command, response)
end

Instance Method Details

#charObject



94
95
96
97
98
99
100
101
102
# File 'lib/ruby-agi/rs/receive_char.rb', line 94

def char
	if result == '0'
		return nil
	elsif not failure?
		return result.to_i.chr
	else
		return nil
	end
end

#error?Boolean

Returns:

  • (Boolean)


104
105
106
# File 'lib/ruby-agi/rs/receive_char.rb', line 104

def error?
	return command_error?
end

#failure?Boolean

Returns:

  • (Boolean)


82
83
84
85
86
87
88
89
90
91
92
# File 'lib/ruby-agi/rs/receive_char.rb', line 82

def failure?
	if @is_failure.nil?
		if result == '-1'
			@is_failure = true
		else
			@is_failure = false
		end
	end

	return @is_failure
end

#hangup?Boolean

Returns:

  • (Boolean)


61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/ruby-agi/rs/receive_char.rb', line 61

def hangup?
	if @is_hangup.nil?
		rgx = Regexp.new(/\(hangup\)$/)
		if rgx.match(response)
			@is_hangup = true

			if not failure?
				raise(UnknownError, "Please report to [email protected] with as much information as you can provide")
			end
		else
			@is_hangup = false
		end
	end

	return @is_hangup
end

#responseObject



108
109
110
# File 'lib/ruby-agi/rs/receive_char.rb', line 108

def response
	return message
end

#success?Boolean

Returns:

  • (Boolean)


78
79
80
# File 'lib/ruby-agi/rs/receive_char.rb', line 78

def success?
	return ((not timeout?) and (not failure?))
end

#timeout?Boolean

Returns:

  • (Boolean)


48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/ruby-agi/rs/receive_char.rb', line 48

def timeout?
	if @is_timeout.nil?
		rgx = Regexp.new(/\(timeout\)$/)
		if rgx.match(response)
			@is_timeout = true
		else
			@is_timeout = false
		end
	end

	return @is_timeout
end