Class: Aspera::Ascp::Management
- Inherits:
-
Object
- Object
- Aspera::Ascp::Management
- Defined in:
- lib/aspera/ascp/management.rb
Overview
processing of ascp management port events
Instance Attribute Summary collapse
-
#last_event ⇒ Object
readonly
Returns the value of attribute last_event.
Class Method Summary collapse
-
.command_to_stream(data) ⇒ Object
build command to send on management port.
-
.enhanced_event_format(event) ⇒ Object
translates mgt port event into (enhanced) typed event.
Instance Method Summary collapse
-
#initialize ⇒ Management
constructor
A new instance of Management.
-
#process_line(line) ⇒ Hash
process line of mgt port event.
Constructor Details
#initialize ⇒ Management
Returns a new instance of Management.
237 238 239 240 241 242 |
# File 'lib/aspera/ascp/management.rb', line 237 def initialize # current event being parsed line by line @event_build = nil # last fully built event @last_event = nil end |
Instance Attribute Details
#last_event ⇒ Object (readonly)
Returns the value of attribute last_event.
243 244 245 |
# File 'lib/aspera/ascp/management.rb', line 243 def last_event @last_event end |
Class Method Details
.command_to_stream(data) ⇒ Object
build command to send on management port
226 227 228 229 230 231 232 233 234 |
# File 'lib/aspera/ascp/management.rb', line 226 def command_to_stream(data) # TODO: translate enhanced to capitalized ? data .keys .map{|k|"#{k.capitalize}: #{data[k]}"} .unshift(MGT_HEADER) .push('', '') .join("\n") end |
.enhanced_event_format(event) ⇒ Object
translates mgt port event into (enhanced) typed event
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
# File 'lib/aspera/ascp/management.rb', line 207 def enhanced_event_format(event) return event.keys.each_with_object({}) do |e, h| new_name = case e when 'Elapsedusec' then 'elapsed_usec' when 'Bytescont' then 'bytes_cont' else e.capital_to_snake end h[new_name] = if INTEGER_FIELDS.include?(e) then event[e].to_i elsif BOOLEAN_FIELDS.include?(e) then event[e].eql?(BOOLEAN_TRUE) else event[e] end end end |
Instance Method Details
#process_line(line) ⇒ Hash
process line of mgt port event
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 |
# File 'lib/aspera/ascp/management.rb', line 248 def process_line(line) # Log.log.debug{"line=[#{line}]"} case line when MGT_HEADER # begin event @event_build = {} when /^([^:]+): (.*)$/ raise 'mgt port: unexpected line: data without header' if @event_build.nil? # event field @event_build[Regexp.last_match(1)] = Regexp.last_match(2) when MGT_FRAME_SEPARATOR raise 'mgt port: unexpected line: end frame without header' if @event_build.nil? @last_event = @event_build @event_build = nil return @last_event else Aspera.error_unexpected_value(line){'mgt port'} end return nil end |