Module: Warden::Protocol::BaseMessage
- Included in:
- CopyInRequest, CopyInResponse, CopyOutRequest, CopyOutResponse, CreateRequest, CreateRequest::BindMount, CreateResponse, DestroyRequest, DestroyResponse, EchoRequest, EchoResponse, ErrorResponse, InfoRequest, InfoResponse, InfoResponse::BandwidthStat, InfoResponse::CpuStat, InfoResponse::DiskStat, InfoResponse::MemoryStat, LimitBandwidthRequest, LimitBandwidthResponse, LimitCpuRequest, LimitCpuResponse, LimitDiskRequest, LimitDiskResponse, LimitMemoryRequest, LimitMemoryResponse, LinkRequest, LinkResponse, ListRequest, ListResponse, Message, NetInRequest, NetInResponse, NetOutRequest, NetOutResponse, PingRequest, PingResponse, ResourceLimits, RunRequest, RunResponse, SpawnRequest, SpawnResponse, StopRequest, StopResponse, StreamRequest, StreamResponse
- Defined in:
- lib/warden/protocol/base.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/warden/protocol/base.rb', line 80 def self.included(base) base.send(:include, Beefcake::Message) if base.name =~ /(Request|Response)$/ base.extend(ClassMethods) case $1 when "Request" base.send(:include, BaseRequest) when "Response" base.send(:include, BaseResponse) end end end |
Instance Method Details
#reload ⇒ Object
103 104 105 106 107 |
# File 'lib/warden/protocol/base.rb', line 103 def reload safe do self.class.decode(encode) end end |
#safe ⇒ Object
95 96 97 98 99 100 101 |
# File 'lib/warden/protocol/base.rb', line 95 def safe yield rescue Beefcake::Message::WrongTypeError, Beefcake::Message::InvalidValueError, Beefcake::Message::RequiredFieldNotSetError => e raise ProtocolError, e end |
#to_hash ⇒ Object
115 116 117 118 119 120 121 122 123 |
# File 'lib/warden/protocol/base.rb', line 115 def to_hash fields.values.inject({}) do |h, fld| if v = self[fld.name] v = v.to_hash if v.respond_to?(:to_hash) h[fld.name] = v end h end end |
#wrap ⇒ Object
109 110 111 112 113 |
# File 'lib/warden/protocol/base.rb', line 109 def wrap safe do Message.new(:type => self.class.type, :payload => encode) end end |