class Stealth::ServiceReply

Attributes

context[RW]
recipient_id[RW]
replies[RW]
yaml_reply[RW]

Public Class Methods

new(recipient_id:, yaml_reply:, context:, preprocessor: :none) click to toggle source
# File lib/stealth/service_reply.rb, line 9
def initialize(recipient_id:, yaml_reply:, context:, preprocessor: :none)
  @recipient_id = recipient_id
  @yaml_reply = yaml_reply
  @context = context

  processed_reply = case preprocessor
  when :erb
    preprocess_erb
  when :none
    @yaml_reply
  end

  @replies = load_replies(YAML.load(processed_reply))
end

Private Instance Methods

load_replies(unstructured_replies) click to toggle source
# File lib/stealth/service_reply.rb, line 26
def load_replies(unstructured_replies)
  unstructured_replies.collect do |reply|
    Stealth::Reply.new(unstructured_reply: reply)
  end
end
preprocess_erb() click to toggle source
# File lib/stealth/service_reply.rb, line 32
def preprocess_erb
  begin
    ERB.new(yaml_reply).result(context)
  rescue NameError => e
    raise(Stealth::Errors::UndefinedVariable, e.message)
  end
end