NAME Setup::File::TextFragment - Insert/delete text fragment in a file, with undo support VERSION version 0.02 SEE ALSO Text::Fragment Setup AUTHOR Steven Haryanto COPYRIGHT AND LICENSE This software is copyright (c) 2013 by Steven Haryanto. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. DESCRIPTION FUNCTIONS None are exported by default, but they are exportable. setup_text_fragment(%args) -> [status, msg, result, meta] Insert/delete text fragment in a file. On do, will insert fragment to file (or delete, if "should_exist" is set to false). On undo, will restore old file. Unfixable state: file does not exist or not a regular file (directory and symlink included). Fixed state: file exists, fragment already exists and with the same content (if "should_exist" is true) or fragment already does not exist (if "should_exist" is false). Fixable state: file exists, fragment doesn't exist or payload is not the same (if "should_exist" is true) or fragment still exists (if "should_exist" is false). This function is idempotent (repeated invocations with same arguments has the same effect as single invocation). This function supports transactions. Arguments ('*' denotes required arguments): * attrs => *hash* Fragment attributes (only for inserting new fragment), passed to Text::Fragment. * comment_style => *bool* Will be passed to Text::Fragment. * good_pattern => *str* Will be passed to Text::Fragment. * id* => *str* Fragment ID. * label => *str* Will be passed to Text::Fragment. * path* => *str* Path to file. * payload* => *str* Fragment content. * replace_pattern => *str* Will be passed to Text::Fragment. * should_exist => *bool* (default: 1) Whether fragment should exist. * top_style => *bool* Will be passed to Text::Fragment. Special arguments: * -tx_action => *str* For more information on transaction, see Rinci::Transaction. * -tx_action_id => *str* For more information on transaction, see Rinci::Transaction. * -tx_recovery => *str* For more information on transaction, see Rinci::Transaction. * -tx_rollback => *str* For more information on transaction, see Rinci::Transaction. * -tx_v => *str* For more information on transaction, see Rinci::Transaction. Return value: Returns an enveloped result (an array). First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.