module TrRMIte

TODO replace with Rinda ?? ruby-doc.org/stdlib-2.1.1/libdoc/rinda/rdoc

Constants

DEFAULT_BACKUPS_DIR
DEFAULT_DIRECTORY
DEFAULT_EVENT_LOG
DEFAULT_OFFSET_STORE
DEFAULT_QUEUE_URI
DEFAULT_REGISTRY_URI
DEFAULT_SCHEDULER_STATE
DEFAULT_TOPIC
Event
INTERNAL_TOPIC
NAME
SCHEDULER_INTERVAL
VERSION

Public Class Methods

inflect(name, *inflectors) click to toggle source
# File lib/TrRMIte.rb, line 76
def inflect(name, *inflectors)
  inflectors.unshift :downcase # by default, `downcase` is the only one!
  inflectors.inject(name.gsub(/(.)([A-Z])(?![A-Z])/, '\1_\2')) { |word, inflector|
    word.send(inflector)
  }
end
publish(*args) click to toggle source
# File lib/TrRMIte.rb, line 54
def publish(*args)
  @producer ||= Producer.new(DEFAULT_QUEUE_URI)
  if args.count == 1
    @producer.publish(args.first)
  else
    topic, type, payload = *args
    @producer.publish(Event.new(topic: topic, type: type, payload: payload))
  end
end
schedule(*args) click to toggle source
# File lib/TrRMIte.rb, line 65
def schedule(*args)
  @producer ||= Producer.new(DEFAULT_QUEUE_URI)
  if args.count == 2
    @producer.schedule(args.first, args.last)
  else
    topic, type, payload, publish_at = *args
    @producer.schedule(Event.new(topic: topic, type: type, payload: payload), publish_at)
  end
end
wall_clock_time(humanised = false) click to toggle source
# File lib/TrRMIte.rb, line 47
def wall_clock_time(humanised = false)
  # always in "seconds since epoch"
  # (and obviously always in "UTC")
  humanised ? Time.now.utc.to_s : Time.now.utc.to_f
end

Private Instance Methods

inflect(name, *inflectors) click to toggle source
# File lib/TrRMIte.rb, line 76
def inflect(name, *inflectors)
  inflectors.unshift :downcase # by default, `downcase` is the only one!
  inflectors.inject(name.gsub(/(.)([A-Z])(?![A-Z])/, '\1_\2')) { |word, inflector|
    word.send(inflector)
  }
end
publish(*args) click to toggle source
# File lib/TrRMIte.rb, line 54
def publish(*args)
  @producer ||= Producer.new(DEFAULT_QUEUE_URI)
  if args.count == 1
    @producer.publish(args.first)
  else
    topic, type, payload = *args
    @producer.publish(Event.new(topic: topic, type: type, payload: payload))
  end
end
schedule(*args) click to toggle source
# File lib/TrRMIte.rb, line 65
def schedule(*args)
  @producer ||= Producer.new(DEFAULT_QUEUE_URI)
  if args.count == 2
    @producer.schedule(args.first, args.last)
  else
    topic, type, payload, publish_at = *args
    @producer.schedule(Event.new(topic: topic, type: type, payload: payload), publish_at)
  end
end
wall_clock_time(humanised = false) click to toggle source
# File lib/TrRMIte.rb, line 47
def wall_clock_time(humanised = false)
  # always in "seconds since epoch"
  # (and obviously always in "UTC")
  humanised ? Time.now.utc.to_s : Time.now.utc.to_f
end