haarg / module-rename-perl Goto Github PK
View Code? Open in Web Editor NEWThis project forked from mschilli/module-rename-perl
Module::Rename CPAN Module
Home Page: http://perlmeister.com
This project forked from mschilli/module-rename-perl
Module::Rename CPAN Module
Home Page: http://perlmeister.com
###################################################################### Module::Rename 0.06 ###################################################################### NAME Module::Rename - Utility functions for renaming a module distribution SYNOPSIS ######## # Shell: ######## $ module-rename Old::Name New::Name Old-Name-Distro ####### # Perl: ####### use Module::Rename; my $ren = Module::Rename->new( name_old => "Old::Name", name_new => "New::Name", ); $ren->find_and_rename($start_dir); DESCRIPTION Have you ever created a module distribution, only to realize later that the module hierarchary needed to be changed? All of a sudden, "Cool::Frobnicator" didn't sound cool anymore, but needed to be "Util::Frobnicator" instead? Going through a module's distribution, changing all package names, variable names, and move the directories around can be a tedious task. "Module::Rename" comes with a script "module-rename" which takes care of all this: $ ls Cool-Frobnicator-0.01/ $ module-rename Cool::Frobnicator Util::Frobnicator Cool-Frobnicator-0.01 Cool-Frobnicator-0.01/lib/Cool is empty and can go away. Done. The directory hierarchy has changed: $ ls -R Util-Frobnicator-0.01/ ... Util-Frobnicator-0.01/lib/Util/Frobnicator.pm ... and so has the content of all files: $ grep "package" Util-Frobnicator-0.01/lib/Util/Frobnicator.pm package Util::Frobnicator; Things to Keep in Mind * "module-rename" will rename files and replace their content, so make sure that you have a backup copy in case something goes horribly wrong. * After changing the module hierarchy, some directories might be empty, like the "lib/Cool" directory above. In this case, a warning will be issued: Cool-Frobnicator-0.01/lib/Cool is empty and can go away. and the 'empty' directory gets deleted (even if a CVS subdirectory is in there). API "my $renamer = Module::Rename->new(...)" The renamer's constructor takes the following parameters: "name_old" Old module name. "name_new" New module name. "dir_exclude" Reference to an array with directories to exclude from traversing. Preset to dir_exclude => ['blib'] but can be overridden. "dir_ignore" Reference to an array with entries to be ignored in 'empty' directories. Even with these entries being present, a directory will be considered empty and swept away. Preset to dir_ignore => ['CVS'], but can be overridden. "wipe_empty_subdirs" If set to a true value, 'empty' (see above) subdirectories will be deleted after all renaming and restructuring is done. Defaults to true. "use_git" Perform a 'git mv' instead of the default, 'mv'. "trial_run" Perform a "trial run" - report, but don't actually execute, the changes resulting from the Rename object configuration. "$renamer->find_and_rename($start_dir)" Start searching and replacing in $start_dir and recurse into it. LEGALESE Copyright 2005 by Mike Schilli, all rights reserved. This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself. AUTHOR 2005, Mike Schilli <[email protected]>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.