Sha256: f7265a6d924976c16ee17c868c0d297336af8d4d10bb8969421e68d3e189b875
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
module Mandy class Task JSON_PAYLOAD_KEY = "json" KEY_VALUE_SEPERATOR = "\t" unless defined?(KEY_VALUE_SEPERATOR) NUMERIC_PADDING = 16 def initialize(input=STDIN, output=STDOUT) @input, @output = input, output end def emit(key, value=nil) key = 'nil' if key.nil? key = pad(key) if key.is_a?(Numeric) && key.to_s.length < NUMERIC_PADDING @output.puts(value.nil? ? key.to_s : "#{serialize(key)}\t#{serialize(value)}") end def get(store, key) Mandy.stores[store].get(key) end def put(store, key, values) Mandy.stores[store].put(key, values) end private def pad(key) key_parts = key.to_s.split(".") key_parts[0] = key_parts.first.rjust(NUMERIC_PADDING, '0') key_parts.join('.') end def parameter(name) return find_json_param(name) if json_provided? ENV[name.to_s] end def find_json_param(name) @json_args ||= JSON.parse(URI.decode(ENV[JSON_PAYLOAD_KEY])) @json_args[name.to_s] end def json_provided? !ENV[JSON_PAYLOAD_KEY].nil? end def serialize(value) value = ArraySerializer.new(value) if value.is_a?(Array) value.to_s end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
trafficbroker-mandy-0.2.12 | lib/task.rb |