From 86068f0177a565bfa6c52afcee8ef87625c31f50 Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Tue, 27 Jun 2023 20:13:13 +0900 Subject: [PATCH 1/2] Add new Liquid filters: hex_encode and hex_decode --- app/concerns/liquid_interpolatable.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/concerns/liquid_interpolatable.rb b/app/concerns/liquid_interpolatable.rb index caff586344..08d44548ef 100644 --- a/app/concerns/liquid_interpolatable.rb +++ b/app/concerns/liquid_interpolatable.rb @@ -117,7 +117,7 @@ def initialize(agent) outer_scope[kvs.options[:variable]] = kvs.memory end - super({}, outer_scope, { agent: agent }, true) + super({}, outer_scope, { agent: }, true) end def hash @@ -263,6 +263,14 @@ def json(input) JSON.dump(input) end + def hex_encode(input) + input.to_s.unpack1('H*') + end + + def hex_decode(input) + [input.to_s].pack('H*') + end + def md5(input) Digest::MD5.hexdigest(input.to_s) end From 89474e6933792888919811a71adc2ca5014414ae Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Tue, 27 Jun 2023 20:40:50 +0900 Subject: [PATCH 2/2] Add a Liquid tag: uuidv4 --- app/concerns/liquid_interpolatable.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/concerns/liquid_interpolatable.rb b/app/concerns/liquid_interpolatable.rb index 08d44548ef..309248cb3f 100644 --- a/app/concerns/liquid_interpolatable.rb +++ b/app/concerns/liquid_interpolatable.rb @@ -419,9 +419,16 @@ def render(context) "\n" end end + + class Uuidv4 < Liquid::Tag + def render(context) + SecureRandom.uuid + end + end end Liquid::Template.register_tag('credential', LiquidInterpolatable::Tags::Credential) Liquid::Template.register_tag('line_break', LiquidInterpolatable::Tags::LineBreak) + Liquid::Template.register_tag('uuidv4', LiquidInterpolatable::Tags::Uuidv4) module Blocks # Replace every occurrence of a given regex pattern in the first