aboutsummaryrefslogtreecommitdiff
path: root/lib/chotto/message.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chotto/message.rb')
-rw-r--r--lib/chotto/message.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/chotto/message.rb b/lib/chotto/message.rb
new file mode 100644
index 0000000..ce7c067
--- /dev/null
+++ b/lib/chotto/message.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+module Chotto
+ class Message
+ attr_reader :message
+
+ def initialize(msg:)
+ @message = msg
+ @tags = @message.tags
+ end
+
+ def method_missing(method_name, *_args)
+ handle_get(Chotto::Helpers.header_name_from_dsl(method_name))
+ end
+
+ def handle_get(header_name)
+ message.header(header_name) if message.header(header_name)
+ end
+
+ def tags
+ @tags
+ end
+
+ def tags=(new_tags)
+ @tags = new_tags
+ end
+
+ def save!
+ message.remove_all_tags
+ tags.each do |tag|
+ message.add_tag(tag)
+ end
+ end
+ end
+end