module EventHub::Helper

Public Instance Methods

class_to_array(class_name) click to toggle source

converts a class like EventHub::PlateStore::MyClassName to an array ['event_hub','plate_store','my_class_name']

# File lib/eventhub/helper.rb, line 6
def class_to_array(class_name)
  class_name.to_s.split("::").map{ |m| m.gsub(/[A-Z]/) { |c| "_#{c}"}.gsub(/^_/,"").downcase }
end
duration(difference) click to toggle source
# File lib/eventhub/helper.rb, line 23
def duration(difference)
  negative = difference < 0
  difference = difference.abs

  rest, secs = difference.divmod( 60 )  # self is the time difference t2 - t1
  rest, mins = rest.divmod( 60 )
  days, hours = rest.divmod( 24 )
  secs = secs.truncate
  milliseconds = ((difference - difference.truncate)*1000).round

  result = []
  result << "#{days} days" if days > 1
  result << "#{days} day" if days == 1
  result << "#{hours} hours" if hours > 1
  result << "#{hours} hour" if hours == 1
  result << "#{mins} minutes" if mins > 1
  result << "#{mins} minute" if mins == 1
  result << "#{secs} seconds" if secs > 1
  result << "#{secs} second" if secs == 1
  result << "#{milliseconds} milliseconds" if milliseconds > 1
  result << "#{milliseconds} millisecond" if milliseconds == 1
  return (negative ? "-" : "") + result.join(' ')
end
format_string(message,max_characters=80) click to toggle source

replaces CR, LF, CRLF with “;” and cut's string to requied length by adding “…” if string would be longer

# File lib/eventhub/helper.rb, line 11
def format_string(message,max_characters=80)
  max_characters = 5 if max_characters < 5
  m = message.gsub(/\r\n|\n|\r/m,";")
  return (m[0..max_characters-4] + "...") if m.size > max_characters
  return m
end
now_stamp(now=nil) click to toggle source
# File lib/eventhub/helper.rb, line 18
def now_stamp(now=nil)
  now ||= Time.now
  now.utc.strftime("%Y-%m-%dT%H:%M:%S.#{now.usec}Z")
end