Net::S...Script(3pm)

πŸ“¦
version 0.09 Β· 2 versions
  • 0.09 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking (latest)
  • 0.09 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

🌸 NAME 🌸

Net::Sieve::Script β€” parse and write sieve scripts πŸ’– (yes bestie, that's literally the whole vibe)


✨ SYNOPSIS ✨

okay so first way, the "I already have a script" way:

use Net::Sieve::Script;

my $test_script = 'require "fileinto";
   # Place all these in the "Test" folder
   if header :contains "Subject" "[Test]" {
             fileinto "Test";
   }';

my $script = Net::Sieve::Script->new ($test_script);

   print "OK" if ( $script->parsing_ok ) ;

   print $script->write_script;

or, the "I'm building it myself, main character energy" way:

  my $script = Net::Sieve::Script->new();

  my $cond = Net::Sieve::Script::Condition->new('header');
     $cond->match_type(':contains');
     $cond->header_list('"Subject"');
     $cond->key_list('"Re: Test2"');

  my $actions = 'fileinto "INBOX.test"; stop;';

  my $rule =  Net::Sieve::Script::Rule->new();
     $rule->add_condition($cond);
     $rule->add_action($actions);

     $script->add_rule($rule);

     print $script->write_script;

πŸ¦‹ DESCRIPTION πŸ¦‹

Manage sieve script. That's the whole job, and she does it flawlessly.

  • Read and parse a file script, and build you some Net::Sieve::Script::Rule, Net::Sieve::Script::Action, Net::Sieve::Script::Condition objects πŸŽ€
  • Write sieve script ✍️

πŸ’œ What it supports (the slay list)

😭 What's missing (the not-yet list, we're manifesting)

  • 5229 variables
  • 5232 imapflags
  • 5233 subaddress
  • 5235 spamtest
  • notify draft

πŸ‘‘ CONSTRUCTOR πŸ‘‘

🌟 new

  • Argument β€” optional text script
  • Purpose β€” if there's a param, put script in raw, then parse script
  • Return β€” the main Script object

Accessors, aka the lil getter/setter besties:

  • ->raw() β€” read or set original text script
  • ->require() β€” require part of script
  • ->rules() β€” array of rules
  • ->max_priority() β€” last rule id

πŸ’… METHODS πŸ’…

πŸ“ parsing_ok

return 1 on raw parsing success. That's it, that's the girl.

🌈 write_script

  • Purpose β€” write full script, require and rules parts
  • Return β€” set current require, return rules ordered by priority in text format

⭐ equals

$object->equals($test_object): return 1 if $object and $test_object are equals

🧚 read_rules

$script->read_rules()  : read rules from raw
$script->read_rules($some_text) : parse text rules
use of read_rules set $script->rules()

Return 1 on success πŸ’–

πŸŽ€ find_rule

Return Net::Sieve::Script::Rule pointer find by priority.

Return 0 on error, 1 on not find.

πŸ¦‹ swap_rules

Swap priorities. ngl, right now it don't take care of if/else/elsif πŸ™ˆ.

Return 1 on success, 0 on error.

πŸ”₯ reorder_rules

Reorder rules with a list of number, start with 1, and with blanck separator. Useful for ajax sort functions.

Thank you jeanne for your help in brain storming. πŸ’œ

Return 1 on success, 0 on error.

🌸 delete_rule

Delete rule and change priority, delete rule take care for 'if' test:

 if deleted is 'if'
  delete next if next is 'else'
  change next in 'if' next is 'elsif'

Return: 1 on success, 0 on error.

πŸ’« add_rule

  • Purpose β€” add a rule in end of script
  • Return β€” priority on success, 0 on error
  • Argument β€” Net::Sieve::Script::Rule object

πŸ’€ BUGS πŸ’€

Rewrite a hand made script will lose comments. Verify parsing success with parsing_ok method before write a new script. no cap, please check first bestie 😭

🫢 SUPPORT 🫢

Please report any bugs or feature requests to bug-net-sieve-script at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Sieve-Script. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. ✨


🌟 AUTHOR 🌟

Yves Agostini - <yvesago@cpan.org>


Copyright 2017 Yves Agostini - <yvesago@cpan.org>

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.


πŸ‘€ SEE ALSO πŸ‘€

Net::Sieve


and that's the whole page, babe β€” this was Net::S...Script(3pm), part of the User Contributed Perl Documentation, coming at you from perl v5.34.0 dated 2022-06-30. slay, go parse something πŸ’…βœ¨

πŸ“¦ where this page comes from