Sha256: 61f161369683e8600cbaa8bdee32af544d25098daed0f6d648aec3e2bc73e193

Contents?: true

Size: 626 Bytes

Versions: 3

Compression:

Stored size: 626 Bytes

Contents

require 'liquid'

module Controll::Notify
  class Message
    class Handler
      attr_reader :message

      def initialize message
        @message = message
      end

      def handle
        return args? ? replace_args : message.text
      rescue StandardError
        nil
      end

      protected

      delegate :text, to: :message

      def options
        @options ||= message.options.stringify_keys
      end

      def args?
        text =~ /{{.*}}/
      end

      def replace_args
         # Parses and compiles the template
        Liquid::Template.parse(text).render(options)
      end    
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
controll-0.3.2 lib/controll/notify/message/handler.rb
controll-0.3.1 lib/controll/notify/message/handler.rb
controll-0.3.0 lib/controll/notify/message/handler.rb