Class: ActionWebService::Protocol::AbstractProtocolMessage
- Inherits:
-
Object
- Object
- ActionWebService::Protocol::AbstractProtocolMessage
- Defined in:
- lib/action_web_service/protocol/abstract.rb
Overview
:nodoc:
Direct Known Subclasses
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#return_signature ⇒ Object
Returns the value of attribute return_signature.
-
#signature ⇒ Object
Returns the value of attribute signature.
-
#type ⇒ Object
Returns the value of attribute type.
Instance Method Summary collapse
- #check_compatibility(expected_class, received_class) ⇒ Object
- #check_parameter_types(values, signature) ⇒ Object
- #checked? ⇒ Boolean
-
#initialize(options = {}) ⇒ AbstractProtocolMessage
constructor
A new instance of AbstractProtocolMessage.
Constructor Details
#initialize(options = {}) ⇒ AbstractProtocolMessage
Returns a new instance of AbstractProtocolMessage.
43 44 45 46 47 |
# File 'lib/action_web_service/protocol/abstract.rb', line 43 def initialize(={}) @signature = @return_signature = nil @options = @type = @options[:type] || CheckedMessage end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
41 42 43 |
# File 'lib/action_web_service/protocol/abstract.rb', line 41 def @options end |
#return_signature ⇒ Object
Returns the value of attribute return_signature.
39 40 41 |
# File 'lib/action_web_service/protocol/abstract.rb', line 39 def return_signature @return_signature end |
#signature ⇒ Object
Returns the value of attribute signature.
38 39 40 |
# File 'lib/action_web_service/protocol/abstract.rb', line 38 def signature @signature end |
#type ⇒ Object
Returns the value of attribute type.
40 41 42 |
# File 'lib/action_web_service/protocol/abstract.rb', line 40 def type @type end |
Instance Method Details
#check_compatibility(expected_class, received_class) ⇒ Object
76 77 78 79 80 81 82 83 84 85 |
# File 'lib/action_web_service/protocol/abstract.rb', line 76 def check_compatibility(expected_class, received_class) return if \ (expected_class == TrueClass or expected_class == FalseClass) and \ (received_class == TrueClass or received_class == FalseClass) unless received_class.ancestors.include?(expected_class) or \ expected_class.ancestors.include?(received_class) raise(ProtocolError, "value of type #{received_class.name} is not " + "compatible with expected type #{expected_class.name}") end end |
#check_parameter_types(values, signature) ⇒ Object
66 67 68 69 70 71 72 73 74 |
# File 'lib/action_web_service/protocol/abstract.rb', line 66 def check_parameter_types(values, signature) return unless checked? && signature unless signature.length == values.length raise(ProtocolError, "Signature and parameter lengths mismatch") end (1..signature.length).each do |i| check_compatibility(signature[i-1], values[i-1].class) end end |
#checked? ⇒ Boolean
62 63 64 |
# File 'lib/action_web_service/protocol/abstract.rb', line 62 def checked? @type == CheckedMessage end |