diff options
Diffstat (limited to 'app/lib')
-rw-r--r-- | app/lib/command_tag/commands/text_tools.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/app/lib/command_tag/commands/text_tools.rb b/app/lib/command_tag/commands/text_tools.rb index 441706265..19f4b4f57 100644 --- a/app/lib/command_tag/commands/text_tools.rb +++ b/app/lib/command_tag/commands/text_tools.rb @@ -14,4 +14,30 @@ module CommandTag::Commands::TextTools ["----------\n#{value}\n----------"] end end + + def handle_prepend_before_save(args) + args.each { |arg| @text = "#{arg}\n#{text}" } + end + + def handle_append_before_save(args) + args.each { |arg| @text << "\n#{arg}" } + end + + def handle_replace_before_save(args) + @text.gsub!(args[0], args[1] || '') + end + + alias handle_sub_before_save handle_replace_before_save + + def handle_regex_replace_before_save(args) + flags = normalize(args[2]) + re_opts = (flags.include?('i') ? Regexp::IGNORECASE : 0) + re_opts |= (flags.include?('x') ? Regexp::EXTENDED : 0) + re_opts |= (flags.include?('m') ? Regexp::MULTILINE : 0) + + @text.gsub!(Regexp.new(args[0], re_opts), args[1] || '') + end + + alias handle_resub_before_save handle_replace_before_save + alias handle_regex_sub_before_save handle_replace_before_save end |