[Rt-commit] rt branch, 4.2/pod-spell, created. rt-4.0.0rc7-311-g875dd8a

Alex Vandiver alexmv at bestpractical.com
Mon Apr 25 12:59:45 EDT 2011


The branch, 4.2/pod-spell has been created
        at  875dd8aa9f2d0042495b5ca6a5864e5d1150a70f (commit)

- Log -----------------------------------------------------------------
commit 244a6a4e125190533c1253cc791f1195ac68d902
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 16:26:04 2011 -0400

    Add 99-pod-spelling.t sans the thousands of stopwords we'll need

diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
new file mode 100644
index 0000000..755890c
--- /dev/null
+++ b/t/99-pod-spelling.t
@@ -0,0 +1,22 @@
+#!/usr/bin/env perl -w
+
+use strict;
+use Test::More;
+
+eval "use Test::Spelling";
+plan skip_all => "Test::Spelling required for testing POD spelling" if $@;
+
+# strip comments
+my @stopwords = map { s/#.*// } <DATA>;
+
+add_stopwords(@stopwords);
+
+local $ENV{LC_ALL} = 'C';
+set_spell_cmd('aspell list -l en');
+
+all_pod_files_spelling_ok();
+
+__DATA__
+# PERSON NAMES
+Ruslan
+Zakirov

commit 31a51dc154fac1553ff691e76b25dd030ffdecd8
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 16:30:48 2011 -0400

    Fix my stopword stripper

diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 755890c..b528681 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -6,8 +6,8 @@ use Test::More;
 eval "use Test::Spelling";
 plan skip_all => "Test::Spelling required for testing POD spelling" if $@;
 
-# strip comments
-my @stopwords = map { s/#.*// } <DATA>;
+# strip comments and empty lines
+my @stopwords = grep { /\S/ } map { s/#.*//; $_ } <DATA>;
 
 add_stopwords(@stopwords);
 

commit 1c238beb7f912b09972aff0e084aaa33cdd1c6c5
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:11:13 2011 -0400

    More stopwords

diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index b528681..154b0d4 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -18,5 +18,83 @@ all_pod_files_spelling_ok();
 
 __DATA__
 # PERSON NAMES
+Autrijus
+Falcone
+Riggle
 Ruslan
 Zakirov
+
+# ENGLISH
+one's
+
+# PROGRAMMING JARGON
+API
+APIs
+CGI
+CPAN
+DBI
+DSN
+GPG
+GnuPG
+MUA
+SQL
+STDERR
+STDOUT
+TODO
+UI
+autohandler
+checkboxes
+datetime
+dhandler
+dropdown
+filename
+html
+keyserver
+login
+logins
+longblob
+metadata
+multipart
+optree
+paramhash
+paramhash's
+passphrase
+perltidy
+perltidyrc
+plugin's
+plugins
+prepopulated
+rebless
+reblesses
+resultset
+runtime
+startup
+tuple
+tuples
+unicode
+unix
+username
+workflow
+
+# RT JARGON
+ACEs
+ACL
+ACLs
+AdminCc
+AdminCcs
+Bcc
+Cc
+Ccs
+CustomField
+Gecos
+LastUpdated
+LastUpdatedBy
+Portlet
+Portlets
+RT's
+Requestor
+Requestors
+crontool
+lifecycle
+lifecycles
+mailgate

commit ebafb3dd78c75b1f9b89d2682b057d182b95d6b7
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:18:10 2011 -0400

    Spellcheck lib/RT.pm
    
        Except this paragraph which I can't understand:
    
        "This code chacke plugins names or anything else and required when main
        config is loaded to load plugins' configs."

diff --git a/lib/RT.pm b/lib/RT.pm
index c6b6668..1b66da8 100644
--- a/lib/RT.pm
+++ b/lib/RT.pm
@@ -572,8 +572,9 @@ sub UnprivilegedUsers {
 
 =head2 Plugins
 
-Returns a listref of all Plugins currently configured for this RT instance.
-You can define plugins by adding them to the @Plugins list in your RT_SiteConfig
+Returns an array reference of all Plugins currently configured for this RT
+instance. You can define plugins by adding them to the C<@Plugins> list in your
+F<RT_SiteConfig.pm>
 
 =cut
 
@@ -589,7 +590,8 @@ sub Plugins {
 
 =head2 PluginDirs
 
-Takes optional subdir (e.g. po, lib, etc.) and return plugins' dirs that exist.
+Takes an optional subdirectory (e.g. F<po>, F<lib>, etc.) and returns plugins'
+directories that exist.
 
 This code chacke plugins names or anything else and required when main config
 is loaded to load plugins' configs.
@@ -643,7 +645,8 @@ sub InitPluginPaths {
 
 =head2 InitPlugins
 
-Initialze all Plugins found in the RT configuration file, setting up their lib and HTML::Mason component roots.
+Initialize all Plugins found in the RT configuration file, setting up their lib
+and HTML::Mason component roots.
 
 =cut
 
@@ -719,9 +722,8 @@ sub CanonicalizeGeneratedPaths {
 
 =head2 AddJavaScript
 
-helper method to add js files to C<JSFiles> config.
-to add extra css files, you can add the following line
-in the plugin's main file:
+Helper method to add JavaScript files to C<JSFiles> config. To add extra
+JavaScript files, you can add the following line in the plugin's main file:
 
     RT->AddJavaScript( 'foo.js', 'bar.js' ); 
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 154b0d4..a737b5d 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -69,12 +69,14 @@ reblesses
 resultset
 runtime
 startup
+subdirectory
 tuple
 tuples
 unicode
 unix
 username
 workflow
+hostname
 
 # RT JARGON
 ACEs

commit a156ea6194e8aa423f4aae5e1acb04ba6d23f825
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:24:34 2011 -0400

    Remove comments referencing rights delegation

diff --git a/lib/RT/ACE.pm b/lib/RT/ACE.pm
index 90220cd..1a6c956 100644
--- a/lib/RT/ACE.pm
+++ b/lib/RT/ACE.pm
@@ -314,8 +314,6 @@ Delete this object. This method should ONLY ever be called from RT::User or RT::
 If this is being called from within a transaction, specify a true value for the parameter InsideTransaction.
 Really, DBIx::SearchBuilder should use and/or fake subtransactions
 
-This routine will also recurse and delete any delegations of this right
-
 =cut
 
 sub Delete {
@@ -325,8 +323,6 @@ sub Delete {
         return ( 0, $self->loc('Right not loaded.') );
     }
 
-    # A user can delete an ACE if the current user has the right to modify it and it's not a delegated ACE
-    # or if it's a delegated ACE and it was delegated by the current user
     unless ($self->CurrentUser->HasRight(Right => 'ModifyACL', Object => $self->Object)) {
         return ( 0, $self->loc('Permission Denied') );
     }
diff --git a/lib/RT/Group.pm b/lib/RT/Group.pm
index 1ee0591..e048f48 100644
--- a/lib/RT/Group.pm
+++ b/lib/RT/Group.pm
@@ -628,7 +628,6 @@ sub Delete {
     # Remove this group from anything it's a member of.
     # Remove all cached members of this group
     # Remove any rights granted to this group
-    # remove any rights delegated by way of this group
 
     return ( $self->SUPER::Delete(@_) );
 }
diff --git a/lib/RT/Shredder/CachedGroupMember.pm b/lib/RT/Shredder/CachedGroupMember.pm
index 0a6f253..f350689 100644
--- a/lib/RT/Shredder/CachedGroupMember.pm
+++ b/lib/RT/Shredder/CachedGroupMember.pm
@@ -75,9 +75,6 @@ sub __DependsOn
     $objs->Limit( FIELD => 'id', OPERATOR => '!=', VALUE => $self->Id );
     push( @$list, $objs );
 
-# principal lost group membership and lost some rights which he could delegate to
-# some body
-
 # XXX: Here is problem cause HasMemberRecursively would return true allways
 # cause we didn't delete anything yet. :(
     # if pricipal is not member anymore(could be via other groups) then proceed
diff --git a/lib/RT/Shredder/GroupMember.pm b/lib/RT/Shredder/GroupMember.pm
index 2710887..d1b79e8 100644
--- a/lib/RT/Shredder/GroupMember.pm
+++ b/lib/RT/Shredder/GroupMember.pm
@@ -75,8 +75,6 @@ sub __DependsOn
     $objs->Limit( FIELD => 'ImmediateParentId', VALUE => $self->GroupId );
     push( @$list, $objs );
 
-    # XXX: right delegations should be cleaned here
-
     $deps->_PushDependencies(
             BaseObject => $self,
             Flags => DEPENDS_ON,

commit cc28878f8e1a5a39401e7458166f59fb1c89fdf8
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:26:05 2011 -0400

    Spellcheck lib/RT/ACE.pm

diff --git a/lib/RT/ACE.pm b/lib/RT/ACE.pm
index 1a6c956..bc6c3a3 100644
--- a/lib/RT/ACE.pm
+++ b/lib/RT/ACE.pm
@@ -176,9 +176,9 @@ sub LoadByValues {
 
 
 
-=head2 Create <PARAMS>
+=head2 Create C<PARAMS>
 
-PARAMS is a parameter hash with the following elements:
+C<PARAMS> is a parameter hash with the following elements:
 
    PrincipalId => The id of an RT::Principal object
    PrincipalType => "User" "Group" or any Role type
@@ -310,9 +310,10 @@ sub Create {
 
 =head2 Delete { InsideTransaction => undef}
 
-Delete this object. This method should ONLY ever be called from RT::User or RT::Group (or from itself)
-If this is being called from within a transaction, specify a true value for the parameter InsideTransaction.
-Really, DBIx::SearchBuilder should use and/or fake subtransactions
+Delete this object. This method should ONLY ever be called from L<RT::User> or
+L<RT::Group> (or from itself). If this is being called from within a
+transaction, specify a true value for the parameter C<InsideTransaction>. Really,
+L<DBIx::SearchBuilder> should use and/or fake sub-transactions.
 
 =cut
 
@@ -357,12 +358,12 @@ sub _Delete {
 
 =head2 _BootstrapCreate
 
-Grant a right with no error checking and no ACL. this is _only_ for 
+Grants a right with no error checking and no ACL. This is _only_ for 
 installation. If you use this routine without the author's explicit 
 written approval, he will hunt you down and make you spend eternity
-translating mozilla's code into FORTRAN or intercal.
+translating Mozilla's code into FORTRAN or Intercal.
 
-If you think you need this routine, you've mistaken. 
+If you think you need this routine, you're mistaken. 
 
 =cut
 
@@ -514,7 +515,7 @@ sub _Value {
 
 Takes a principal id and a principal type.
 
-If the principal is a user, resolves it to the proper acl equivalence group.
+If the principal is a user, resolves it to the proper ACL equivalence group.
 Returns a tuple of  (RT::Principal, PrincipalType)  for the principal we really want to work with
 
 =cut
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index a737b5d..b8472d7 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -77,6 +77,8 @@ unix
 username
 workflow
 hostname
+Mozilla's
+Intercal
 
 # RT JARGON
 ACEs

commit 1d7f01395d38285e5e2ca5eb02ade96cc2ead8a1
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:28:43 2011 -0400

    Spellcheck lib/RT/Article.pm

diff --git a/lib/RT/Article.pm b/lib/RT/Article.pm
index fe3e391..105eb19 100644
--- a/lib/RT/Article.pm
+++ b/lib/RT/Article.pm
@@ -352,8 +352,8 @@ sub Children {
 
 =head2 AddLink
 
-Takes a paramhash of Type and one of Base or Target. Adds that link to this tick
-et.
+Takes a paramhash of C<Type> and one of C<Base> or C<Target>. Adds that link to
+this ticket.
 
 =cut
 
@@ -577,9 +577,9 @@ sub _Set {
 
 }
 
-=head2 _Value PARAM
+=head2 _Value C<PARAM>
 
-Return "PARAM" for this object. if the current user doesn't have rights, returns undef
+Return C<PARAM> for this object. If the current user doesn't have rights, returns C<undef>.
 
 =cut
 
@@ -615,9 +615,9 @@ Takes the name of a form field from "Include Article"
 and the value submitted by the browser and attempts to load an Article.
 
 This handles Articles included by searching, by the Name and via
-the hotlist.
+the HotList.
 
-If you optionaly pass an id as the Queue argument, this will check that
+If you optionally pass an id as the Queue argument, this will verify that
 the Article's Class is applied to that Queue.
 
 =cut
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index b8472d7..8eb280c 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -102,3 +102,4 @@ crontool
 lifecycle
 lifecycles
 mailgate
+HotList

commit 7b93bcfaec904eba1649500b422f01b0cd02a188
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:30:57 2011 -0400

    Spellcheck lib/RT/Articles.pm

diff --git a/lib/RT/Articles.pm b/lib/RT/Articles.pm
index 355a2bd..687cb03 100644
--- a/lib/RT/Articles.pm
+++ b/lib/RT/Articles.pm
@@ -235,10 +235,11 @@ Limit the result set to articles which have or do not have the custom field
 value listed, using a left join to catch things where no rows match.
 
 HASH needs the following fields: 
+
    FIELD (A custom field id) or undef for any custom field
    ENTRYAGGREGATOR => (AND, OR)
    OPERATOR ('=', 'LIKE', '!=', 'NOT LIKE')
-   VALUE ( a single scalar value or a list of possible values to be concatenated with ENTRYAGGREGATOR)
+   VALUE (a single scalar value or a list of possible values to be concatenated with ENTRYAGGREGATOR)
 
 The subclause that the LIMIT statement(s) should be done in can also
 be passed in with a SUBCLAUSE parameter.
@@ -479,9 +480,9 @@ sub LimitReferredToBy {
 
 # }}}
 
-=head2 LimitHostlistClasses
+=head2 LimitHotlistClasses
 
-Only fetch Articles from classes where Hotlist is true.
+Only fetch Articles from classes where HotList is true.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 8eb280c..460ca79 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -79,6 +79,7 @@ workflow
 hostname
 Mozilla's
 Intercal
+subclause
 
 # RT JARGON
 ACEs

commit 411f15043d04186d2ab7042771334cb12c5e05fe
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:32:22 2011 -0400

    Spellcheck lib/RT/Attachment.pm

diff --git a/lib/RT/Attachment.pm b/lib/RT/Attachment.pm
index bf6644c..fd29e77 100644
--- a/lib/RT/Attachment.pm
+++ b/lib/RT/Attachment.pm
@@ -237,7 +237,7 @@ sub Import {
 
 =head2 TransactionObj
 
-Returns the transaction object asscoiated with this attachment.
+Returns the transaction object associated with this attachment.
 
 =cut
 
@@ -494,7 +494,7 @@ sub Addresses {
 
 =head2 NiceHeaders
 
-Returns a multi-line string of the To, From, Cc, Date and Subject headers.
+Returns a multiline string of the To, From, Cc, Date and Subject headers.
 
 =cut
 
@@ -639,7 +639,7 @@ sub SplitHeaders {
 =head2 _SplitHeaders
 
 Returns an array of this attachment object's headers, with one header 
-per array entry. multiple lines are folded.
+per array entry. Multiple lines are folded.
 
 
 =cut
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 460ca79..7778633 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -80,6 +80,7 @@ hostname
 Mozilla's
 Intercal
 subclause
+longtext
 
 # RT JARGON
 ACEs

commit 92e869fe85b822dab03f2778f6f55869f1151b6c
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:33:49 2011 -0400

    Spellcheck lib/RT/Attachments.pm

diff --git a/lib/RT/Attachments.pm b/lib/RT/Attachments.pm
index c02c458..635ee9e 100644
--- a/lib/RT/Attachments.pm
+++ b/lib/RT/Attachments.pm
@@ -101,9 +101,9 @@ sub CleanSlate {
 
 =head2 TransactionAlias
 
-Returns alias for transactions table with applied join condition.
-Always return the same alias, so if you want to build some complex
-or recursive joining then you have to create new alias youself.
+Returns the alias for the joined transactions table. This always returns the
+same alias, so if you want to build some complex or recursive joins then you
+must create a new alias yourself.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 7778633..022c79d 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -81,6 +81,7 @@ Mozilla's
 Intercal
 subclause
 longtext
+ENTRYAGGREGATOR
 
 # RT JARGON
 ACEs

commit 3e50725465ed908e9fd37c62fb6e44c394de488c
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:35:52 2011 -0400

    Spellcheck lib/RT/Attribute.pm

diff --git a/lib/RT/Attribute.pm b/lib/RT/Attribute.pm
index 84e8d30..257ba2f 100644
--- a/lib/RT/Attribute.pm
+++ b/lib/RT/Attribute.pm
@@ -440,7 +440,8 @@ sub CurrentUserHasRight {
 
 =head1 TODO
 
-We should be deserializing the content on load and then enver again, rather than at every access
+We should be deserializing the content on load and then never again, rather
+than at every access.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 022c79d..0b231d8 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -82,6 +82,7 @@ Intercal
 subclause
 longtext
 ENTRYAGGREGATOR
+deserializing
 
 # RT JARGON
 ACEs
@@ -106,3 +107,6 @@ lifecycle
 lifecycles
 mailgate
 HotList
+attribute's
+subvalue
+subvalues

commit fba6d755c2aee5a151e1b3614059089a6874f243
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:37:29 2011 -0400

    Spellcheck lib/RT/Base.pm

diff --git a/lib/RT/Base.pm b/lib/RT/Base.pm
index e2de668..94779e9 100644
--- a/lib/RT/Base.pm
+++ b/lib/RT/Base.pm
@@ -117,16 +117,16 @@ sub OriginalUser {
 
 =head2 loc LOC_STRING
 
-l is a method which takes a loc string
-to this object's CurrentUser->LanguageHandle for localization. 
+C<loc> is a method which localizes the given string using this object's
+C<< CurrentUser->LanguageHandle >>.
 
-you call it like this:
+You call it like this:
 
     $self->loc("I have [quant,_1,concrete mixer].", 6);
 
-In english, this would return:
-    I have 6 concrete mixers.
+In English, this would return:
 
+    I have 6 concrete mixers.
 
 =cut
 

commit b1dd3cba11a7e33e13561159e5208bb58e40c6fe
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:41:32 2011 -0400

    Spellcheck lib/RT/CachedGroupMember.pm

diff --git a/lib/RT/CachedGroupMember.pm b/lib/RT/CachedGroupMember.pm
index c6ef008..37eedda 100644
--- a/lib/RT/CachedGroupMember.pm
+++ b/lib/RT/CachedGroupMember.pm
@@ -183,9 +183,9 @@ sub Create {
 
 =head2 Delete
 
-Deletes the current CachedGroupMember from the group it's in and cascades 
-the delete to all submembers. This routine could be completely excised if
-mysql supported foreign keys with cascading deletes.
+Deletes the current CachedGroupMember from the group it's in and cascades the
+delete to all children CachedGroupMember records. This routine could be
+completely excised if MySQL supported foreign keys with cascading deletes.
 
 =cut 
 
@@ -225,11 +225,10 @@ sub Delete {
 
 =head2 SetDisabled
 
-SetDisableds the current CachedGroupMember from the group it's in and cascades 
-the SetDisabled to all submembers. This routine could be completely excised if
-mysql supported foreign keys with cascading SetDisableds.
+Sets the current CachedGroupMember as disabled, recursing over all children
+CachedGroupMember records.
 
-=cut 
+=cut
 
 sub SetDisabled {
     my $self = shift;
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 0b231d8..386e704 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -83,6 +83,7 @@ subclause
 longtext
 ENTRYAGGREGATOR
 deserializing
+recursing
 
 # RT JARGON
 ACEs

commit dd1b3caec89dfb38708d7de59c47aad9f0ef0819
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:41:42 2011 -0400

    Spellcheck lib/RT/CachedGroupMembers.pm

diff --git a/lib/RT/CachedGroupMembers.pm b/lib/RT/CachedGroupMembers.pm
index 3cd7fe0..195a617 100644
--- a/lib/RT/CachedGroupMembers.pm
+++ b/lib/RT/CachedGroupMembers.pm
@@ -150,9 +150,9 @@ sub LimitToMembersOfGroup {
 
 =head2 LimitToGroupsWithMember PRINCIPAL_ID
 
-Takes a Principal Id as its only argument. 
-Limits the current search to groups which contain PRINCIPAL_ID as a member  or submember.
-This function gets used by GroupMember->Create to populate subgroups
+Takes a Principal Id as its only argument. Limits the current search to groups
+which contain PRINCIPAL_ID as a member, possibly recursively through subgroups.
+This function gets used by L<RT::GroupMember/Create> to populate subgroups.
 
 =cut
 

commit 1d643f11a8a76992c64bdc5c2e5e016823497096
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:56:56 2011 -0400

    Spellcheck lib/RT/Config.pm

diff --git a/lib/RT/Config.pm b/lib/RT/Config.pm
index 2fa44af..e544dad 100644
--- a/lib/RT/Config.pm
+++ b/lib/RT/Config.pm
@@ -58,7 +58,7 @@ use Symbol::Global::Name;
 
     RT::Config - RT's config
 
-=head1 SYNOPSYS
+=head1 SYNOPSIS
 
     # get config object
     use RT::Config;
@@ -88,13 +88,13 @@ Second file is F<RT_SiteConfig.pm> - site config file. You can use it
 to customize your RT instance. In this file you can override any option
 listed in core config file.
 
-RT extensions could also provide thier config files. Extensions should
+RT extensions could also provide their config files. Extensions should
 use F<< <NAME>_Config.pm >> and F<< <NAME>_SiteConfig.pm >> names for
 config files, where <NAME> is extension name.
 
-B<NOTE>: All options from RT's config and extensions' configs are saved
-in one place and thus extension could override RT's options, but it is not
-recommended.
+B<NOTE>: All options from RT's config and extensions' configuration files are
+saved in one place and thus extension could override RT's options, but it is
+not recommended.
 
 =cut
 
@@ -104,7 +104,7 @@ Hash of Config options that may be user overridable
 or may require more logic than should live in RT_*Config.pm
 
 Keyed by config name, there are several properties that
-can be set for each config optin:
+can be set for each config option:
 
  Section     - What header this option should be grouped
                under on the user Settings page
@@ -113,7 +113,7 @@ can be set for each config optin:
                for display to the user
  Widget      - Mason component path to widget that should be used 
                to display this config option
- WidgetArguments - An argument hash passed to the WIdget
+ WidgetArguments - An argument hash passed to the Widget
     Description - Friendly description to show the user
     Values      - Arrayref of options (for select Widget)
     ValuesLabel - Hashref, key is the Value from the Values
@@ -728,7 +728,7 @@ sub _Init {
 
 =head2 InitConfig
 
-Do nothin right now.
+Currently does nothing.
 
 =cut
 
@@ -741,9 +741,8 @@ sub InitConfig {
 
 =head2 LoadConfigs
 
-Load all configs. First of all load RT's config then load
-extensions' config files in alphabetical order.
-Takes no arguments.
+Load all configuration files. RT's config is loaded first, followed by
+extensions' config in alphabetical order. Takes no arguments.
 
 =cut
 
@@ -761,16 +760,16 @@ sub LoadConfigs {
 
 =head1 LoadConfig
 
-Takes param hash with C<File> field.
-First, the site configuration file is loaded, in order to establish
-overall site settings like hostname and name of RT instance.
-Then, the core configuration file is loaded to set fallback values
-for all settings; it bases some values on settings from the site
-configuration file.
+Takes a paramhash with a C<File> field. First, the site configuration file is
+loaded, in order to establish overall site settings like hostname and the name
+of the RT instance. Then, the core configuration file is loaded to set fallback
+values for all settings; it bases some values (such as C<WebBaseURL>) on
+settings from the site configuration file.
 
-B<Note> that core config file don't change options if site config
-has set them so to add value to some option instead of
-overriding you have to copy original value from core config file.
+B<Note> that core config file doesn't change an option if the site config has
+already set it. So to add a value to an option, instead of simply overriding
+(such as C<HomepageComponents>), you have to copy the original value from the
+core config file.
 
 =cut
 
@@ -909,31 +908,55 @@ sub Configs {
 
 =head2 Get
 
-Takes name of the option as argument and returns its current value.
+Takes the name of the option as its argument and returns its current value.
 
 In the case of a user-overridable option, first checks the user's
 preferences before looking for site-wide configuration.
 
-Returns values from RT_SiteConfig, RT_Config and then the %META hash
-of configuration variables's "Default" for this config variable,
-in that order.
+Returns values from F<RT_SiteConfig.pm>, F<RT_Config.pm> and then the C<%META>
+hash of configuration variable's "Default" for this config variable, in that
+order.
 
-Returns different things in scalar and array contexts. For scalar
-options it's not that important, however for arrays and hash it's.
-In scalar context returns references to arrays and hashes.
+This returns different values in scalar and array contexts. For scalar options
+it's not that important, however for options that return arrays and hash,
+context is important. In scalar context, returns references to arrays and
+hashes.
 
-Use C<scalar> perl's op to force context, especially when you use
-C<(..., Argument => RT->Config->Get('ArrayOpt'), ...)>
-as perl's '=>' op doesn't change context of the right hand argument to
-scalar. Instead use C<(..., Argument => scalar RT->Config->Get('ArrayOpt'), ...)>.
+Use Perl's C<scalar> operator to force context, especially when you are
+constructing a hash, like:
 
-It's also important for options that have no default value(no default
+    my %options = (
+        ...,
+        Argument => RT->Config->Get('ArrayOpt'),
+        ...,
+    );
+
+This is broken because Perl's C<< => >> operator doesn't change the context of
+the right-hand side to scalar context. Instead, use:
+
+    my %options = (
+        ...,
+        Argument => scalar RT->Config->Get('ArrayOpt'),
+        ...,
+    );
+
+It's also important for options that have no default value (i.e. not set
 in F<etc/RT_Config.pm>). If you don't force scalar context then you'll
-get empty list and all your named args will be messed up. For example
-C<(arg1 => 1, arg2 => RT->Config->Get('OptionDoesNotExist'), arg3 => 3)>
-will result in C<(arg1 => 1, arg2 => 'arg3', 3)> what is most probably
-unexpected, or C<(arg1 => 1, arg2 => RT->Config->Get('ArrayOption'), arg3 => 3)>
-will result in C<(arg1 => 1, arg2 => 'element of option', 'another_one' => ..., 'arg3', 3)>.
+get the empty list and all your named arguments will be messed up. For example:
+
+    my %options = (
+        Arg1 => 1,
+        Arg2 => RT->Config->Get('OptionDoesNotExist'),
+        Arg3 => 3,
+    );
+
+will result in:
+
+    my %options = (
+        Arg1 => 1,
+        Arg2 => 'Arg3',
+        3    => undef,
+    );
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 386e704..3f2c64b 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -84,6 +84,8 @@ longtext
 ENTRYAGGREGATOR
 deserializing
 recursing
+overridable
+variable's
 
 # RT JARGON
 ACEs

commit 1a6716f487f135bcfc4c690599a5d95440cf98b1
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 17:58:19 2011 -0400

    Spellcheck lib/RT/CurrentUser.pm and justify RT::CurrentUser->CurrentUser

diff --git a/lib/RT/CurrentUser.pm b/lib/RT/CurrentUser.pm
index 57ee1eb..34b4b48 100644
--- a/lib/RT/CurrentUser.pm
+++ b/lib/RT/CurrentUser.pm
@@ -204,7 +204,7 @@ sub LoadByName {
 
 =head2 LanguageHandle
 
-Returns this current user's langauge handle. Should take a language
+Returns this current user's language handle. Should take a language
 specification. but currently doesn't
 
 =cut 
@@ -260,7 +260,9 @@ sub loc_fuzzy {
 
 =head2 CurrentUser
 
-Return the current currentuser object
+Return the current L<RT::CurrentUser> object. This is of course what you
+already have, but this means you can call C<< ->CurrentUser >> a bit more
+freely.
 
 =cut
 

commit b1e89c688753523ebf2b0d6bb916bf3e8dc58e21
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 18:01:23 2011 -0400

    Remove useless use of /o; it only matters if there's a variable in the regex

diff --git a/lib/RT/CustomField.pm b/lib/RT/CustomField.pm
index 4283c8d..2bc4011 100644
--- a/lib/RT/CustomField.pm
+++ b/lib/RT/CustomField.pm
@@ -1150,17 +1150,16 @@ sub CollectionClassFromLookupType {
 
 =head1 ApplyGlobally
 
-Certain custom fields (users, groups) should only be applied globally
-but rather than regexing in code for LookupType =~ RT::Queue, we'll codify
-the rules here.
+Certain custom fields (users, groups) should only be applied globally but
+rather than regex matching in code for C<LookupType =~ /^RT::(?:Group|User)/>,
+we'll codify the rules here.
 
 =cut
 
 sub ApplyGlobally {
     my $self = shift;
 
-    return ($self->LookupType =~ /^RT::(?:Group|User)/io);
-
+    return $self->LookupType =~ /^RT::(?:Group|User)/i;
 }
 
 =head1 AppliedTo

commit bd09503e9391ec39f2d93aa665fa22a6453c80d9
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 18:04:26 2011 -0400

    Spellcheck lib/RT/CustomField.pm

diff --git a/lib/RT/CustomField.pm b/lib/RT/CustomField.pm
index 2bc4011..bcc191b 100644
--- a/lib/RT/CustomField.pm
+++ b/lib/RT/CustomField.pm
@@ -440,7 +440,7 @@ If the Queue parameter is '0', look for global ticket custom fields.
 
 If no queue parameter is specified, look for any and all custom fields with this name.
 
-BUG/TODO, this won't let you specify that you only want user or group CFs.
+BUG/TODO, this won't let you specify that you only want user or group custom fields.
 
 =cut
 
@@ -612,7 +612,7 @@ sub ValidateQueue {
 
 =head2 Types 
 
-Retuns an array of the types of CustomField that are supported
+Returns a list of the types of CustomField that are supported.
 
 =cut
 
@@ -623,8 +623,8 @@ sub Types {
 
 =head2 IsSelectionType 
 
-Retuns a boolean value indicating whether the C<Values> method makes sense
-to this Custom Field.
+Returns a boolean value indicating whether the C<Values> method applies to this
+Custom Field.
 
 =cut
 
@@ -905,8 +905,10 @@ sub _Value {
 =head2 SetDisabled
 
 Takes a boolean.
-1 will cause this custom field to no longer be avaialble for objects.
-0 will re-enable this field.
+
+True values will cause this custom field to no longer be available for objects.
+
+False will re-enable this field.
 
 =cut
 
@@ -1343,7 +1345,7 @@ sub RemoveFromObject {
 =head2 AddValueForObject HASH
 
 Adds a custom field value for a record object of some kind. 
-Takes a param hash of 
+Takes a paramhash of:
 
 Required:
 
@@ -1495,7 +1497,7 @@ sub FriendlyPattern {
 
 =head2 DeleteValueForObject HASH
 
-Deletes a custom field value for a ticket. Takes a param hash of Object and Content
+Deletes a custom field value for a ticket. Takes a paramhash of Object and Content.
 
 Returns a tuple of (STATUS, MESSAGE). If the call succeeded, the STATUS is true. otherwise it's false
 
@@ -1640,7 +1642,7 @@ sub LinkValueTo {
 With one argument, returns the _URLTemplate named C<NAME>, but only if
 the current user has the right to see this custom field.
 
-With two arguments, attemptes to set the relevant template value.
+With two arguments, this attempts to set the relevant template value.
 
 =cut
 

commit 6e46827bc5e91ba3dc846ac2b64fcf8de05169ca
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 18:11:01 2011 -0400

    Spellcheck lib/RT/CustomFields.pm

diff --git a/lib/RT/CustomFields.pm b/lib/RT/CustomFields.pm
index a84d9aa..3a1d6af 100644
--- a/lib/RT/CustomFields.pm
+++ b/lib/RT/CustomFields.pm
@@ -217,8 +217,10 @@ sub LimitToNotApplied {
 
 =head2 LimitToApplied
 
-Limits collection to custom fields to listed objects or any corespondingly. Use
-zero to mean global.
+Takes a list of object IDs. This limits the collection to the custom fields of
+the listed objects.
+
+Use an ID of 0 to mean global.
 
 =cut
 
@@ -239,7 +241,7 @@ sub LimitToApplied {
 
 =head2 LimitToGlobalOrQueue QUEUEID
 
-DEPRECATED since CFs are applicable not only to tickets these days.
+DEPRECATED since custom fields are applicable not only to tickets these days.
 
 Limits the set of custom fields found to global custom fields or those tied to the queue with ID QUEUEID
 
@@ -255,7 +257,7 @@ sub LimitToGlobalOrQueue {
 
 =head2 LimitToQueue QUEUEID
 
-DEPRECATED since CFs are applicable not only to tickets these days.
+DEPRECATED since custom fields are applicable not only to tickets these days.
 
 Takes a queue id (numerical) as its only argument. Makes sure that
 Scopes it pulls out apply to this queue (or another that you've selected with
@@ -278,7 +280,7 @@ sub LimitToQueue  {
 
 =head2 LimitToGlobal
 
-DEPRECATED since CFs are applicable not only to tickets these days.
+DEPRECATED since custom fields are applicable not only to tickets these days.
 
 Makes sure that Scopes it pulls out apply to all queues
 (or another that you've selected with
@@ -299,7 +301,7 @@ sub LimitToGlobal  {
 
 =head2 ApplySortOrder
 
-Sort custom fields according to thier order application to objects. It's
+Sort custom fields according to their order of application to objects. It's
 expected that collection contains only records of one
 L<RT::CustomField/LookupType> and applied to one object or globally
 (L</LimitToGlobalOrObjectId>), otherwise sorting makes no sense.

commit 72945565848336e20b252b2eef2a0edf49d18045
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 18:12:34 2011 -0400

    Spellcheck lib/RT/Dashboards.pm

diff --git a/lib/RT/Dashboards.pm b/lib/RT/Dashboards.pm
index 3509a0a..e1b7a8d 100644
--- a/lib/RT/Dashboards.pm
+++ b/lib/RT/Dashboards.pm
@@ -78,9 +78,10 @@ sub RecordClass {
 
 =head2 LimitToPrivacy
 
-Takes one argument: a privacy string, of the format "<class>-<id>", as produced
-by RT::Dashboard::Privacy(). The Dashboards object will load the dashboards
-belonging to that user or group. Repeated calls to the same object should DTRT.
+Takes one argument: a privacy string, of the format C<$class-$id>, as produced
+by C<< RT::Dashboard->Privacy >>. The Dashboards object will load the
+dashboards belonging to that user or group. Repeated calls to the same object
+should do the right thing.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 3f2c64b..4ad98fc 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -100,8 +100,8 @@ CustomField
 Gecos
 LastUpdated
 LastUpdatedBy
-Portlet
-Portlets
+portlet
+portlets
 RT's
 Requestor
 Requestors

commit 6cca4e03143590ae5c3df601aecba39677d8f16c
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 18:30:31 2011 -0400

    Spellcheck lib/RT/Date.pm

diff --git a/lib/RT/Date.pm b/lib/RT/Date.pm
index ceb1c21..892d49a 100644
--- a/lib/RT/Date.pm
+++ b/lib/RT/Date.pm
@@ -140,18 +140,18 @@ sub new {
 
 =head2 Set
 
-Takes a param hash with the fields C<Format>, C<Value> and C<Timezone>.
+Takes a paramhash with the fields C<Format>, C<Value> and C<Timezone>.
 
-If $args->{'Format'} is 'unix', takes the number of seconds since the epoch.
+If $args->{'Format'} is 'C<unix>', takes the number of seconds since the epoch.
 
-If $args->{'Format'} is ISO, tries to parse an ISO date.
+If $args->{'Format'} is 'C<ISO>', tries to parse an ISO date.
 
-If $args->{'Format'} is 'unknown', require Time::ParseDate and make it figure
-things out. This is a heavyweight operation that should never be called from
-within RT's core. But it's really useful for something like the textbox date
-entry where we let the user do whatever they want.
+If $args->{'Format'} is 'C<unknown>', require L<Time::ParseDate> and let it figure
+things out. This is an expensive operation that should never be called from
+within RT's core. But it's really useful for something like a textbox date
+entry where we let the user specify a date however they want.
 
-If $args->{'Value'} is 0, assumes you mean never.
+If $args->{'Value'} is 0, this assumes you mean never.
 
 =cut
 
@@ -246,10 +246,10 @@ sub SetToNow {
     return $_[0]->Unix(time);
 }
 
-=head2 SetToMidnight [Timezone => 'utc']
+=head2 SetToMidnight [Timezone => 'C<utc>']
 
 Sets the date to midnight (at the beginning of the day).
-Returns the unixtime at midnight.
+Returns the UNIX time at midnight.
 
 Arguments:
 
@@ -275,12 +275,12 @@ sub SetToMidnight {
 
 =head2 Diff
 
-Takes either an C<RT::Date> object or the date in unixtime format as a string,
-if nothing is specified uses the current time.
+Takes either an C<RT::Date> object or the date in UNIX time format as a string.
+If nothing is specified, the current time is used.
 
-Returns the differnce between the time in the current object and that time
-as a number of seconds. Returns C<undef> if any of two compared values is
-incorrect or not set.
+Returns the difference between the time in the current object and the given time
+as a number of seconds. Returns C<undef> if any of the two compared values is
+incorrect or unset.
 
 =cut
 
@@ -301,12 +301,9 @@ sub Diff {
 
 =head2 DiffAsString
 
-Takes either an C<RT::Date> object or the date in unixtime format as a string,
-if nothing is specified uses the current time.
-
-Returns the differnce between C<$self> and that time as a number of seconds as
-a localized string fit for human consumption. Returns empty string if any of
-two compared values is incorrect or not set.
+Returns L</Diff> as a localized string (using L</DurationAsString>) fit for
+human consumption. If L</Diff> returns C<undef> due to a problem then this will
+return the empty string.
 
 =cut
 
@@ -372,8 +369,8 @@ sub DurationAsString {
 
 =head2 AgeAsString
 
-Takes nothing. Returns a string that's the differnce between the
-time in the object and now.
+Takes no arguments. Returns a string representing the difference between the
+time in the object and right now, using L</DiffAsString>.
 
 =cut
 
@@ -383,12 +380,12 @@ sub AgeAsString { return $_[0]->DiffAsString }
 
 =head2 AsString
 
-Returns the object's time as a localized string with curent user's prefered
+Returns the object's time as a localized string with the current user's preferred
 format and timezone.
 
-If the current user didn't choose prefered format then system wide setting is
-used or L</DefaultFormat> if the latter is not specified. See config option
-C<DateTimeFormat>.
+If the current user didn't choose a preferred format, then the system wide
+setting C<DateTimeFormat> is used. If that is unspecified, then
+L</DefaultFormat> is used.
 
 =cut
 
@@ -407,9 +404,8 @@ sub AsString {
 
 =head2 GetWeekday DAY
 
-Takes an integer day of week and returns a localized string for
-that day of week. Valid values are from range 0-6, Note that B<0
-is sunday>.
+Takes an integer day of week and returns a localized string for that day of
+week. Valid values are in the range zero to six. Note that B<0 is Sunday>.
 
 =cut
 
@@ -440,9 +436,9 @@ sub GetMonth {
 
 =head2 AddSeconds SECONDS
 
-Takes a number of seconds and returns the new unix time.
+Takes a number of seconds and returns the new UNIX time.
 
-Negative value can be used to substract seconds.
+You may pass a negative value which act like a subtraction.
 
 =cut
 
@@ -458,10 +454,11 @@ sub AddSeconds {
 =head2 AddDays [DAYS]
 
 Adds C<24 hours * DAYS> to the current time. Adds one day when
-no argument is specified. Negative value can be used to substract
-days.
+no argument is specified.
+
+You may pass a negative value which act like a subtraction.
 
-Returns new unix time.
+Returns the new UNIX time.
 
 =cut
 
@@ -479,9 +476,9 @@ Adds 24 hours to the current time. Returns new unix time.
 
 sub AddDay { return $_[0]->AddSeconds($DAY) }
 
-=head2 Unix [unixtime]
+=head2 Unix
 
-Optionally takes a date in unix seconds since the epoch format.
+Optionally takes a date in UNIX seconds since the epoch format.
 Returns the number of seconds since the epoch
 
 =cut
@@ -510,10 +507,10 @@ sub DateTime {
 
 =head2 Date
 
-Takes Format argument which allows you choose date formatter.
-Pass throught other arguments to the formatter method.
+Takes a C<Format> argument which allows you choose date formatter.
+This passes through any arguments to the formatter method.
 
-Returns the object's formatted date. Default formatter is ISO.
+Returns the object's formatted date. Default formatter is C<ISO>.
 
 =cut
 
@@ -534,9 +531,8 @@ sub Time {
 
 =head2 Get
 
-Returnsa a formatted and localized string that represets time of
-the current object.
-
+Returns a formatted and localized string that represents the time of the
+current object.
 
 =cut
 
@@ -551,8 +547,8 @@ sub Get
 
 =head2 Output formatters
 
-Fomatter is a method that returns date and time in different configurable
-format.
+Formatter is a method that returns the date and time in different configurable
+formats.
 
 Each method takes several arguments:
 
@@ -707,11 +703,11 @@ sub LocalizedDateTime
 =head3 ISO
 
 Returns the object's date in ISO format C<YYYY-MM-DD mm:hh:ss>.
-ISO format is locale independant, but adding timezone offset info
+This ISO format is locale independent, but adding timezone offset info
 is not implemented yet.
 
 Supports arguments: C<Timezone>, C<Date>, C<Time> and C<Seconds>.
-See </Output formatters> for description of arguments.
+See L</Output formatters> for description of arguments.
 
 =cut
 
@@ -744,12 +740,12 @@ sub ISO {
 Returns the object's date and time in W3C date time format
 (L<http://www.w3.org/TR/NOTE-datetime>).
 
-Format is locale independand and is close enought to ISO, but
+Format is locale independent and is close enough to ISO, but
 note that date part is B<not optional> and output string
 has timezone offset mark in C<[+-]hh:mm> format.
 
 Supports arguments: C<Timezone>, C<Time> and C<Seconds>.
-See </Output formatters> for description of arguments.
+See L</Output formatters> for description of arguments.
 
 =cut
 
@@ -789,11 +785,11 @@ sub W3CDTF {
 
 Returns the object's date and time in RFC2822 format,
 for example C<Sun, 06 Nov 1994 08:49:37 +0000>.
-Format is locale independand as required by RFC. Time
+Format is locale independent as required by the RFC. Time
 part always has timezone offset in digits with sign prefix.
 
 Supports arguments: C<Timezone>, C<Date>, C<Time>, C<DayOfWeek>
-and C<Seconds>. See </Output formatters> for description of
+and C<Seconds>. See L</Output formatters> for description of
 arguments.
 
 =cut
@@ -831,9 +827,9 @@ Returns the object's date and time in RFC2616 (HTTP/1.1) format,
 for example C<Sun, 06 Nov 1994 08:49:37 GMT>. While the RFC describes
 version 1.1 of HTTP, but the same form date can be used in version 1.0.
 
-Format is fixed length, locale independand and always represented in GMT
-what makes it quite useless for users, but any date in HTTP transfers
-must be presented using this format.
+Format is fixed length, locale independent and always represented in GMT. This
+makes this method useless for users, but any date in HTTP transfers must be
+presented using this format.
 
     HTTP-date = rfc1123 | ...
     rfc1123   = wkday "," SP date SP time SP "GMT"
@@ -847,7 +843,7 @@ must be presented using this format.
 
 Supports arguments: C<Date> and C<Time>, but you should use them only for
 some personal reasons, RFC2616 doesn't define any optional parts.
-See </Output formatters> for description of arguments.
+See L</Output formatters> for description of arguments.
 
 =cut
 
@@ -869,7 +865,7 @@ sub RFC2616 {
 Returns the object's date and time in iCalendar format,
 
 Supports arguments: C<Date> and C<Time>.
-See </Output formatters> for description of arguments.
+See L</Output formatters> for description of arguments.
 
 =cut
 
@@ -915,7 +911,7 @@ sub _SplitOffset {
 =head3 Localtime $context [$time]
 
 Takes one mandatory argument C<$context>, which determines whether
-we want "user local", "system" or "UTC" time. Also, takes optional
+we want "user local", "system" or "C<UTC>" time. Also, takes optional
 argument unix C<$time>, default value is the current unix time.
 
 Returns object's date and time in the format provided by perl's
@@ -957,17 +953,17 @@ sub Localtime
 =head3 Timelocal $context @time
 
 Takes argument C<$context>, which determines whether we should
-treat C<@time> as "user local", "system" or "UTC" time.
+treat C<@time> as "user local", "system" or "C<UTC>" time.
 
 C<@time> is array returned by L<Localtime> functions. Only first
 six elements are mandatory - $sec, $min, $hour, $mday, $mon and $year.
 You may pass $wday, $yday and $isdst, these are ignored.
 
-If you pass C<$offset> as ninth argument, it's used instead of
-C<$context>. It's done such way as code 
-C<$self->Timelocal('utc', $self->Localtime('server'))> doesn't
-makes much sense and most probably would produce unexpected
-result, so the method ignore 'utc' context and uses offset
+If you pass C<$offset> as the ninth argument, it's used instead of
+C<$context>. It's done this way because code like
+C<< $self->Timelocal('utc', $self->Localtime('server')) >> doesn't
+make much sense and would probably produce unexpected
+results. So this method ignores 'C<utc>' context and uses the offset
 returned by L<Localtime> method.
 
 =cut
@@ -1001,21 +997,21 @@ sub Timelocal {
 
 Returns the timezone name.
 
-Takes one argument, C<$context> argument which could be C<user>, C<server> or C<utc>.
+Takes one argument, C<context>, which could be C<user>, C<server> or C<utc>.
 
 =over
 
-=item user
+=item C<user>
 
 Default value is C<user> that mean it returns current user's Timezone value.
 
-=item server
+=item C<server>
 
 If context is C<server> it returns value of the C<Timezone> RT config option.
 
-=item  utc
+=item C<utc>
 
-If both server's and user's timezone names are undefined returns 'UTC'.
+If both server's and user's timezone names are undefined returns "C<UTC>".
 
 =back
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 4ad98fc..0744e90 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -86,6 +86,8 @@ deserializing
 recursing
 overridable
 variable's
+iCalendar
+textbox
 
 # RT JARGON
 ACEs
@@ -113,3 +115,5 @@ HotList
 attribute's
 subvalue
 subvalues
+formatter
+formatters

commit 2c497efbc1de1fb3f9bf1b87a6586d50e66102fc
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 18:33:55 2011 -0400

    Spellcheck lib/RT/EmailParser.pm

diff --git a/lib/RT/EmailParser.pm b/lib/RT/EmailParser.pm
index 7f25d78..439666c 100644
--- a/lib/RT/EmailParser.pm
+++ b/lib/RT/EmailParser.pm
@@ -264,7 +264,7 @@ sub _DecodeBody {
 
 =head2 _PostProcessNewEntity
 
-cleans up and postprocesses a newly parsed MIME Entity
+Cleans up and post-processes a newly parsed L<MIME::Entity> object.
 
 =cut
 
@@ -515,18 +515,22 @@ sub _SetupMIMEParser {
 
 =head2 ParseEmailAddress string
 
-Returns a list of Email::Address objects
-Works around the bug that Email::Address 1.889 and earlier
-doesn't handle local-only email addresses (when users pass
-in just usernames on the RT system in fields that expect
-Email Addresses)
+Returns a list of L<Email::Address> objects.
+
+This method works around a bug that L<Email::Address> 1.889 and earlier have
+which causes it to not handle local-only email addresses (when users pass in
+just usernames on the RT system in fields that expect Email Addresses)
+
+We don't handle the case of
+
+    bob, fred at bestpractical.com
 
-We don't handle the case of 
-bob, fred at bestpractical.com 
 because we don't want to fail parsing
-bob, "Falcone, Fred" <fred at bestpractical.com>
-The next release of Email::Address will have a new method
-we can use that removes the bandaid
+
+    bob, "Falcone, Fred" <fred at bestpractical.com>
+
+The next release of L<Email::Address> will have a new method
+we can use that removes this band-aid.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 0744e90..144836c 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -88,6 +88,7 @@ overridable
 variable's
 iCalendar
 textbox
+usernames
 
 # RT JARGON
 ACEs

commit 11c9fd24ac60864defb521d25b31d430362fa9f7
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:03:30 2011 -0400

    Spellcheck lib/RT/Group.pm

diff --git a/lib/RT/Group.pm b/lib/RT/Group.pm
index e048f48..3b9668b 100644
--- a/lib/RT/Group.pm
+++ b/lib/RT/Group.pm
@@ -269,12 +269,12 @@ sub LoadUserDefinedGroup {
 
 =head2 LoadACLEquivalenceGroup PRINCIPAL
 
-Loads a user's acl equivalence group. Takes a principal object or its ID.
-ACL equivalnce groups are used to simplify the acl system. Each user
+Loads a user's ACL equivalence group. Takes a principal object or its ID.
+ACL equivalence groups are used to simplify the ACL system. Each user
 has one group that only he is a member of. Rights granted to the user
 are actually granted to that group. This greatly simplifies ACL checks.
 While this results in a somewhat more complex setup when creating users
-and granting ACLs, it _greatly_ simplifies acl checks.
+and granting ACLs, it _greatly_ simplifies ACL checks.
 
 =cut
 
@@ -317,7 +317,7 @@ sub LoadSystemInternalGroup {
 
 Loads a ticket group from the database. 
 
-Takes a param hash with 2 parameters:
+Takes a paramhash with two parameters:
 
     Ticket is the TicketId we're curious about
     Type is the type of Group we're trying to load: 
@@ -342,7 +342,7 @@ sub LoadTicketRoleGroup {
 
 Loads a Queue group from the database. 
 
-Takes a param hash with 2 parameters:
+Takes a paramhash with two parameters:
 
     Queue is the QueueId we're curious about
     Type is the type of Group we're trying to load: 
@@ -367,7 +367,7 @@ sub LoadQueueRoleGroup {
 
 Loads a System group from the database. 
 
-Takes a single param: Type
+Takes a single parameter: Type
 
     Type is the type of Group we're trying to load: 
         Requestor, Cc, AdminCc, Owner
@@ -535,9 +535,9 @@ sub _ValidateUserDefinedName {
 
 A helper subroutine which creates a group containing only 
 an individual user. This gets used by the ACL system to check rights.
-Yes, it denormalizes the data, but that's ok, as we totally win on performance.
+Yes, it denormalizes the data, but that's okay, as we totally win on performance.
 
-Returns a tuple of (Id, Message).  If id is 0, the create failed
+Returns a tuple of (Id, Message). If ID is 0, the create failed.
 
 =cut
 
@@ -861,7 +861,7 @@ sub MemberEmailAddressesAsString {
 
 AddMember adds a principal to this group.  It takes a single principal id.
 Returns a two value array. the first value is true on successful 
-addition or 0 on failure.  The second value is a textual status msg.
+addition or 0 on failure.  The second value is a textual status message.
 
 =cut
 
@@ -1033,10 +1033,10 @@ sub HasMemberRecursively {
 =head2 DeleteMember PRINCIPAL_ID
 
 Takes the principal id of a current user or group.
-If the current user has apropriate rights,
-removes that GroupMember from this group.
+If the current user has appropriate rights,
+removes that L<RT::GroupMember> from this group.
 Returns a two value array. the first value is true on successful 
-addition or 0 on failure.  The second value is a textual status msg.
+addition or 0 on failure.  The second value is a textual status message.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 144836c..778d400 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -89,6 +89,7 @@ variable's
 iCalendar
 textbox
 usernames
+denormalizes
 
 # RT JARGON
 ACEs

commit 6f583f6affce9f98dc13e89704b3a995e316667e
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:03:37 2011 -0400

    Spellcheck lib/RT/GroupMember.pm

diff --git a/lib/RT/GroupMember.pm b/lib/RT/GroupMember.pm
index 84887ee..2f7335b 100644
--- a/lib/RT/GroupMember.pm
+++ b/lib/RT/GroupMember.pm
@@ -224,7 +224,7 @@ sub Create {
 
 Create { Group => undef, Member => undef }
 
-Creates an entry in the groupmembers table, which lists a user
+Creates an entry in the C<groupmembers> table, which lists a user
 as a member of himself. This makes ACL checks a whole bunch easier.
 This happens once on user create and never ever gets yanked out.
 

commit f1a1fd54c93d12d5a203d065b0cc2654e4d6a4e1
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:10:13 2011 -0400

    Spellcheck lib/RT/Handle.pm

diff --git a/lib/RT/Handle.pm b/lib/RT/Handle.pm
index 1a44372..ace173b 100644
--- a/lib/RT/Handle.pm
+++ b/lib/RT/Handle.pm
@@ -58,11 +58,11 @@ RT::Handle - RT's database handle
 
 =head1 DESCRIPTION
 
-C<RT::Handle> is RT specific wrapper over one of L<DBIx::SearchBuilder::Handle>
-classes. As RT works with different types of DBs we subclass repsective handler
-from L<DBIx::SerachBuilder>. Type of the DB is defined by C<DatabasseType> RT's
-config option. You B<must> load this module only when the configs have been
-loaded.
+C<RT::Handle> is an RT-specific wrapper for one of the
+L<DBIx::SearchBuilder::Handle> subclasses. Since RT works with different
+database engines, we subclass the database handler class of L<DBIx::SearchBuilder>
+chosen by RT's C<DatabaseType> config option. You B<must> load this module only
+after the configuration has been fully loaded.
 
 =cut
 
@@ -290,7 +290,7 @@ sub CheckCompatibility {
     return (1)
 }
 
-=head2 Database maintanance
+=head2 Database maintenance
 
 =head3 CreateDatabase $DBH
 
@@ -1073,7 +1073,7 @@ sub InsertData {
 
 =head2 ACLEquivGroupId
 
-Given a userid, return that user's acl equivalence group
+Given a user ID, return that user's ACL equivalence group.
 
 =cut
 
@@ -1096,8 +1096,9 @@ sub ACLEquivGroupId {
 =head2 QueryHistory
 
 Returns the SQL query history associated with this handle. The top level array
-represents a lists of request. Each request is a hash with metadata about the
-request (such as the URL) and a list of queries. You'll probably not be using this.
+represents a list of request. Each request is a hash with metadata about the
+request (such as the C<Path>) and a list of C<Queries>. You'll probably not be
+using this.
 
 =cut
 
@@ -1109,9 +1110,20 @@ sub QueryHistory {
 
 =head2 AddRequestToHistory
 
-Adds a web request to the query history. It must be a hash with keys Path (a
-string) and Queries (an array reference of arrays, where elements are time,
-sql, bind parameters, and duration).
+Adds a web request to the query history. It must be a hash with the following keys:
+
+=over 4
+
+=item C<Path>
+
+A string representing the web path which caused this SQL query.
+
+=item C<Queries>
+
+An array reference of arrays, where elements are time, the SQL query as a
+string, bind parameters, and duration.
+
+=back
 
 =cut
 

commit aab256d25de89e164dd67fa3c9c82e9751415f9c
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:16:45 2011 -0400

    Spellcheck lib/RT/I18N.pm

diff --git a/lib/RT/I18N.pm b/lib/RT/I18N.pm
index a1f2af5..ffbd6f7 100644
--- a/lib/RT/I18N.pm
+++ b/lib/RT/I18N.pm
@@ -162,8 +162,8 @@ sub encoding { 'utf-8' }
 
 =head2 SetMIMEEntityToUTF8 $entity
 
-An utility function which will try to convert entity body into utf8.
-It's now a wrap-up of SetMIMEEntityToEncoding($entity, 'utf-8').
+A utility function which will try to convert entity body into C<utf8>.
+It's now a wrapper for C<SetMIMEEntityToEncoding($entity, 'utf-8')>.
 
 =cut
 
@@ -175,10 +175,10 @@ sub SetMIMEEntityToUTF8 {
 
 =head2 IsTextualContentType $type
 
-An utility function that determines whether $type is I<textual>, meaning
+An utility function that determines whether C<$type> is I<textual>, meaning
 that it can sensibly be converted to Unicode text.
 
-Currently, it returns true iff $type matches this regular expression
+Currently, it returns true if and only if C<$type> matches this regular expression
 (case-insensitively):
 
     ^(?:text/(?:plain|html)|message/rfc822)\b
@@ -194,15 +194,22 @@ sub IsTextualContentType {
 
 =head2 SetMIMEEntityToEncoding $entity, $encoding
 
-An utility function which will try to convert entity body into specified
-charset encoding (encoded as octets, *not* unicode-strings).  It will
-iterate all the entities in $entity, and try to convert each one into
-specified charset if whose Content-Type is 'text/plain'.
+A utility function which will try to convert the entity body into the specified
+charset encoding (encoded as octets, *not* unicode-strings). It will
+iterate over all the entities in C<$entity>, and try to convert each one into
+specified charset if the entity's C<Content-Type> is 'text/plain'.
 
-the methods are tries in order:
-1) to convert the entity to $encoding, 
-2) to interpret the entity as iso-8859-1 and then convert it to $encoding,
-3) forcibly convert it to $encoding.
+These methods are tried in order:
+
+=over 4
+
+=item convert the entity to C<$encoding>
+
+=item interpret the entity as C<iso-8859-1> and then convert it to C<$encoding>
+
+=item forcibly convert it to C<$encoding>
+
+=back
 
 This function doesn't return anything meaningful.
 
@@ -302,14 +309,14 @@ sub SetMIMEEntityToEncoding {
 =head2 DecodeMIMEWordsToUTF8 $raw
 
 An utility method which mimics MIME::Words::decode_mimewords, but only
-limited functionality.  This function returns an utf-8 string.
+limited functionality.  This function returns a C<utf-8> string.
 
-It returns the decoded string, or the original string if it's not
-encoded.  Since the subroutine converts specified string into utf-8
-charset, it should not alter a subject written in English.
+It returns the decoded string, or the original string if it's not encoded.
+Since the subroutine converts the specified string into the C<utf-8> charset,
+it should not alter a subject written in English.
 
-Why not use MIME::Words directly?  Because it fails in RT when I
-tried.  Maybe it's ok now.
+TODO: Why not use L<MIME::Words> directly?  Because it fails in RT when I
+tried. Maybe it's okay now.
 
 =cut
 
@@ -538,8 +545,10 @@ sub _GuessCharset {
 
 =head2 _CanonicalizeCharset NAME
 
-canonicalize charset, return lowercase version.
-special cases are: gb2312 => gbk, utf8 => utf-8
+This canonicalizes the provided charset, returning the lowercase version.
+
+Special cases are: C<gb2312> becomes C<gbk>, C<utf8> and C<utf-8-strict> become
+C<utf-8>.
 
 =cut
 
@@ -564,7 +573,7 @@ sub _CanonicalizeCharset {
 
 Converts a MIME Head from one encoding to another. This totally violates the RFC.
 We should never need this. But, Surprise!, MUAs are badly broken and do this kind of stuff
-all the time
+all the time.
 
 
 =cut
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 778d400..709babf 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -37,6 +37,7 @@ DSN
 GPG
 GnuPG
 MUA
+MUAs
 SQL
 STDERR
 STDOUT
@@ -90,6 +91,7 @@ iCalendar
 textbox
 usernames
 denormalizes
+canonicalizes
 
 # RT JARGON
 ACEs

commit ec685d302052431dc452e17979a819ce08f6854b
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:17:12 2011 -0400

    Spellcheck lib/RT/Installer.pm

diff --git a/lib/RT/Installer.pm b/lib/RT/Installer.pm
index 6a6e6bd..6212f89 100644
--- a/lib/RT/Installer.pm
+++ b/lib/RT/Installer.pm
@@ -301,7 +301,7 @@ sub SaveConfig {
 
     RT::Installer - RT's Installer
 
-=head1 SYNOPSYS
+=head1 SYNOPSIS
 
     use RT::Installer;
     my $meta = RT::Installer->Meta;

commit 902cd2c10ac38b1bab807a2c43bfa4bb66ad2903
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:18:15 2011 -0400

    Spellcheck lib/RT/Lifecycle.pm

diff --git a/lib/RT/Lifecycle.pm b/lib/RT/Lifecycle.pm
index a21042d..5f18e70 100644
--- a/lib/RT/Lifecycle.pm
+++ b/lib/RT/Lifecycle.pm
@@ -160,7 +160,7 @@ sub List {
 
 =head2 Name
 
-Returns name of the laoded lifecycle.
+Returns name of the loaded lifecycle.
 
 =cut
 
@@ -376,7 +376,7 @@ Takes status and returns list of statuses it can be changed to.
 Is status is empty or undefined then returns list of statuses for
 a new ticket.
 
-If argument is ommitted then returns a hash with all possible
+If the argument is omitted, then this returns a hash with all possible
 transitions in the following format:
 
     status_x => [ next_status, next_status, ... ],
@@ -432,7 +432,7 @@ sub CheckRight {
 
 =head3 RegisterRights
 
-Registers all defined rights in the system, so they can be addigned
+Registers all defined rights in the system, so they can be assigned
 to users. No need to call it, as it's called when module is loaded.
 
 =cut

commit 6a55f8e19ab55c6cce59ae6d3bb6ee297cdbccf8
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:21:17 2011 -0400

    Spellcheck lib/RT/ObjectCustomField.pm

diff --git a/lib/RT/ObjectCustomField.pm b/lib/RT/ObjectCustomField.pm
index 45286ed..5160f0c 100644
--- a/lib/RT/ObjectCustomField.pm
+++ b/lib/RT/ObjectCustomField.pm
@@ -144,20 +144,21 @@ sub CustomFieldObj {
 
 =head2 Sorting custom fields applications
 
-Custom fields sorted on multiple layers. First of all custom
-fields with different lookup type are sorted independently. All
-global custom fields have fixed order for all objects, but you
-can insert object specific custom fields between them. Object
-specific custom fields can be applied to several objects and
-be on different place. For example you have GCF1, GCF2, LCF1,
-LCF2 and LCF3 that applies to tickets. You can place GCF2
-above GCF1, but they will be in the same order in all queues.
-However, LCF1 and other local can be placed at any place
-for particular queue: above global, between them or below.
+Custom fields are sorted in multiple layers. First of all, custom fields with
+different lookup types are sorted independently. All global custom fields have
+fixed order for all objects, but you can insert object specific custom fields
+between them. Object-specific custom fields can be applied to several objects
+and be in different places.
+
+For example, you have C<GCF1>, C<GCF2>, C<LCF1>, C<LCF2> and C<LCF3> that each
+apply to tickets. You can place C<GCF2> above C<GCF1>, but they will be in the
+same order in all queues. However, C<LCF1> and other local custom fields can be
+placed at any place for particular queue: above globals, between them, or below
+globals.
 
 =head3 MoveUp
 
-Moves custom field up. See </Sorting custom fields applications>.
+Moves custom field up. See L</Sorting custom fields applications>.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 709babf..88b8abe 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -121,3 +121,4 @@ subvalue
 subvalues
 formatter
 formatters
+lookup

commit 01cacc5ac8cf0ab77002d6018233ab9c9741ff76
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:22:12 2011 -0400

    Spellcheck lib/RT/ObjectCustomFieldValue.pm

diff --git a/lib/RT/ObjectCustomFieldValue.pm b/lib/RT/ObjectCustomFieldValue.pm
index 4d6942c..f0bdf3f 100644
--- a/lib/RT/ObjectCustomFieldValue.pm
+++ b/lib/RT/ObjectCustomFieldValue.pm
@@ -390,9 +390,9 @@ sub _FillInTemplateURL {
 
 =head2 ValueLinkURL
 
-Returns a filled in URL template for this ObjectCustomFieldValue, suitable for 
-constructing a hyperlink in RT's webui. Returns undef if this custom field doesn't have
-a LinkValueTo
+Returns a filled-in URL template for this ObjectCustomFieldValue, suitable for
+constructing a hyperlink in RT's web interface. Returns C<undef> if this custom
+field doesn't have a C<LinkValueTo>.
 
 =cut
 
@@ -405,9 +405,9 @@ sub LinkValueTo {
 
 =head2 ValueIncludeURL
 
-Returns a filled in URL template for this ObjectCustomFieldValue, suitable for 
-constructing a hyperlink in RT's webui. Returns undef if this custom field doesn't have
-a IncludeContentForValue
+Returns a filled-in URL template for this ObjectCustomFieldValue, suitable for
+constructing a hyperlink in RT's web interface. Returns C<undef> if this custom
+field doesn't have a C<IncludeContentForValue>.
 
 =cut
 

commit 582f32d2e003e996264e2ac28819e33653b93d14
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:24:12 2011 -0400

    Spellcheck lib/RT/Principal.pm

diff --git a/lib/RT/Principal.pm b/lib/RT/Principal.pm
index 79d5197..f80e6df 100644
--- a/lib/RT/Principal.pm
+++ b/lib/RT/Principal.pm
@@ -228,7 +228,7 @@ sub RevokeRight {
 =head2 HasRight (Right => 'right' Object => undef)
 
 Checks to see whether this principal has the right "Right" for the Object
-specified. This takes the params:
+specified. This takes the following parameters:
 
 =over 4
 
@@ -596,7 +596,7 @@ set of objects. Takes Right, EquiveObjects,
 IncludeSystemRights and IncludeSuperusers arguments.
 
 IncludeSystemRights is true by default, rights
-granted systemwide are ignored when IncludeSystemRights
+granted system-wide are ignored when IncludeSystemRights
 is set to a false value.
 
 IncludeSuperusers is true by default, SuperUser right
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 88b8abe..b856300 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -92,6 +92,7 @@ textbox
 usernames
 denormalizes
 canonicalizes
+reinitializes
 
 # RT JARGON
 ACEs

commit 2d4383d83c1daf786a330ccae8d434ad0684481a
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:30:40 2011 -0400

    Spellcheck lib/RT/Queue.pm

diff --git a/lib/RT/Queue.pm b/lib/RT/Queue.pm
index 4d55515..87f2273 100644
--- a/lib/RT/Queue.pm
+++ b/lib/RT/Queue.pm
@@ -281,8 +281,8 @@ sub SetLifecycle {
 
 =head2 ValidateLifecycle NAME
 
-Takes a lifecycle name. Returns true if it's an ok name and such
-lifecycle is configured. Returns undef otherwise.
+Returns true if there is an L<RT::Lifecycle> with the given NAME. Returns
+C<undef> otherwise.
 
 =cut
 
@@ -529,8 +529,8 @@ sub Load {
 
 =head2 ValidateName NAME
 
-Takes a queue name. Returns true if it's an ok name for
-a new queue. Returns undef if there's already a queue by that name.
+Takes a queue name. Returns true if it's an acceptable name for
+a new queue. Returns C<undef> if there's already a queue by that name.
 
 =cut
 
@@ -831,9 +831,9 @@ AddWatcher takes a parameter hash. The keys are as follows:
 
 Type        One of Requestor, Cc, AdminCc
 
-PrinicpalId The RT::Principal id of the user or group that's being added as a watcher
+PrincipalId The RT::Principal id of the user or group that's being added as a watcher
 Email       The email address of the new watcher. If a user with this 
-            email address can't be found, a new nonprivileged user will be created.
+            email address can't be found, a new unprivileged user will be created.
 
 If the watcher you\'re trying to set has an RT account, set the Owner parameter to their User Id. Otherwise, set the Email parameter to their Email address.
 
@@ -960,8 +960,10 @@ Type  (one of Requestor,Cc,AdminCc)
 and one of
 
 PrincipalId (an RT::Principal Id of the watcher you want to remove)
-    OR
-Email (the email address of an existing wathcer)
+
+OR
+
+Email (the email address of an existing watcher)
 
 
 =cut
@@ -1116,7 +1118,7 @@ sub AdminCc {
 
 =head2 IsWatcher { Type => TYPE, PrincipalId => PRINCIPAL_ID }
 
-Takes a param hash with the attributes Type and PrincipalId
+Takes a paramhash with the attributes Type and PrincipalId
 
 Type is one of Requestor, Cc, AdminCc and Owner
 
@@ -1242,7 +1244,7 @@ sub CurrentUserHasRight {
 
 =head2 HasRight
 
-Takes a param hash with the fields 'Right' and 'Principal'.
+Takes a paramhash with the fields 'Right' and 'Principal'.
 Principal defaults to the current user.
 Returns true if the principal has that right for this queue.
 Returns undef otherwise.
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index b856300..d854d49 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -111,6 +111,7 @@ portlet
 portlets
 RT's
 Requestor
+requestor
 Requestors
 crontool
 lifecycle

commit 658cae9f6fa264218993e738097d0037bfa5cab7
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:34:48 2011 -0400

    Spellcheck lib/RT/Record.pm

diff --git a/lib/RT/Record.pm b/lib/RT/Record.pm
index bd3e6b5..ee28d46 100644
--- a/lib/RT/Record.pm
+++ b/lib/RT/Record.pm
@@ -97,8 +97,8 @@ sub _PrimaryKey { 'id' }
 
 =head2 Id
 
-Override L<DBIx::SearchBuilder/Id> to avoid a few lookups RT doesn't do
-on a very common codepath
+Override L<DBIx::SearchBuilder/Id> to break encapsulation for a very hot
+codepath.
 
 C<id> is an alias to C<Id> and is the preferred way to call this method.
 
@@ -261,11 +261,11 @@ sub _Handle { return $RT::Handle }
 =head2  Create PARAMHASH
 
 Takes a PARAMHASH of Column -> Value pairs.
-If any Column has a Validate$PARAMNAME subroutine defined and the 
+If any Column has a C<Validate$PARAMNAME> subroutine defined and the 
 value provided doesn't pass validation, this routine returns
 an error.
 
-If this object's table has any of the following atetributes defined as
+If this object's table has any of the following attributes defined as
 'Auto', this routine will automatically fill in their values.
 
 =cut
@@ -605,7 +605,7 @@ sub ValidateName {
 
 =head2 SQLType attribute
 
-return the SQL type for the attribute 'attribute' as stored in _ClassAccessible
+Returns the SQL type for the attribute 'attribute' as stored in L</_ClassAccessible>.
 
 =cut
 
@@ -613,9 +613,7 @@ sub SQLType {
     my $self = shift;
     my $field = shift;
 
-    return ($self->_Accessible($field, 'type'));
-
-
+    return $self->_Accessible($field, 'type');
 }
 
 sub __Value {
@@ -1094,11 +1092,10 @@ sub UnresolvedDependencies {
 
 =head2 AllDependedOnBy
 
-Returns an array of RT::Ticket objects which (directly or indirectly)
-depends on this ticket; takes an optional 'Type' argument in the param
-hash, which will limit returned tickets to that type, as well as cause
-tickets with that type to serve as 'leaf' nodes that stops the recursive
-dependency search.
+Returns an array of RT::Ticket objects which (directly or indirectly) depends
+on this ticket; takes an optional 'Type' argument in the paramhash, which will
+limit returned tickets to that type, as well as cause tickets with that type to
+serve as 'leaf' nodes that stops the recursive dependency search.
 
 =cut
 
@@ -1111,10 +1108,9 @@ sub AllDependedOnBy {
 =head2 AllDependsOn
 
 Returns an array of RT::Ticket objects which this ticket (directly or
-indirectly) depends on; takes an optional 'Type' argument in the param
-hash, which will limit returned tickets to that type, as well as cause
-tickets with that type to serve as 'leaf' nodes that stops the
-recursive dependency search.
+indirectly) depends on; takes an optional 'Type' argument in the paramhash,
+which will limit returned tickets to that type, as well as cause tickets with
+that type to serve as 'leaf' nodes that stops the recursive dependency search.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index d854d49..df869b1 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -26,6 +26,7 @@ Zakirov
 
 # ENGLISH
 one's
+multi
 
 # PROGRAMMING JARGON
 API
@@ -93,6 +94,7 @@ usernames
 denormalizes
 canonicalizes
 reinitializes
+codepath
 
 # RT JARGON
 ACEs

commit f8d5e08a5ae7fffdcb9c4b68733e50b465c342d9
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:36:51 2011 -0400

    Spellcheck lib/RT/SavedSearches.pm

diff --git a/lib/RT/SavedSearches.pm b/lib/RT/SavedSearches.pm
index 069bf92..19c2961 100644
--- a/lib/RT/SavedSearches.pm
+++ b/lib/RT/SavedSearches.pm
@@ -78,12 +78,12 @@ sub RecordClass {
 
 =head2 LimitToPrivacy
 
-Takes two argumets: a privacy string, of the format "<class>-<id>", as
-produced by RT::SavedSearch::Privacy(); and a type string, as produced
-by RT::SavedSearch::Type().  The SavedSearches object will load the
-searches belonging to that user or group that are of the type
-specified.  If no type is specified, all the searches belonging to the
-user/group will be loaded.  Repeated calls to the same object should DTRT.
+Takes two arguments: a privacy string, of the format C<$class-$id>, as produced
+by C<< RT::SavedSearch->Privacy >>; and a type string, as produced by
+C<< RT::SavedSearch->Type >>. The SavedSearches object will load the searches
+belonging to that user or group that are of the specified type. If no type is
+specified, all the searches belonging to the user or group will be loaded.
+Repeated calls to the same object should do the right thing.
 
 =cut
 

commit 9f90427ac8b54ca83271ccd0dc707cdbdaff6240
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:41:02 2011 -0400

    Spellcheck lib/RT/Scrip.pm

diff --git a/lib/RT/Scrip.pm b/lib/RT/Scrip.pm
index 5d4e5e8..1e326e8 100644
--- a/lib/RT/Scrip.pm
+++ b/lib/RT/Scrip.pm
@@ -95,8 +95,9 @@ Creates a new entry in the Scrips table. Takes a paramhash with:
 
 
 
-Returns (retval, msg);
-retval is 0 for failure or scrip id.  msg is a textual description of what happened.
+Returns (id, message);
+C<id> is 0 on failure, or scrip ID on success. message is a textual description
+of what happened.
 
 =cut
 
@@ -210,7 +211,7 @@ sub Delete {
 
 =head2 QueueObj
 
-Retuns an RT::Queue object with this Scrip's queue
+Returns the L<RT::Queue> object for this scrip's queue.
 
 =cut
 
@@ -229,7 +230,7 @@ sub QueueObj {
 
 =head2 ActionObj
 
-Retuns an RT::Action object with this Scrip\'s Action
+Returns the L<RT::ScripAction> object for this scrip's action.
 
 =cut
 
@@ -252,7 +253,7 @@ sub ActionObj {
 
 =head2 ConditionObj
 
-Retuns an L<RT::ScripCondition> object with this Scrip's IsApplicable
+Returns the L<RT::ScripCondition> object for this scrip's condition.
 
 =cut
 
@@ -281,7 +282,7 @@ sub LoadModules {
 
 =head2 TemplateObj
 
-Retuns an RT::Template object with this Scrip\'s Template
+Returns the L<RT::Template> object for this scrip's template.
 
 =cut
 
@@ -541,8 +542,7 @@ sub _Value {
 
 =head2 CurrentUserHasRight
 
-Helper menthod for HasRight. Presets Principal to CurrentUser then 
-calls HasRight.
+Wrapper method for L</HasRight>, defaulting C<Principal> to the current user.
 
 =cut
 
@@ -558,7 +558,7 @@ sub CurrentUserHasRight {
 
 =head2 HasRight
 
-Takes a param-hash consisting of "Right" and "Principal"  Principal is 
+Takes a paramhash consisting of "Right" and "Principal"  Principal is 
 an RT::User object or an RT::CurrentUser object. "Right" is a textual
 Right string that applies to Scrips.
 
@@ -589,12 +589,12 @@ sub HasRight {
 =head2 CompileCheck
 
 This routine compile-checks the custom prepare, commit, and is-applicable code
-to see if they are syntactically valid Perl. We eval them in a codeblock to
+to see if they are syntactically valid Perl. We eval them in a code block to
 avoid actually executing the code.
 
 If one of the fields has a compile error, only the first is reported.
 
-Returns an (ok, message) pair.
+Returns an (OK, message) pair.
 
 =cut
 
@@ -612,7 +612,7 @@ sub CompileCheck {
         next if !$@;
 
         my $error = $@;
-        return (0, $self->loc("Couldn't compile [_1] codeblock '[_2]': [_3]", $method, $code, $error));
+        return (0, $self->loc("Couldn't compile [_1] code block '[_2]': [_3]", $method, $code, $error));
     }
 }
 

commit 284ccf637450902231c7d3b23894b8a7aeaad5f6
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:41:29 2011 -0400

    Remove stale TODO; I don't think ScripActions are going anywhere

diff --git a/lib/RT/ScripAction.pm b/lib/RT/ScripAction.pm
index c679a91..b5f879a 100644
--- a/lib/RT/ScripAction.pm
+++ b/lib/RT/ScripAction.pm
@@ -258,16 +258,6 @@ sub DESTROY {
     $self->{'TemplateObj'} = undef;
 }
 
-=head2 TODO
-
-Between this, RT::Scrip and RT::Action::*, we need to be able to get rid of a 
-class. This just reeks of too much complexity -- jesse
-
-=cut
-
-
-
-
 =head2 id
 
 Returns the current value of id.

commit 4cca9a650e79f577097b5d32159e659681b9c550
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:42:02 2011 -0400

    Spellcheck lib/RT/Scrips.pm

diff --git a/lib/RT/Scrips.pm b/lib/RT/Scrips.pm
index 077dbfe..2e25e4f 100644
--- a/lib/RT/Scrips.pm
+++ b/lib/RT/Scrips.pm
@@ -305,7 +305,7 @@ sub _SetupSourceObjects {
 
 =head2 _FindScrips
 
-Find only the apropriate scrips for whatever we're doing now.  Order them 
+Find only the appropriate scrips for whatever we're doing now.  Order them 
 by their description.  (Most common use case is to prepend a number to the
 description, forcing the scrips to display and run in ascending alphanumerical 
 order.)

commit 5e481ac0f88a6808d3a95a604d5639d7affd73ad
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:43:19 2011 -0400

    Spellcheck lib/RT/SearchBuilder.pm

diff --git a/lib/RT/SearchBuilder.pm b/lib/RT/SearchBuilder.pm
index 01f08ef..dfde46b 100644
--- a/lib/RT/SearchBuilder.pm
+++ b/lib/RT/SearchBuilder.pm
@@ -212,9 +212,9 @@ sub LimitCustomField {
 
 =head2 Limit PARAMHASH
 
-This Limit sub calls SUPER::Limit, but defaults "CASESENSITIVE" to 1, thus
+This Limit sub calls C<SUPER::Limit>, but defaults "CASESENSITIVE" to 1, thus
 making sure that by default lots of things don't do extra work trying to 
-match lower(colname) agaist lc($val);
+match C<lower(colname)> against C<lc($val)>;
 
 =cut
 
@@ -286,8 +286,9 @@ sub _DoCount {
 =head2 ColumnMapClassName
 
 ColumnMap needs a Collection name to load the correct list display.
-Depluralization is hard, so provide an easy way to correct the naive
-algorithm that this code uses.
+
+Depluralization is hard, so you can easily correct the naive
+algorithm that this code uses in your subclass.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index df869b1..49ec459 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -27,6 +27,7 @@ Zakirov
 # ENGLISH
 one's
 multi
+depluralization
 
 # PROGRAMMING JARGON
 API

commit 59778fb23460ea4b30f8225f5f1acdad122aa9f3
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:49:19 2011 -0400

    Remove a lot of Shredder's old doc that doesn't fit in core RT

diff --git a/lib/RT/Shredder.pm b/lib/RT/Shredder.pm
index d73db13..36cb00f 100644
--- a/lib/RT/Shredder.pm
+++ b/lib/RT/Shredder.pm
@@ -799,48 +799,6 @@ __END__
 
 =head1 NOTES
 
-=head2 Database transactions support
-
-Since 0.03_01 RT::Shredder uses database transactions and should be
-much safer to run on production servers.
-
-=head2 Foreign keys
-
-Mainstream RT doesn't use FKs, but at least I posted DDL script that creates them
-in mysql DB, note that if you use FKs then this two valid keys don't allow delete
-Tickets because of bug in MySQL:
-
-  ALTER TABLE Tickets ADD FOREIGN KEY (EffectiveId) REFERENCES Tickets(id);
-  ALTER TABLE CachedGroupMembers ADD FOREIGN KEY (Via) REFERENCES CachedGroupMembers(id);
-
-L<http://bugs.mysql.com/bug.php?id=4042>
-
-=head1 BUGS AND HOW TO CONTRIBUTE
-
-We need your feedback in all cases: if you use it or not,
-is it works for you or not.
-
-=head2 Testing
-
-Don't skip C<make test> step while install and send me reports if it's fails.
-Add your own tests, it's easy enough if you've writen at list one perl script
-that works with RT. Read more about testing in F<t/utils.pl>.
-
-=head2 Reporting
-
-Send reports to L</AUTHOR> or to the RT mailing lists.
-
-=head2 Documentation
-
-Many bugs in the docs: insanity, spelling, gramar and so on.
-Patches are wellcome.
-
-=head2 Todo
-
-Please, see Todo file, it has some technical notes
-about what I plan to do, when I'll do it, also it
-describes some problems code has.
-
 =head2 Repository
 
 Since RT-3.7 shredder is a part of the RT distribution.
@@ -853,14 +811,6 @@ L<https://opensvn.csie.org/rtx_shredder>
 
     Ruslan U. Zakirov <Ruslan.Zakirov at gmail.com>
 
-=head1 COPYRIGHT
-
-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
-Perl distribution.
-
 =head1 SEE ALSO
 
 L<rt-shredder>, L<rt-validator>

commit 2f304f529ec457c8e6ae31b374568500b0098e68
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:50:16 2011 -0400

    Spellcheck lib/RT/Shredder.pm

diff --git a/lib/RT/Shredder.pm b/lib/RT/Shredder.pm
index 36cb00f..66b52a5 100644
--- a/lib/RT/Shredder.pm
+++ b/lib/RT/Shredder.pm
@@ -106,9 +106,9 @@ See also 'rt-shredder --help'.
 
 Shredder's WebUI integrates into RT's WebUI.  You can find it in the
 Configuration->Tools->Shredder tab.  The interface is similar to the
-CLI and gives you the same functionality. You can find 'Shredder' link
-at the bottom of tickets search results, so you could wipeout tickets
-in the way similar to the bulk update.
+command-line interface and gives you the same functionality. You can find the
+'Shredder' link at the bottom of tickets search results, so you can wipeout
+tickets much in the same way that you would bulk update them.
 
 
 =head1 DATA STORAGE AND BACKUPS
@@ -171,7 +171,7 @@ RT objects and classes.  The API is not well documented yet, but you
 can find usage examples in L<rt-shredder> and the
 F<lib/t/regression/shredder/*.t> test files.
 
-However, here is a small example that do the same action as in CLI
+However, here is a small example that do the same action as in the command-line
 example from L</SYNOPSIS>:
 
   use RT::Shredder;
@@ -257,7 +257,7 @@ our @SUPPORTED_OBJECTS = qw(
     RT::Shredder::Init( %default_options );
 
 C<RT::Shredder::Init()> should be called before creating an
-RT::Shredder object.  It iniitalizes RT and loads the RT
+RT::Shredder object.  It initializes RT and loads the RT
 configuration.
 
 %default_options are passed to every C<<RT::Shredder->new>> call.
@@ -302,12 +302,12 @@ sub _Init
 
 =head4 CastObjectsToRecords( Objects => undef )
 
-Cast objects to the C<RT::Record> objects or its ancesstors.
+Cast objects into C<RT::Record> objects or its ancestors.
 Objects can be passed as SCALAR (format C<< <class>-<id> >>),
-ARRAY, C<RT::Record> ancesstors or C<RT::SearchBuilder> ancesstor.
+ARRAY, C<RT::Record> ancestors or C<RT::SearchBuilder> ancestor.
 
-Most methods that takes C<Objects> argument use this method to
-cast argument value to list of records.
+Most methods that take an C<Objects> argument use this method to
+cast the argument's value into a list of records.
 
 Returns an array of records.
 
@@ -396,8 +396,8 @@ sub PutObjects
 
 Puts record object into cache and returns its cache entry.
 
-B<NOTE> that this method support B<only C<RT::Record> object or its ancesstor
-objects>, if you want put mutliple objects or objects represented by different
+B<NOTE> that this method support B<only C<RT::Record> object or its ancestor
+objects>, if you want put multiple objects or objects represented by different
 classes then use C<PutObjects> method instead.
 
 =cut
@@ -628,11 +628,11 @@ path by next rules:
 
 * if C<FileName> has C<XXXX> (exactly four uppercase C<X> letters) then it would be changed with digits from 0000 to 9999 range, with first one free value;
 
-* if C<FileName> has C<%T> then it would be replaced with the current date and time in the C<YYYY-MM-DDTHH:MM:SS> format. Note that using C<%t> may still generate not unique names, using C<XXXX> recomended.
+* if C<FileName> has C<%T> then it would be replaced with the current date and time in the C<YYYY-MM-DDTHH:MM:SS> format. Note that using C<%t> may still generate not unique names, using C<XXXX> recommended.
 
 * if C<FromStorage> argument is true (default behaviour) then result path would always be relative to C<StoragePath>;
 
-* if C<FromStorage> argument is false then result would be relative to the current dir unless it's already absolute path.
+* if C<FromStorage> argument is false then result would be relative to the current directory unless it's already absolute path.
 
 Returns an absolute path of the file.
 
@@ -714,7 +714,7 @@ sub GetFileName
 
 =head4 StoragePath
 
-Returns an absolute path to the storage dir.  See
+Returns an absolute path to the storage directory.  See
 L<CONFIGURATION/$ShredderStoragePath>.
 
 See also description of the L</GetFileName> method.
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 49ec459..e814c1d 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -28,6 +28,7 @@ Zakirov
 one's
 multi
 depluralization
+auditability
 
 # PROGRAMMING JARGON
 API
@@ -127,3 +128,4 @@ subvalues
 formatter
 formatters
 lookup
+wipeout

commit cb9e8800b5300e656f7779dd0defcb670cf49af3
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 19:52:42 2011 -0400

    Spellcheck lib/RT/Squish.pm

diff --git a/lib/RT/Squish.pm b/lib/RT/Squish.pm
index d54dfac..130b6e6 100644
--- a/lib/RT/Squish.pm
+++ b/lib/RT/Squish.pm
@@ -90,8 +90,9 @@ sub new {
 
 =head2 Squish
 
-virtual method which does nothing,
-you need to implement this method in subclasses.
+Virtual method which does nothing,
+
+You must implement this method in subclasses.
 
 =cut
 
@@ -102,19 +103,19 @@ sub Squish {
 
 =head2 Content
 
-squished content
+The squished content
 
 =head2 Key
 
-md5 of the squished content
+MD5 digest of the squished content
 
 =head2 ModifiedTime
 
-created time of squished content, i.e. seconds since 00:00:00 UTC, January 1, 1970
+Creation time of the squished content, expressed as seconds since epoch
 
 =head2 ModifiedTimeString
 
-created time of squished content, with HTTP::Date format
+Creation time of the squished content, expressed as L<HTTP::Date> format
 
 =cut
 

commit e0d78910c7015b8661a48c87ab12ff8600b14e6b
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 20:02:33 2011 -0400

    Spellcheck and touch up lib/RT/StyleGuide.pm
    
        This one is going to want revisiting. Selected quotes:
    
        * All indents should be tabs.  Set your tab stops whatever you want
          them to be; I use 8 spaces per tabs.
    
        * All object classes must provide a DESTROY method.
    
        * Multiple words should be StudlyCapped.
    
        * Generally, we prefer "uncuddled elses"

diff --git a/lib/RT/StyleGuide.pod b/lib/RT/StyleGuide.pod
index 8aa0c8e..6691eca 100644
--- a/lib/RT/StyleGuide.pod
+++ b/lib/RT/StyleGuide.pod
@@ -16,7 +16,7 @@ degree to any Perl code written for use in RT.
 
 Note that these are all guidelines, not unbreakable rules.  If you have
 a really good need to break one of the rules herein, however, then it is
-best to ask on the B<rt-devel> mailing list first.
+best to ask on the C<rt-devel> mailing list first.
 
 Note that with much of this document, it is not so much the Right Way as
 it is Our Way.  We need to have conventions in order to make life easier
@@ -24,13 +24,13 @@ for everyone.  So don't gripe, and just follow it, because you didn't
 get a good grade in "Plays Well With Others" in kindergarten and you
 want to make up for it now.
 
-If you have any questions, please ask us on the B<rt-devel> mailing list:
+If you have any questions, please ask us on the C<rt-devel> mailing list:
 
 	http://www.bestpractical.com/rt/lists.html
 
-We don't always follow this guide.  We are making changes throughout
-our code to be in line with it.  But just because we didn't do
-it yet, that is no excuse.  Do it anyway.  :-)
+We don't always follow this guide.  We are making changes throughout our ten
+year old codebase to better line up with it.  But just because we didn't do it
+yet, that is no excuse.  Do it anyway.  :-)
 
 This document is subject to change at the whims of the core RT team.
 We hope to add any significant changes at the bottom of the document.
@@ -40,7 +40,7 @@ We hope to add any significant changes at the bottom of the document.
 
 =head2 Perl Version
 
-We code everything to perl 5.8.3 or higher.  Complete unicode support
+We code everything to Perl 5.8.3 or higher.  Complete unicode support
 requires bugfixes found in 5.8.3.
 
 =head2 Documentation
@@ -128,10 +128,10 @@ commenting.  Good stuff, Maynard.
 
 =head2 Warnings and Strict
 
-All code must compile and run cleanly with "use strict" enabled and the
-perl "-w" (warnings) option on.  If you must do something that -w or
-strict complains about, there are workarounds, but the chances that you
-really need to do it that way are remote.
+All code must compile and run cleanly with "use strict" and "use
+warnings" enabled. If you must do something that warnings or strict
+complains about, there are workarounds, but the chances that you really
+need to do it that way are remote.
 
 =head2 Lexical Variables
 
@@ -156,8 +156,9 @@ is seldom a need to do it, and you shouldn't.
 
 Do not export anything from a module by default.  Feel free to put
 anything you want to in @EXPORT_OK, so users of your modules can
-explicitly ask for symbols (e.g., "use Something::Something qw(getFoo
-setFoo)"), but do not export them by default.
+explicitly ask for symbols (e.g.,
+C<use Something::Something qw(getFoo setFoo)>), but do not export them by
+default.
 
 
 =head2 Pass by Reference
@@ -182,7 +183,7 @@ Although, usually, this is better (faster, easier to read, etc.):
 		return($user, $form);
 	}
 
-We need to talk about Class::ReturnValue here.
+TODO: We need to talk about Class::ReturnValue here.
 
 
 =head2 Garbage Collection
@@ -257,13 +258,13 @@ You may specify defaults to those named parameters instead of using
 C<undef> above, as long as it is documented as such.
 
 It is worth noting that the existing RT codebase had not followed this
-style perfectly; we are trying to fix it without breaking exsiting APIs.
+style perfectly; we are trying to fix it without breaking existing APIs.
 
 =head2 Tests
 
 Modules should provide test code, with documentation on how to use
-it.  Test::More makes it easy to create tests. Any code you write
-should have a testsuite.  Any code you alter should have a test
+it.  L<Test::More> makes it easy to create tests. Any code you write
+should have a test suite.  Any code you alter should have a test
 suite. If a patch comes in without tests, there is something wrong.
 
 When altering code, you must run the test harness before submitting a
@@ -281,22 +282,22 @@ There are several different levels ($RT::Logger methods) of logging:
 
 =over 4
 
-=item debug
+=item C<debug>
 
 Used for messages only needed during system debugging.
 
-=item info
+=item C<info>
 
 Should be used to describe "system-critical" events which aren't errors.
 Examples: creating users, deleting users, creating tickets, creating queues,
-sending email (message id, time, recipients), recieving mail, changing
+sending email (message id, time, recipients), receiving mail, changing
 passwords, changing access control, superuser logins)
 
-=item error
+=item C<error>
 
 Used for RT-generated failures during execution.
 
-=item crit
+=item C<crit>
 
 Should be used for messages when an action can not be completed due to some
 error condition beyond our control.
@@ -324,7 +325,7 @@ just calling $RT::Logger->warning(), when the return value is not what you'd exp
 
 =head1 STYLE
 
-Much of the style section is taken from the perlsyle manpage.  We make
+Much of the style section is taken from the L<perlstyle> manpage.  We make
 some changes to it here, but it wouldn't be a bad idea to read that
 document, too.
 
@@ -337,7 +338,7 @@ document, too.
 "RT" is the name of the project.  "RT" is, optionally, the
 specific name for the actual file distribution.  That's it. 
 
-While we sometimes use "RT2" or "RT3", that's shortand that's really
+While we sometimes use "RT2" or "RT3", that's shorthand that's really
 not recommended. The name of the project is "RT".
 
 To specify a major version, use "RT 3.0".
@@ -349,10 +350,10 @@ Just because it is the Perl Way (not necessarily right for all
 languages, but the documented terminology in the perl documentation),
 "method" should be used only to refer to a subroutine that are object
 methods or class methods; that is, these are functions that are used
-with OOP that always take either an object or a class as the first
-argument. Regular subroutines, ones that are not object or class
-methods, are functions.  Class methods that create and return an object
-are optionally called constructors.
+with object-oriented programming that always take either an object or a class
+as the first argument. Regular subroutines, ones that are not object or class
+methods, are functions.  Class methods that create and return an object are
+optionally called constructors.
 
 =item Users
 
@@ -416,7 +417,7 @@ Accessors which return an object should end with the suffix Obj.
 This section needs clarification for RT.
 
 Words begin with a capital letter.  They
-should as clearly as possible describe the activity to be peformed, and
+should as clearly as possible describe the activity to be performed, and
 the data to be returned. 
 
 
@@ -469,7 +470,7 @@ of the plugin.
 Use perltidy. Anything we say here is wrong if it conflicts with what
 perltidy does. Your perltidyrc should read:
 
--lp -vt=2 -vtc=2 -nsfs -bar                                                                                             
+    -lp -vt=2 -vtc=2 -nsfs -bar
 
 =head2 Indents and Blank Space
 
@@ -597,7 +598,7 @@ parentheses.  Remember the words of Larry Wall in the perlstyle manpage:
 	of the person who has to maintain the code after you, and
 	who will probably put parens in the wrong place.
 
-So leave them out when it is absoutely clear to a programmer, but if
+So leave them out when it is absolutely clear to a programmer, but if
 there is any question, leave them in.
 
 
@@ -605,7 +606,7 @@ there is any question, leave them in.
 
 (This is about control braces, not hash/data structure braces.)
 
-There is always a space befor the opening brace.
+There is always a space before the opening brace.
 
 	while (<$fh>){	# wrong
 	while (<$fh>) {	# right
@@ -624,7 +625,7 @@ keyword at the end.
 		smell();
 	}
 
-Generally, we prefer "uncuddled elses":
+Generally, we prefer the "uncuddled else" style:
 
 	if ($foo) {
 		print;
@@ -645,7 +646,7 @@ _If_ the if statement is very brief, sometimes "cuddling" the else makes code mo
 =head2 Operators
 
 Put space around most operators.  The primary exception is the for
-aesthetics; e.g., sometimes the space around "**" is ommitted,
+aesthetics; e.g., sometimes the space around "**" is omitted,
 and there is never a space before a ",", but always after.
 
 	print $x , $y;	# wrong
@@ -734,91 +735,124 @@ as needed.
 
 =head1 INTERNATIONALIZATION
 
+=head2 Background
 
-=head2 String extraction styleguide
+L<Locale::Maketext::TPJ13> is an excellent article which explains the system RT
+uses for internationalization and ought to be read by everyone who writes
+software.
+
+=head2 String extraction style guide
 
 =over 4
 
 =item Web templates
 
-Templates should use the /l filtering component to call the localisation
-framework
+Templates should use the C</l> filtering component to call the localisation
+framework.
+
+The string
+
+    Foo!
 
-The string 		Foo!
+Should become
 
-Should become		<&|/l&>Foo!</&>
+    <&|/l&>Foo!</&>
 
-All newlines should be removed from localized strings, to make it easy to 
+All newlines should be removed from localized strings, to make it easy to
 grep the codebase for strings to be localized
 
-The string 		Foo
-			Bar
-			Baz
-			
-Should become		<&|/l&>Foo Bar Baz</&>
+The string
+
+    Foo
+    Bar
+    Baz
+
+Should become
+
+    <&|/l&>Foo Bar Baz</&>
 
+Variable interpolations must use the L<Locale::MakeText> format.
 
-Variable subsititutions should be moved to Locale::MakeText format
+The string
 
-The string		Hello, <%$name %>
+    Hello, <%$name %>
 
-should become		<&|/l, $name &>Hello, [_1]</&>	
+should become
 
+    <&|/l, $name &>Hello, [_1]</&>
 
-Multiple variables work just like single variables
- 
-The string		You found <%$num%> tickets in queue <%$queue%>
+Multiple variables work just like single variables.
 
-should become		<&|/l, $num, $queue &>You found [_1] tickets in queue [_2]</&>
+The string
+
+    You found <%$num%> tickets in queue <%$queue%>
+
+should become
+
+    <&|/l, $num, $queue &>You found [_1] tickets in queue [_2]</&>
 
 When subcomponents are called in the middle of a phrase, they need to be escaped
 too:
 
-The string		 <input type="submit" value="New ticket in">&nbsp<& /Elements/SelectNewTicketQueue&>
+The string
 
-should become		<&|/l, $m->scomp('/Elements/SelectNewTicketQueue')&><input type="submit" value="New ticket in">&nbsp;[_1]</&>
+    <input type="submit" value="New ticket in">&nbsp<& /Elements/SelectNewTicketQueue&>
 
+should become
 
+    <&|/l, $m->scomp('/Elements/SelectNewTicketQueue')&><input type="submit" value="New ticket in">&nbsp;[_1]</&>
 
+The string
 
-The string	<& /Elements/TitleBoxStart, width=> "40%", titleright => "RT $RT::VERSION for   RT->Config->Get('rtname')", title => 'Login' &>
+    <& /Elements/TitleBoxStart,
+        width      => "40%",
+        titleright => "RT $RT::VERSION for RT->Config->Get('rtname')",
+        title      => 'Login',
+    &>
 
-should become 	<& /Elements/TitleBoxStart, 
-			width=> "40%",
-			titleright => loc("RT [_1] for [_2]",$RT::VERSION, RT->Config->Get('rtname')),
-			title => loc('Login'),
-	      	&>
-	
+should become
+
+    <& /Elements/TitleBoxStart, 
+        width      => "40%",
+        titleright => loc("RT [_1] for [_2]", $RT::VERSION, RT->Config->Get('rtname')),
+        title      => loc('Login'),
+    &>
 
 =item Library code			
 
+Within RT's core code, every module has a localization handle available through the C<loc> method:
 
+The code
 
-Within RT's core code, every module has a localization handle available through the 'loc' method:
+    return ( $id, "Queue created" );
 
-The code 	return ( $id, "Queue created" );
+should become
 
-should become 	return ( $id, $self->loc("Queue created") );	
+    return ( $id, $self->loc("Queue created") );	
 
 When returning or localizing a single string, the "extra" set of parenthesis () should be omitted.
 
-The code  	return ("Subject changed to ". $self->Data );
+The code
+
+    return ("Subject changed to ". $self->Data );
+
+should become
 
-should become	 return $self->loc( "Subject changed to [_1]", $self->Data );
+    return $self->loc( "Subject changed to [_1]", $self->Data );
 
 
-It is important not to localize  the names of rights or statuses within RT's core, as there is logic that depends on them as string identifiers.  The proper place to localize these values is when they're presented for display in the web or commandline interfaces.
+It is important not to localize  the names of rights or statuses within RT's core, as there is logic that depends on them as string identifiers.  The proper place to localize these values is when they're presented for display in the web or command-line interfaces.
 
 
 =back
 
-=head1 CODING PRCEDURE
+=head1 CODING PROCEDURE
 
 This is for new programs, modules, specific APIs, or anything else.
 
 =over 4
 
-=item Present idea to rt-devel
+=item Present idea to C<rt-devel>
 
 We may know of a better way to approach the problem, or know of an
 existing way to deal with it, or know someone else is working on it. 
@@ -826,11 +860,11 @@ This is mostly informal, but a fairly complete explanation for the need
 and use of the code should be provided.
 
 
-=item Present complete specs to rt-devel
+=item Present complete specs to C<rt-devel>
 
 The complete proposed API  should be submitted for
 approval and discussion.  For web and command-line programs, present the
-functionality and interface (op codes, command-lin switches, etc.).
+functionality and interface (op codes, command-line switches, etc.).
 
 The best way to do this is to take the documentation portion of the
 boilerplate and fill it in.  You can make changes later if necessary,
@@ -862,12 +896,12 @@ if you do not have repository access, submit it to rt-<major-version>-bugs at fsck.
 
 =head1 BUG REPORTS, PATCHES
 
-Use rt-<major-version>-bugs at fsck.com for I<any> bug that is not
+Use C<rt-bugs at bestpractical.com> for I<any> bug that is not
 being fixed immediately.  If it is not in RT, there
 is a good chance it will not be dealt with.
 
-Send patches to rt-<major-version>-bugs at fsck.com, too.  Use C<diff
--u> for patches.
+Send patches to C<rt-bugs at bestpractical.com>, too.  Use C<diff -u>
+(or better yet, C<git format-patch>) for patches.
 
 =head1 SCHEMA DESIGN
 
@@ -895,7 +929,7 @@ but new tables are expected to be consistent.
 
 =head1 EXTENDING RT CLASSES
 
-=head2 The Overlay mechansim
+=head2 The Overlay mechanism
 
 RT's classes allow "overlay" methods to be placed into files named Filename_Vendor.pm and Filename_Local.pm
 _Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customizations.
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index e814c1d..cbbf7ca 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -29,6 +29,7 @@ one's
 multi
 depluralization
 auditability
+pre-existing
 
 # PROGRAMMING JARGON
 API
@@ -97,6 +98,10 @@ denormalizes
 canonicalizes
 reinitializes
 codepath
+codebase
+add-ons
+subcomponents
+unary
 
 # RT JARGON
 ACEs
@@ -129,3 +134,4 @@ formatter
 formatters
 lookup
 wipeout
+RTx

commit 971ae5057052b76d36abe923e7c6a69b7658d151
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 20:18:57 2011 -0400

    Spellcheck lib/RT/System.pm

diff --git a/lib/RT/System.pm b/lib/RT/System.pm
index 62289f0..1154864 100644
--- a/lib/RT/System.pm
+++ b/lib/RT/System.pm
@@ -240,7 +240,7 @@ sub SubjectTag {
 
 Attribute to decide when SelectQueue needs to flush the list of queues
 and retrieve new ones.  Set when queues are created, enabled/disabled
-and on certain acl changes.  Should also better understand group management.
+and on certain ACL changes.  Should also better understand group management.
 
 If passed a true value, will update the attribute to be the current time.
 

commit 5f6e67d7340a14c25907d87d1c5835014b55b27e
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 20:20:40 2011 -0400

    Spellcheck lib/RT/Template.pm

diff --git a/lib/RT/Template.pm b/lib/RT/Template.pm
index 6f0251d..72b8991 100644
--- a/lib/RT/Template.pm
+++ b/lib/RT/Template.pm
@@ -161,7 +161,7 @@ sub LoadGlobalTemplate {
 Loads the Queue template named NAME for Queue QUEUE.
 
 Note that this method doesn't load a global template with the same name
-if template in the queue doesn't exist. THe following code can be used:
+if template in the queue doesn't exist. The following code can be used:
 
     $template->LoadQueueTemplate( Queue => $queue_id, Name => $template_name );
     unless ( $template->id ) {
@@ -489,7 +489,7 @@ sub _ParseContentSimple {
             $fi_text =~ s/^\s+//;
             $fi_text =~ s/\s+$//;
 
-            # if the codeblock is a simple $Variable lookup, use the value from
+            # if the code block is a simple $Variable lookup, use the value from
             # the TemplateArgs hash...
             if (my ($var) = $fi_text =~ /^\$(\w+)$/) {
                 if (exists $args{TemplateArgs}{$var}) {
@@ -497,7 +497,7 @@ sub _ParseContentSimple {
                 }
             }
 
-            # if there was no substitution then just reinsert the codeblock
+            # if there was no substitution then just reinsert the code block
             if (!defined $fi_res) {
                 $fi_res = "{$original_fi_text}";
             }
@@ -652,11 +652,11 @@ sub _UpdateAttributes {
 
 =head2 CompileCheck
 
-If the template's Type is Perl, then compile check all the codeblocks to see if
-they are syntactically valid. We eval them in a codeblock to avoid actually
+If the template's Type is Perl, then compile check all the code blocks to see if
+they are syntactically valid. We eval them in a code block to avoid actually
 executing the code.
 
-Returns an (ok, message) pair.
+Returns an (OK, message) pair.
 
 =cut
 
@@ -693,7 +693,7 @@ sub CompileCheck {
         # all the other extraneous garbage
         $error =~ s/\(eval \d+\) line (\d+).*/"template line " . ($1+$fi_lineno-1)/es;
 
-        return (0, $self->loc("Couldn't compile template codeblock '[_1]': [_2]", $fi_text, $error));
+        return (0, $self->loc("Couldn't compile template code block '[_1]': [_2]", $fi_text, $error));
     }
 
     return (1, $self->loc("Template compiles"));
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index cbbf7ca..b60f093 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -102,6 +102,7 @@ codebase
 add-ons
 subcomponents
 unary
+UTF-8
 
 # RT JARGON
 ACEs

commit 56061d9ab83bf665ab8b7d45544272b427813438
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 20:28:52 2011 -0400

    Spellcheck lib/RT/Ticket.pm

diff --git a/lib/RT/Ticket.pm b/lib/RT/Ticket.pm
index 0b0b306..efea44a 100644
--- a/lib/RT/Ticket.pm
+++ b/lib/RT/Ticket.pm
@@ -140,7 +140,7 @@ our %MERGE_CACHE = (
 =head2 Load
 
 Takes a single argument. This can be a ticket id, ticket alias or 
-local ticket uri.  If the ticket can't be loaded, returns undef.
+local ticket URI.  If the ticket can't be loaded, returns undef.
 Otherwise, returns the ticket id.
 
 =cut
@@ -211,7 +211,7 @@ Arguments: ARGS is a hash of named parameters.  Valid parameters are:
   MIMEObj -- a MIME::Entity object with the content of the initial ticket request.
   CustomField-<n> -- a scalar or array of values for the customfield with the id <n>
 
-Ticket links can be set up during create by passing the link type as a hask key and
+Ticket links can be set up during create by passing the link type as a hash key and
 the ticket id to be linked to as a value (or a URI when linking to other objects).
 Multiple links of the same type can be created by passing an array ref. For example:
 
@@ -1029,9 +1029,9 @@ Type        One of Requestor, Cc, AdminCc
 PrincipalId The RT::Principal id of the user or group that's being added as a watcher
 
 Email       The email address of the new watcher. If a user with this 
-            email address can't be found, a new nonprivileged user will be created.
+            email address can't be found, a new unprivileged user will be created.
 
-If the watcher you\'re trying to set has an RT account, set the PrincipalId paremeter to their User Id. Otherwise, set the Email parameter to their Email address.
+If the watcher you're trying to set has an RT account, this sets the PrincipalId parameter to their User Id. Otherwise, sets the Email parameter to their Email address.
 
 =cut
 
@@ -1088,7 +1088,7 @@ sub AddWatcher {
 }
 
 #This contains the meat of AddWatcher. but can be called from a routine like
-# Create, which doesn't need the additional acl check
+# Create, which doesn't need the additional ACL check.
 sub _AddWatcher {
     my $self = shift;
     my %args = (
@@ -1171,7 +1171,7 @@ and one of
 
 PrincipalId (an RT::Principal Id of the watcher you want to remove)
     OR
-Email (the email address of an existing wathcer)
+Email (the email address of an existing watcher)
 
 
 =cut
@@ -1467,7 +1467,7 @@ sub AdminCc {
 
 =head2 IsWatcher { Type => TYPE, PrincipalId => PRINCIPAL_ID, Email => EMAIL }
 
-Takes a param hash with the attributes Type and either PrincipalId or Email
+Takes a paramhash with the attributes Type and either PrincipalId or Email
 
 Type is one of Requestor, Cc, AdminCc and Owner
 
@@ -1577,7 +1577,7 @@ sub IsOwner {
     my $self   = shift;
     my $person = shift;
 
-    # no ACL check since this is used in acl decisions
+    # no ACL check since this is used in ACL decisions
     # unless ($self->CurrentUserHasRight('ShowTicket')) {
     #    return(undef);
     #   }    
@@ -1605,7 +1605,7 @@ Returns a composite hashref of the results of L<RT::Transaction/Addresses> for
 all this ticket's Create, Comment or Correspond transactions. The keys are
 stringified email addresses. Each value is an L<Email::Address> object.
 
-NOTE: For performance reasons, this method might want to skip transactions and go straight for attachments. But to make that work right, we're going to need to go and walk around the access control in Attachment.pm's sub _Value.
+NOTE: For performance reasons, this method might want to skip transactions and go straight for attachments. But to make that work right, we're going to need to go and walk around the access control in L<RT::Attachment/_Value>.
 
 =cut
 
@@ -1809,7 +1809,7 @@ sub QueueObj {
 =head2 SubjectTag
 
 Takes nothing. Returns SubjectTag for this ticket. Includes
-queue's subject tag or rtname if that is not set, ticket
+queue's subject tag or the configured C<rtname> if that is not set, ticket
 id and brackets, for example:
 
     [support.example.com #123456]
@@ -2271,7 +2271,7 @@ sub DryRun {
 
 =head2 DryRunCreate
 
-Prepares a MIME mesage with the given C<Subject>, C<Cc>, and
+Prepares a MIME message with the given C<Subject>, C<Cc>, and
 C<Content>, then calls L</Create> with C<< DryRun => 1 >> and returns
 the resulting L<RT::Transaction>.
 
@@ -2524,7 +2524,7 @@ sub __GetTicketFromURI {
 
 =head2 _AddLink  
 
-Private non-acled variant of AddLink so that links can be added during create.
+Private non-ACL-checked variant of AddLink so that links can be added during create.
 
 =cut
 
@@ -2901,7 +2901,7 @@ sub SetOwner {
                       Value             => $NewOwnerObj->Id,
                       TimeTaken         => 0,
                       TransactionType   => 'Set',
-                      CheckACL          => 0,                  # don't check acl
+                      CheckACL          => 0,                  # don't check ACL
     );
 
     unless ($val) {
@@ -2997,7 +2997,7 @@ sub _IsProposedOwnerChangeValid {
 
 =head2 Take
 
-A convenince method to set the ticket's owner to the current user
+A convenience method to set the ticket's owner to the current user
 
 =cut
 
@@ -3203,7 +3203,7 @@ sub SetTold {
 
 =head2 _SetTold
 
-Updates the told without a transaction or acl check. Useful when we're sending replies.
+Updates the told without a transaction or ACL check. Useful when we're sending replies.
 
 =cut
 
@@ -3260,8 +3260,9 @@ sub TransactionBatch {
 
 =head2 ApplyTransactionBatch
 
-Applies scrips on the current batch of transactions and shinks it. Usually
-batch is applied when object is destroyed, but in some cases it's too late.
+Executes scrips on the current batch of transactions, and clears the batched
+scrips. Usually the batch is applied when the object is L</DESTROY>ed, but in some
+cases that is too late.
 
 =cut
 
@@ -3456,8 +3457,8 @@ sub _Value {
 
 =head2 _UpdateTimeTaken
 
-This routine will increment the timeworked counter. it should
-only be called from _NewTransaction 
+This routine will increment the TimeWorked counter. It should
+only be called from L</_NewTransaction>.
 
 =cut
 
@@ -3536,8 +3537,9 @@ sub HasRight {
 
 =head2 Reminders
 
-Return the Reminders object for this ticket. (It's an RT::Reminders object.)
-It isn't acutally a searchbuilder collection itself.
+Return the L<RT::Reminders> object for this ticket.
+
+It isn't actually a L<DBIx::SearchBuilder> collection.
 
 =cut
 

commit c610bbe936c7126b3edd978dd5037642f46ea44d
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 20:31:58 2011 -0400

    Spellcheck lib/RT/Tickets.pm

diff --git a/lib/RT/Tickets.pm b/lib/RT/Tickets.pm
index 3b01bdd..020baac 100644
--- a/lib/RT/Tickets.pm
+++ b/lib/RT/Tickets.pm
@@ -611,7 +611,7 @@ sub _StringLimit {
 
 Handle fields limiting based on Transaction Date.
 
-The inpupt value must be in a format parseable by Time::ParseDate
+We use L<Time::ParseDate> to parse the input value into a format we can use.
 
 Meta Data:
   None
@@ -1116,34 +1116,35 @@ specific group or not.
 Meta Data:
   1: Field to query on
 
-SELECT DISTINCT main.*
-FROM
-    Tickets main,
-    Groups Groups_1,
-    CachedGroupMembers CachedGroupMembers_2,
-    Users Users_3
-WHERE (
-    (main.EffectiveId = main.id)
-) AND (
-    (main.Status != 'deleted')
-) AND (
-    (main.Type = 'ticket')
-) AND (
-    (
-	(Users_3.EmailAddress = '22')
-	    AND
-	(Groups_1.Domain = 'RT::Ticket-Role')
-	    AND
-	(Groups_1.Type = 'RequestorGroup')
-    )
-) AND
-    Groups_1.Instance = main.id
-AND
-    Groups_1.id = CachedGroupMembers_2.GroupId
-AND
-    CachedGroupMembers_2.MemberId = Users_3.id
-ORDER BY main.id ASC
-LIMIT 25
+
+    SELECT DISTINCT main.*
+    FROM
+        Tickets main,
+        Groups Groups_1,
+        CachedGroupMembers CachedGroupMembers_2,
+        Users Users_3
+    WHERE (
+        (main.EffectiveId = main.id)
+    ) AND (
+        (main.Status != 'deleted')
+    ) AND (
+        (main.Type = 'ticket')
+    ) AND (
+        (
+    	(Users_3.EmailAddress = '22')
+    	    AND
+    	(Groups_1.Domain = 'RT::Ticket-Role')
+    	    AND
+    	(Groups_1.Type = 'RequestorGroup')
+        )
+    ) AND
+        Groups_1.Instance = main.id
+    AND
+        Groups_1.id = CachedGroupMembers_2.GroupId
+    AND
+        CachedGroupMembers_2.MemberId = Users_3.id
+    ORDER BY main.id ASC
+    LIMIT 25
 
 =cut
 
@@ -1240,7 +1241,7 @@ sub _WatcherMembershipLimit {
 
 =head2 _CustomFieldDecipher
 
-Try and turn a CF descriptor into (cfid, cfname) object pair.
+Try to turn a CF descriptor into an (id, name) object pair.
 
 =cut
 
@@ -2706,11 +2707,11 @@ Takes a paramhash of key/value pairs with the following keys:
 
 =over 4
 
-=item CUSTOMFIELD - CustomField name or id.  If a name is passed, an additional parameter QUEUE may also be passed to distinguish the custom field.
+=item C<CUSTOMFIELD> - CustomField name or id.  If a name is passed, an additional parameter QUEUE may also be passed to distinguish the custom field.
 
-=item OPERATOR - The usual Limit operators
+=item C<OPERATOR> - The usual Limit operators
 
-=item VALUE - The value to compare against
+=item C<VALUE> - The value to compare against
 
 =back
 
@@ -3384,7 +3385,7 @@ sub _ProcessRestrictions {
 =head2 _BuildItemMap
 
 Build up a L</ItemMap> of first/last/next/prev items, so that we can
-display search nav quickly.
+display search navigation quickly.
 
 =cut
 

commit a9948b5f334dd1dbedc31b650f9532602e6b8878
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 20:51:38 2011 -0400

    Spellcheck lib/RT/Transaction.pm

diff --git a/lib/RT/Transaction.pm b/lib/RT/Transaction.pm
index 2baccc2..b512f8a 100644
--- a/lib/RT/Transaction.pm
+++ b/lib/RT/Transaction.pm
@@ -239,7 +239,7 @@ sub Rules {
 
 =head2 Delete
 
-Delete this transaction. Currently DOES NOT CHECK ACLS
+Delete this transaction. B<Currently does not check ACLs!>
 
 =cut
 
@@ -1048,9 +1048,9 @@ sub CurrentUserHasRight {
 
 Returns true if current user has rights to see this particular transaction.
 
-This fact depends on type of the transaction, type of an object the transaction
-is attached to and may be other conditions, so this method is prefered over
-custom implementations.
+This fact depends on the type of the transaction, the type of the object that
+the transaction is attached to and maybe other conditions, so this method is
+preferred over custom implementations.
 
 =cut
 
@@ -1291,7 +1291,7 @@ Takes the following arguments:
 
 =over
 
-=item * a string to indicate the frequency of digest delivery.  Valid values are "daily", "weekly", or "susp".
+=item * a string to indicate the frequency of digest delivery.  Valid values are "C<daily>", "C<weekly>", or "C<susp>".
 
 =item * an optional argument which, if true, will return addresses even if this notification has been marked as 'sent' for this transaction.
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index b60f093..189c5ec 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -103,6 +103,7 @@ add-ons
 subcomponents
 unary
 UTF-8
+reparenting
 
 # RT JARGON
 ACEs

commit 4fc12d12dd3ca8280f5d6991cdfc5f7a8e646cc7
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 20:54:29 2011 -0400

    Spellcheck lib/RT/URI.pm

diff --git a/lib/RT/URI.pm b/lib/RT/URI.pm
index 790a830..f03dcba 100644
--- a/lib/RT/URI.pm
+++ b/lib/RT/URI.pm
@@ -116,7 +116,7 @@ sub FromObject {
 Returns a local object id for this content. You are expected to know
 what sort of object this is the Id of
 
-Returns true if everything is ok, otherwise false
+Returns true if everything is okay, otherwise false.
 
 =cut
 
@@ -216,7 +216,7 @@ sub URI {
 
 =head2 Object
 
-Returns a local object for this content. This will usually be an RT::Ticket or somesuch
+Returns a local object for this content. This will usually be an L<RT::Ticket>.
 
 =cut
 
@@ -232,7 +232,7 @@ sub Object {
 
 =head2 IsLocal
 
-Returns a local object for this content. This will usually be an RT::Ticket or somesuch
+Returns whether the object is governed by this instance of RT.
 
 =cut
 
@@ -256,7 +256,7 @@ sub AsHREF {
 
 =head2 Resolver
 
-Returns this URI's URI resolver object
+Returns this object's URI resolver object.
 
 =cut
 

commit 6dce095ef811523123cba9e993ca0d14921d9293
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:01:40 2011 -0400

    Spellcheck lib/RT/User.pm

diff --git a/lib/RT/User.pm b/lib/RT/User.pm
index 1570afd..68e523a 100644
--- a/lib/RT/User.pm
+++ b/lib/RT/User.pm
@@ -289,10 +289,10 @@ sub ValidatePassword {
 
 =head2 SetPrivileged BOOL
 
-If passed a true value, makes this user a member of the "Privileged"  PseudoGroup.
-Otherwise, makes this user a member of the "Unprivileged" pseudogroup.
+If passed a true value, makes this user a member of the "Privileged" group.
+Otherwise, makes this user a member of the "Unprivileged" group.
 
-Returns a standard RT tuple of (val, msg);
+Returns a standard RT tuple of (value, message);
 
 
 =cut
@@ -599,17 +599,27 @@ user preferences.
 
 =over 4
 
-=item 'no email' - user has no email, so can not recieve notifications.
+=item 'no email'
 
-=item 'squelched' - returned only when Ticket argument is provided and
-notifications to the user has been supressed for this ticket.
+user has no email, so can not receive notifications.
 
-=item 'daily' - retruned when user recieve daily messages digest instead
-of immediate delivery.
+=item 'squelched'
 
-=item 'weekly' - previous, but weekly.
+returned only when Ticket argument is provided and notifications to the user
+has been suppressed for this ticket.
 
-=item empty string returned otherwise.
+=item 'daily'
+
+returned when user receives daily messages digest instead of immediate
+delivery.
+
+=item 'weekly'
+
+same as the previous, but weekly.
+
+=item otherwise
+
+the empty string is returned otherwise.
 
 =back
 
@@ -658,12 +668,13 @@ sub CanonicalizeEmailAddress {
 
 =head2 CanonicalizeUserInfo HASH of ARGS
 
-CanonicalizeUserInfo can convert all User->Create options.
-it takes a hashref of all the params sent to User->Create and
-returns that same hash, by default nothing is done.
+CanonicalizeUserInfo can convert all L</Create> options.
+It takes a hashref of all the parameters sent to L</Create> and
+returns success or failure.
 
-This function is intended to allow users to have their info looked up via
-an outside source and modified upon creation.
+By default the hashref of arguments is not modified at all. This function is
+intended to allow users to have their info looked up via an outside source and
+modified upon creation.
 
 =cut
 
@@ -714,7 +725,7 @@ sub SetRandomPassword {
 =head3 ResetPassword
 
 Returns status, [ERROR or new password].  Resets this user's password to
-a randomly generated pronouncable password and emails them, using a
+a randomly generated pronounceable password and emails them, using a
 global template called "RT_PasswordChange", which can be overridden
 with global templates "RT_PasswordChange_Privileged" or "RT_PasswordChange_NonPrivileged"
 for privileged and Non-privileged users respectively.
@@ -971,10 +982,9 @@ sub CurrentUserRequireToSetPassword {
 
 =head3 AuthToken
 
-Returns an authentication string associated with the user. This
-string can be used to generate passwordless URLs to integrate
-RT with services and programms like callendar managers, rss
-readers and other.
+Returns an authentication string associated with the user. This string can be
+used to generate password-less URLs to integrate RT with services and programs
+like calendar applications, RSS readers, and so on.
 
 =cut
 
@@ -1026,8 +1036,9 @@ sub GenerateAuthString {
 
 =head3 ValidateAuthString
 
-Takes auth string and protected string. Returns true is protected string
-has been protected by user's L</AuthToken>. See also L</GenerateAuthString>.
+Takes an authentication string and protected string. Returns true is protected
+string has been protected by user's L</AuthToken>. See also
+L</GenerateAuthString>.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 189c5ec..5ba4239 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -104,6 +104,7 @@ subcomponents
 unary
 UTF-8
 reparenting
+RSS
 
 # RT JARGON
 ACEs

commit 39f430583ed1e8189826be15aba47e3ececb8ab9
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:06:16 2011 -0400

    Spellcheck lib/Rt/Action/*

diff --git a/lib/RT/Action/Autoreply.pm b/lib/RT/Action/Autoreply.pm
index 90bdea6..c87ea41 100644
--- a/lib/RT/Action/Autoreply.pm
+++ b/lib/RT/Action/Autoreply.pm
@@ -87,7 +87,7 @@ sub SetRecipients {
 
 =head2 SetReturnAddress
 
-Set this message\'s return address to the apropriate queue address
+Set this message's return address to the appropriate queue address
 
 =cut
 
diff --git a/lib/RT/Action/CreateTickets.pm b/lib/RT/Action/CreateTickets.pm
index 54f69d5..f9bcd0d 100644
--- a/lib/RT/Action/CreateTickets.pm
+++ b/lib/RT/Action/CreateTickets.pm
@@ -75,7 +75,7 @@ Create one or more tickets according to an externally supplied template.
 
 Using the "CreateTickets" ScripAction and mandatory dependencies, RT now has 
 the ability to model complex workflow. When a ticket is created in a queue
-that has a "CreateTickets" scripaction, that ScripAction parses its "Template"
+that has a "CreateTickets" scrip action, that ScripAction parses its "Template"
 
 
 
@@ -176,7 +176,7 @@ A convoluted example
  
 =head2 Acceptable fields
 
-A complete list of acceptable fields for this beastie:
+A complete list of acceptable fields for this action:
 
 
     *  Queue           => Name or id# of a queue
@@ -225,7 +225,7 @@ A complete list of acceptable fields for this beastie:
 Fields marked with an * are required.
 
 Fields marked with a + may have multiple values, simply
-by repeating the fieldname on a new line with an additional value.
+by repeating the field name on a new line with an additional value.
 
 Fields marked with a ! are postponed to be processed after all
 tickets in the same actions are created.  Except for 'Status', those
@@ -234,7 +234,7 @@ the identifiers after ==Create-Ticket), instead of raw Ticket ID
 numbers.
 
 When parsed, field names are converted to lowercase and have -s stripped.
-Refers-To, RefersTo, refersto, refers-to and r-e-f-er-s-tO will all 
+C<Refers-To>, C<RefersTo>, C<refersto>, C<refers-to> and C<r-e-f-er-s-tO> will all 
 be treated as the same thing.
 
 
@@ -560,7 +560,7 @@ sub Parse {
 
 =head2 _ParseMultilineTemplate
 
-Parses mulitline templates. Things like:
+Parses multiline templates. Things like:
 
  ===Create-Ticket ... 
 
diff --git a/lib/RT/Action/EscalatePriority.pm b/lib/RT/Action/EscalatePriority.pm
index 090695c..6c9af43 100644
--- a/lib/RT/Action/EscalatePriority.pm
+++ b/lib/RT/Action/EscalatePriority.pm
@@ -61,7 +61,7 @@ EsclatePriority uses the following formula to change a ticket's priority:
 
     Priority = Priority +  (( FinalPriority - Priority ) / ( DueDate-Today))
 
-Unless the duedate is past, in which case priority gets bumped straight
+Unless the due date is past, in which case priority gets bumped straight
 to final priority.
 
 In this way, priority is either increased or decreased toward the final priority
diff --git a/lib/RT/Action/LinearEscalate.pm b/lib/RT/Action/LinearEscalate.pm
index 3e54320..b8be33a 100644
--- a/lib/RT/Action/LinearEscalate.pm
+++ b/lib/RT/Action/LinearEscalate.pm
@@ -58,10 +58,10 @@ This action honor the Starts date.
 
 This action can apply changes silently.
 
-This action can replace EscalatePriority completly. If you want to tickets
+This action can replace EscalatePriority completely. If you want to tickets
 that have been created without Due date then you can add scrip that sets
 default due date. For example a week then priorities of your tickets will
-escalate linearly during the week from intial value towards final.
+escalate linearly during the week from initial value towards final.
 
 =head1 This vs. LinearEscalate from the CPAN
 
@@ -91,9 +91,9 @@ will get tickets to where they need to be:
     "(Status='new' OR Status='open' OR Status = 'stalled')" \
     --action RT::Action::LinearEscalate
 
-The Starts date is associated with intial ticket's priority or
+The Starts date is associated with the initial ticket's priority or
 the Created field if the former is not set. End of interval is
-the Due date. Tickets without due date B<are not updated>.
+the Due date. Tickets without a due date B<are not updated>.
 
 =head1 CONFIGURATION
 
diff --git a/lib/RT/Action/Notify.pm b/lib/RT/Action/Notify.pm
index 2dbad8e..14b3dc6 100644
--- a/lib/RT/Action/Notify.pm
+++ b/lib/RT/Action/Notify.pm
@@ -71,7 +71,7 @@ sub Prepare {
 
 =head2 SetRecipients
 
-Sets the recipients of this meesage to Owner, Requestor, AdminCc, Cc or All. 
+Sets the recipients of this message to Owner, Requestor, AdminCc, Cc or All. 
 Explicitly B<does not> notify the creator of the transaction by default
 
 =cut
diff --git a/lib/RT/Action/SendEmail.pm b/lib/RT/Action/SendEmail.pm
index cc63106..b0f2250 100644
--- a/lib/RT/Action/SendEmail.pm
+++ b/lib/RT/Action/SendEmail.pm
@@ -869,7 +869,7 @@ sub SetReturnAddress {
 
 }
 
-=head2 SetFrom ( From => emailaddress )
+=head2 SetFrom ( From => address )
 
 Set the From: address for outgoing email
 
@@ -1115,7 +1115,7 @@ sub SetHeaderAsEncoding {
 Takes a perl string and optional encoding pass it over
 L<RT::Interface::Email/EncodeToMIME>.
 
-Basicly encode a string using B encoding according to RFC2047.
+Basically, encodes the string using B encoding according to RFC2047.
 
 =cut
 
diff --git a/lib/RT/Action/SetStatus.pm b/lib/RT/Action/SetStatus.pm
index adc836a..17a5506 100644
--- a/lib/RT/Action/SetStatus.pm
+++ b/lib/RT/Action/SetStatus.pm
@@ -60,7 +60,7 @@ RT::Action::SetStatus - RT's scrip action to set status of a ticket
 
 This action changes status to a new value according to the rules in L</ARGUMENT>.
 Status is not changed if the transition is invalid or another error occurs. All
-issues are logged at apropriate levels.
+issues are logged at appropriate levels.
 
 =head1 ARGUMENT
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 5ba4239..14f480d 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -105,6 +105,7 @@ unary
 UTF-8
 reparenting
 RSS
+uninstall
 
 # RT JARGON
 ACEs
@@ -125,6 +126,7 @@ RT's
 Requestor
 requestor
 Requestors
+requestors
 crontool
 lifecycle
 lifecycles

commit a036abbac0b775db7b2cd33fb3055945a3ad57c4
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:07:15 2011 -0400

    Spellcheck lib/RT/Condition/*

diff --git a/lib/RT/Condition/CloseTicket.pm b/lib/RT/Condition/CloseTicket.pm
index ec3c24f..5cbc53c 100644
--- a/lib/RT/Condition/CloseTicket.pm
+++ b/lib/RT/Condition/CloseTicket.pm
@@ -56,9 +56,9 @@ use base 'RT::Condition';
 
 =head2 IsApplicable
 
-If the ticket was closed, ie status was changed from any active status to
-an inactive. See F<RT_Config.pm> for C<ActiveStatuses> and C<InactiveStatuses>
-options.
+If the ticket was closed, i.e. status was changed from any active status to an
+inactive status. See F<RT_Config.pm> for C<ActiveStatuses> and
+C<InactiveStatuses> options.
 
 =cut
 
diff --git a/lib/RT/Condition/ReopenTicket.pm b/lib/RT/Condition/ReopenTicket.pm
index cf1b91f..569df3b 100644
--- a/lib/RT/Condition/ReopenTicket.pm
+++ b/lib/RT/Condition/ReopenTicket.pm
@@ -56,9 +56,9 @@ use base 'RT::Condition';
 
 =head2 IsApplicable
 
-If the ticket was repopened, ie status was changed from any inactive status to
-an active. See F<RT_Config.pm> for C<ActiveStatuses> and C<InactiveStatuses>
-options.
+If the ticket was reopened, i.e. status was changed from any inactive status to
+an active status. See F<RT_Config.pm> for C<ActiveStatuses> and
+C<InactiveStatuses> options.
 
 =cut
 

commit b7bdbf5500cf2cc27aaf2decf5f5fdf7e4a14526
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:20:40 2011 -0400

    Spellcheck lib/RT/Crypt/GnuPG.pm

diff --git a/lib/RT/Crypt/GnuPG.pm b/lib/RT/Crypt/GnuPG.pm
index 44d4286..05115d2 100644
--- a/lib/RT/Crypt/GnuPG.pm
+++ b/lib/RT/Crypt/GnuPG.pm
@@ -71,11 +71,11 @@ You can control the configuration of this subsystem from RT's configuration file
 Some options are available via the web interface, but to enable this functionality, you
 MUST start in the configuration file.
 
-There are two hashes, GnuPG and GnuPGOptions in the configuration file. The 
+There are two hashes, GnuPG and GnuPGOptions in the configuration file. The
 first one controls RT specific options. It enables you to enable/disable facility 
-or change the format of messages. The second one is a hash with options for the 
-'gnupg' utility. You can use it to define a keyserver, enable auto-retrieval keys 
-and set almost any option 'gnupg' supports on your system.
+or change the format of messages. The second one is a hash with options for the
+C<gpg> utility. You can use it to define a keyserver, enable auto-retrieval keys
+and set almost any option C<gpg> supports on your system.
 
 =head2 %GnuPG
 
@@ -114,23 +114,23 @@ This framework implements two formats of signing and encrypting of email message
 
 =over
 
-=item RFC
+=item C<RFC>
 
 This format is also known as GPG/MIME and described in RFC3156 and RFC1847.
 Technique described in these RFCs is well supported by many mail user
 agents (MUA), but some MUAs support only inline signatures and encryption,
 so it's possible to use inline format (see below).
 
-=item Inline
+=item C<Inline>
 
 This format doesn't take advantage of MIME, but some mail clients do
 not support GPG/MIME.
 
 We sign text parts using clear signatures. For each attachments another
-attachment with a signature is added with '.sig' extension.
+attachment with a signature is added with F<.sig> extension.
 
 Encryption of text parts is implemented using inline format, other parts
-are replaced with attachments with the filename extension '.pgp'.
+are replaced with attachments with the filename extension F<.pgp>.
 
 This format is discouraged because modern mail clients typically don't support
 it well.
@@ -144,12 +144,12 @@ option C<AllowEncryptDataInDB>. By default it's disabled.
 Users must have rights to see and modify tickets to use
 this feature.
 
-=head2 %GnuPGOptions
+=head2 C<%GnuPGOptions>
 
-Use this hash to set options of the 'gnupg' program. You can define almost any
-option you want which  gnupg supports, but never try to set options which
-change output format or gnupg's commands, such as --sign (command),
---list-options (option) and other.
+Use this hash to set options of the C<gpg> program. You can define almost any
+option you want which  C<gpg> supports, but never set options which
+change the output format of C<gpg>'s commands, such as C<--sign> (command),
+C<--list-options> (option) and other.
 
 Some GnuPG options take arguments while others take none. (Such as  --use-agent).
 For options without specific value use C<undef> as hash value.
@@ -162,44 +162,45 @@ To disable these option just comment them out or delete them from the hash
     );
 
 B<NOTE> that options may contain '-' character and such options B<MUST> be
-quoted, otherwise you can see quite cryptic error 'gpg: Invalid option "--0"'.
+quoted, otherwise you can see a cryptic error like C<gpg: Invalid option "--0">.
 
 =over
 
-=item --homedir
+=item C<--homedir>
 
 The GnuPG home directory, by default it is set to F</opt/rt4/var/data/gpg>.
 
-You can manage this data with the 'gpg' commandline utility 
-using the GNUPGHOME environment variable or --homedir option. 
+You can manage this data with the C<gpg> command-line utility
+using the C<GNUPGHOME> environment variable or C<--homedir> option.
 Other utilities may be used as well.
 
 In a standard installation, access to this directory should be granted to
 the web server user which is running RT's web interface, but if you're running
 cronjobs or other utilities that access RT directly via API and may generate
 encrypted/signed notifications then the users you execute these scripts under
-must have access too. 
+must have access too.
 
-However, granting access to the dir to many users makes your setup less secure,
+However, granting access to the directory to many users makes your setup less secure,
 some features, such as auto-import of keys, may not be available if you do not.
 To enable this features and suppress warnings about permissions on
-the dir use --no-permission-warning.
+the directory use C<--no-permission-warning>.
 
-=item --digest-algo
+=item C<--digest-algo>
 
-This option is required in advance when RFC format for outgoing messages is
-used. We can not get default algorithm from gpg program so RT uses 'SHA1' by
-default. You may want to override it. You can use MD5, SHA1, RIPEMD160,
-SHA256 or other, however use `gpg --version` command to get information about
-supported algorithms by your gpg. These algorithms are listed as hash-functions.
+This option is required when the RFC format for outgoing messages is used. We
+cannot get the default algorithm from C<gpg> program, so RT uses C<SHA1> by
+default. You may want to override it. You can use C<MD5>, C<SHA1>,
+C<RIPEMD160>, C<SHA256> and others, however use the C<gpg --version> command to
+get information about algorithms supported by your C<gpg>. These algorithms are
+listed under "hash-functions".
 
-=item --use-agent
+=item C<--use-agent>
 
 This option lets you use GPG Agent to cache the passphrase of RT's key. See
 L<http://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html>
 for information about GPG Agent.
 
-=item --passphrase
+=item C<--passphrase>
 
 This option lets you set the passphrase of RT's key directly. This option is
 special in that it isn't passed directly to GPG, but is put into a file that
@@ -209,7 +210,7 @@ the --use-agent option instead.
 
 =item other
 
-Read `man gpg` to get list of all options this program support.
+Read C<man gpg> to get a list of all the options this program supports.
 
 =back
 
@@ -220,9 +221,9 @@ default. As an administrative user of RT, open 'Configuration' then 'Queues',
 and select a queue. On the page you can see information about the queue's keys 
 at the bottom and two checkboxes to choose default actions.
 
-As well, encryption is enabled for autoreplies and other notifications when
-an encypted message enters system via mailgate interface even if queue's
-option is disabled.
+Also, encryption is enabled for autoreplies and other notifications when an
+encrypted message enters the system via the mailgate interface even if the
+queue's option is disabled.
 
 =head2 Handling incoming messages
 
@@ -231,9 +232,9 @@ To enable handling of encrypted and signed message in the RT you should add
 
     Set(@MailPlugins, 'Auth::MailFrom', 'Auth::GnuPG', ...other filter...);
 
-See also `perldoc lib/RT/Interface/Email/Auth/GnuPG.pm`.
+See also L<RT::Interface::Email::Auth::GnuPG>.
 
-=head2 Errors handling
+=head2 Error handling
 
 There are several global templates created in the database by default. RT
 uses these templates to send error messages to users or RT's owner. These 
@@ -256,10 +257,33 @@ his public key and won't be able to send him encrypted content. There are severa
 reasons why RT can't use a key. However, the actual reason is not sent to the user, 
 but sent to RT owner using 'Error to RT owner: public key'.
 
-The possible reasons: "Not Found", "Ambiguous specification", "Wrong
-key usage", "Key revoked", "Key expired", "No CRL known", "CRL too
-old", "Policy mismatch", "Not a secret key", "Key not trusted" or
-"No specific reason given".
+The possible reasons:
+
+=over 4
+
+=item C<Not Found>
+
+=item C<Ambiguous specification>
+
+=item C<Wrong key usage>
+
+=item C<Key revoked>
+
+=item C<Key expired>
+
+=item C<No CRL known>
+
+=item C<CRL too old>
+
+=item C<Policy mismatch>
+
+=item C<Not a secret key>
+
+=item C<Key not trusted>
+
+=item C<No specific reason given>
+
+=back
 
 Due to limitations of GnuPG, it's impossible to encrypt to an untrusted key,
 unless 'always trust' mode is enabled.
@@ -314,12 +338,18 @@ of error messages.
 
 =head2 Documentation and references
 
-* RFC1847 - Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted.
+=over 4
+
+=item RFC1847 - Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted.
+
 Describes generic MIME security framework, "mulitpart/signed" and "multipart/encrypted"
 MIME types.
 
-* RFC3156 - MIME Security with Pretty Good Privacy (PGP),
-updates RFC2015.
+=item RFC3156 - MIME Security with Pretty Good Privacy (PGP)
+
+Updates RFC2015.
+
+=back
 
 =cut
 
@@ -371,7 +401,7 @@ Signs and/or encrypts an email message with GnuPG utility.
 =item Signing
 
 During signing you can pass C<Signer> argument to set key we sign with this option
-overrides gnupg's C<default-key> option. If C<Signer> argument is not provided
+overrides C<gpg>'s C<default-key> option. If C<Signer> argument is not provided
 then address of a message sender is used.
 
 As well you can pass C<Passphrase>, but if value is undefined then L</GetPassphrase>
@@ -1572,9 +1602,9 @@ sub GetPassphrase {
 
 =head2 ParseStatus
 
-Takes a string containing output of gnupg status stream. Parses it and returns
-array of hashes. Each element of array is a hash ref and represents line or
-group of lines in the status message.
+Takes a string containing the output of a GnuPG status stream. Parses it and
+returns an array of hashes. Each hash ref represents a line or a group of lines
+in the status message.
 
 All hashes have Operation, Status and Message elements.
 
@@ -1582,7 +1612,7 @@ All hashes have Operation, Status and Message elements.
 
 =item Operation
 
-Classification of operations gnupg performs. Now we have support
+Classification of operations GnuPG performs. Now we have support
 for Sign, Encrypt, Decrypt, Verify, PassphraseCheck, RecipientsCheck and Data
 values.
 
@@ -1941,7 +1971,7 @@ Returns or sets identifier of the key that should be used for signing.
 
 Returns the current value when called without arguments.
 
-Sets new value when called with one argument and unsets if it's undef.
+Sets new value when called with one argument and unsets if it's C<undef>.
 
 =cut
 
@@ -2363,11 +2393,11 @@ sub ImportKey {
     return %res;
 }
 
-=head2 KEY
+=head2 DrySign
 
 Signs a small message with the key, to make sure the key exists and 
-we have a useable passphrase. The first argument MUST be a key identifier
-of the signer: either email address, key id or finger print.
+we have a usable passphrase. The first argument MUST be the key identifier
+of the signer: email address, key id, or finger print.
 
 Returns a true value if all went well.
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 14f480d..ef88e3a 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -106,6 +106,12 @@ UTF-8
 reparenting
 RSS
 uninstall
+PGP
+SHA
+cronjobs
+unsets
+multiparts
+inline
 
 # RT JARGON
 ACEs
@@ -140,3 +146,4 @@ formatters
 lookup
 wipeout
 RTx
+autoreplies

commit 753a62138f7d69d723babd62fdef7769444d625f
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:24:46 2011 -0400

    Spellcheck lib/RT/Interface/CLI.pm

diff --git a/lib/RT/Interface/CLI.pm b/lib/RT/Interface/CLI.pm
index 8a93d07..67c782e 100644
--- a/lib/RT/Interface/CLI.pm
+++ b/lib/RT/Interface/CLI.pm
@@ -72,27 +72,27 @@ BEGIN {
 
 =head1 SYNOPSIS
 
-  use lib "/path/to/rt/libraries/";
+    use lib "/path/to/rt/libraries/";
 
-  use RT::Interface::CLI  qw(CleanEnv 
-	  		   GetCurrentUser GetMessageContent loc);
+    use RT::Interface::CLI qw(CleanEnv GetCurrentUser GetMessageContent loc);
 
-  #Clean out all the nasties from the environment
-  CleanEnv();
+    # Clean out all the nasties from the environment.
+    CleanEnv();
 
-  #let's talk to RT'
-  use RT;
+    # Load RT's code.
+    use RT;
 
-  #Load RT's config file
-  RT::LoadConfig();
+    # Load RT's config file.
+    RT::LoadConfig();
 
-  # Connect to the database. set up loggign
-  RT::Init();
+    # Connect to the database. Set up logging.
+    RT::Init();
 
-  #Get the current user all loaded
-  my $CurrentUser = GetCurrentUser();
+    # Get the current user all loaded
+    my $CurrentUser = GetCurrentUser();
 
-  print loc('Hello!'); # Synonym of $CuurentUser->loc('Hello!');
+    # Synonym of $CuurentUser->loc('Hello!');
+    print loc('Hello!');
 
 =head1 DESCRIPTION
 
@@ -105,7 +105,7 @@ BEGIN {
 
 =head2 CleanEnv
 
-Removes some of the nastiest nasties from the user\'s environment.
+Removes some of the nastiest attack vectors from the user's environment.
 
 =cut
 
@@ -127,8 +127,9 @@ sub CleanEnv {
 
 =head2 GetCurrentUser
 
-  Figures out the uid of the current user and returns an RT::CurrentUser object
-loaded with that user.  if the current user isn't found, returns a copy of RT::Nobody.
+Figures out the uid of the current user and returns an L<RT::CurrentUser>
+object loaded with that user. If the current user isn't found, returns a copy
+of C<< RT->Nobody >>.
 
 =cut
 
@@ -157,7 +158,7 @@ sub GetCurrentUser  {
 
 =head2 loc
 
-  Synonym of $CurrentUser->loc().
+    Synonym of C<< $CurrentUser->loc("...") >>.
 
 =cut
 

commit 6dc2890585256c975fbb9172c076d8ffd82d8212
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:34:58 2011 -0400

    Spellcheck lib/RT/Interface/Email.pm

diff --git a/lib/RT/Interface/Email.pm b/lib/RT/Interface/Email.pm
index 3561805..d9a8b5f 100644
--- a/lib/RT/Interface/Email.pm
+++ b/lib/RT/Interface/Email.pm
@@ -161,9 +161,9 @@ sub CheckForSuspiciousSender {
 
 =head2 CheckForAutoGenerated HEAD
 
-Takes a HEAD object of L<MIME::Head> class and returns true if message
-is autogenerated. Checks 'Precedence' and 'X-FC-Machinegenerated'
-fields of the head in tests.
+Takes a HEAD object of L<MIME::Head> class and returns true if we think the
+message is autogenerated. This is more black magic than science. We check
+C<Precedence>, C<Auto-Submitted>, C<X-FC-Machinegenerated>, etc. headers.
 
 =cut
 
@@ -200,9 +200,9 @@ sub CheckForBounce {
 }
 
 
-=head2 MailError PARAM HASH
+=head2 MailError PARAMHASH
 
-Sends an error message. Takes a param hash:
+Sends an error message. Takes a paramhash:
 
 =over 4
 
@@ -884,7 +884,7 @@ according to RFC2047, using B (base64 based) encoding.
 String must be a perl string, octets are returned.
 
 If Charset is not provided then $EmailOutputEncoding config option
-is used, or "latin-1" if that is not set.
+is used, or C<latin-1> if that is not set.
 
 =cut
 
@@ -1683,7 +1683,8 @@ sub _RunUnsafeAction {
 
 =head2 _NoAuthorizedUserFound
 
-Emails the RT Owner and the requestor when the auth plugins return "No auth user found"
+Emails the RT Owner and the requestor when the authentication plugins return
+C<No auth user found>.
 
 =cut
 
@@ -1730,7 +1731,8 @@ EOT
 
 =head2 _HandleMachineGeneratedMail
 
-Takes named params:
+Takes named parameters:
+
     Message
     ErrorsTo
     Subject

commit 1ab66165dd98a1d497a9ce6b826cef830d483a5f
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:38:53 2011 -0400

    Spellcheck lib/RT/Interface/Web.pm

diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index 1d925f7..38cb0bf 100644
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -138,9 +138,9 @@ sub EscapeURI {
 
 =head2 WebCanonicalizeInfo();
 
-Different web servers set different environmental varibles. This
-function must return something suitable for REMOTE_USER. By default,
-just downcase $ENV{'REMOTE_USER'}
+Different web servers set different environmental variables. This
+function must return something suitable for C<REMOTE_USER>. By default,
+just lowercase C<$ENV{'REMOTE_USER'}>.
 
 =cut
 
@@ -311,7 +311,7 @@ sub LoginError {
 
 =head2 SetNextPage [PATH]
 
-Intuits and stashes the next page in the sesssion hash.  If PATH is
+Intuits and stashes the next page in the session hash.  If PATH is
 specified, uses that instead of the value of L<IntuitNextPage()>.  Returns
 the hash value.
 
@@ -332,7 +332,7 @@ sub SetNextPage {
 =head2 TangentForLogin [HASH]
 
 Redirects to C</NoAuth/Login.html>, setting the value of L<IntuitNextPage> as
-the next page.  Optionally takes a hash which is dumped into query params.
+the next page.  Optionally takes a hash which is dumped into query parameters.
 
 =cut
 
@@ -422,8 +422,9 @@ sub MaybeShowInstallModePage {
 
 =head2 MaybeShowNoAuthPage  \%ARGS
 
-This function, called exclusively by RT's autohandler, dispatches
-a request to the page a user requested (but only if it matches the "noauth" regex.
+This function, called exclusively by RT's autohandler, dispatches a request to
+the page a user requested (but only if it matches the configured
+C<WebNoAuthRegex>)
 
 If it serves a page, it stops mason processing. Otherwise, mason just keeps running through the autohandler
 
@@ -457,10 +458,12 @@ sub InitializeMenu {
 =head2 ShowRequestedPage  \%ARGS
 
 This function, called exclusively by RT's autohandler, dispatches
-a request to the page a user requested (making sure that unpriviled users
-can only see self-service pages.
+a request to the page a user requested
 
-=cut 
+We make sure that unprivileged users can only see self-service
+pages.
+
+=cut
 
 sub ShowRequestedPage {
     my $ARGS = shift;
@@ -623,7 +626,7 @@ sub AttemptPasswordAuthentication {
         $m->callback( %$ARGS, CallbackName => 'SuccessfulLogin', CallbackPage => '/autohandler' );
 
         # Really the only time we don't want to redirect here is if we were
-        # passed user and pass as query params in the URL.
+        # passed user and pass as query parameters in the URL.
         if ($next) {
             Redirect($next);
         }
@@ -740,8 +743,8 @@ sub Redirect {
 
 =head2 StaticFileHeaders 
 
-Send the browser a few headers to try to get it to (somewhat agressively)
-cache RT's static Javascript and CSS files.
+Send the browser a few headers to try to get it to (somewhat aggressively)
+cache RT's static JavaScript and CSS files.
 
 This routine could really use _accurate_ heuristics. (XXX TODO)
 
@@ -772,7 +775,7 @@ relative.
 
 This function does not consult the filesystem at all; it is merely
 a logical sanity checking of the path. This explicitly does not handle
-symlinks; if you have symlinks in RT's webroot pointing outside of it,
+symlinks; if you have symlinks in RT's web root pointing outside of it,
 then we assume you know what you are doing.
 
 =cut
@@ -1078,10 +1081,10 @@ sub PageWidgets {
 
 =head2 loc ARRAY
 
-loc is a nice clean global routine which calls $session{'CurrentUser'}->loc()
-with whatever it's called with. If there is no $session{'CurrentUser'}, 
+C<loc> is a nice clean global routine which calls C<< $session{'CurrentUser'}->loc() >>
+with whatever it's called with. If there is no C<< $session{'CurrentUser'} >>,
 it creates a temporary user, so we have something to get a localisation handle
-through
+through.
 
 =cut
 

commit 06de13762a3cdfc1e439770555ed821a9c501e66
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:42:04 2011 -0400

    Spellcheck lib/RT/Shredder/*

diff --git a/lib/RT/Shredder/Constants.pm b/lib/RT/Shredder/Constants.pm
index 430be25..8e9f74f 100644
--- a/lib/RT/Shredder/Constants.pm
+++ b/lib/RT/Shredder/Constants.pm
@@ -60,8 +60,9 @@ RT::Shredder::Constants -  RT::Shredder constants that is used to mark state of
 =head1 DESCRIPTION
 
 This module exports two group of bit constants.
-First group is group of flags which are used to clarify dependecies between objects, and
-second group is states of RT objects in Shredder cache.
+
+The first group is a group of flags which clarify dependencies between objects.
+The second group is states of RT objects in the Shredder cache.
 
 =head1 FLAGS
 
@@ -109,7 +110,7 @@ loaded and placed into cache.
 =head2 WIPED
 
 Objects with this state are not exist any more in DB, but perl
-object is still in memory. This state is used to be shure that
+object is still in memory. This state is used to ensure that the
 delete query is called once.
 
 =head2 VALID
diff --git a/lib/RT/Shredder/Dependencies.pm b/lib/RT/Shredder/Dependencies.pm
index 753364f..08acc63 100644
--- a/lib/RT/Shredder/Dependencies.pm
+++ b/lib/RT/Shredder/Dependencies.pm
@@ -60,7 +60,7 @@ use RT::Record;
 
 =head2 new
 
-Creates new empty collection of dependecies.
+Creates new empty collection of dependencies.
 
 =cut
 
diff --git a/lib/RT/Shredder/Plugin.pm b/lib/RT/Shredder/Plugin.pm
index 79a2a7f..cee01b5 100644
--- a/lib/RT/Shredder/Plugin.pm
+++ b/lib/RT/Shredder/Plugin.pm
@@ -83,10 +83,10 @@ RT::Shredder::Plugin - interface to access shredder plugins
 
 =head2 new
 
-Object constructor, returns new object. Takes optional hash
-as arguments, it's not required and this class doesn't use it,
+Object constructor, returns a new object. Takes an optional hash
+as arguments. It's not required and this class doesn't use it,
 but plugins could define some arguments and can handle them
-after your've load it.
+after you've created the object.
 
 =cut
 
@@ -149,7 +149,7 @@ sub List
 
 Takes name of the plugin as first argument, loads plugin,
 creates new plugin object and reblesses self into plugin
-if all steps were successfuly finished, then you don't need to
+if all steps were successfully finished, then you don't need to
 create new object for the plugin.
 
 Other arguments are sent to the constructor of the plugin
@@ -188,11 +188,11 @@ load plugin. The format of the string is
 exactly like in the L<rt-shredder> script. All other
 arguments are sent to the plugins constructor.
 
-Method does the same things as C<LoadByName>, but also
-checks if the plugin supports arguments and values are correct,
-so you can C<Run> specified plugin immediatly.
+This method does the same things as C<LoadByName>, but also checks if the
+plugin supports arguments and that their values are correct, so you can C<Run>
+the specified plugin immediately.
 
-Returns list with C<$status> and C<$message>. On errors status
+Returns a list with C<$status> and C<$message>. On error, status
 is C<false>.
 
 =cut
@@ -232,8 +232,8 @@ Instance method that takes one object as argument and rebless
 the current object into into class of the argument and copy data
 of the former. Returns nothing.
 
-Method is used by C<Load*> methods to automaticaly rebless
-C<RT::Shredder::Plugin> object into class of the loaded
+This method is used by C<Load*> methods to automatically rebless
+the C<RT::Shredder::Plugin> object into the class of the loaded
 plugin.
 
 =cut

commit 9bf79d6278ed46e7d56793a3c5eee3a22e562031
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:50:16 2011 -0400

    Spellcheck lib/RT/Squish/JS.pm

diff --git a/lib/RT/Squish/JS.pm b/lib/RT/Squish/JS.pm
index d8e0860..abc6954 100644
--- a/lib/RT/Squish/JS.pm
+++ b/lib/RT/Squish/JS.pm
@@ -53,7 +53,7 @@
 
 =head1 DESCRIPTION
 
-This module lets you create squished content of js files.
+This module lets you create squished content of JavaScript files.
 
 =head1 METHODS
 
@@ -67,7 +67,7 @@ use base 'RT::Squish';
 
 =head2 Squish
 
-not only concatenate files, but also minify them
+We not only concatenate files, but also minify them.
 
 =cut
 
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index ef88e3a..2efdd1d 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -112,6 +112,7 @@ cronjobs
 unsets
 multiparts
 inline
+minify
 
 # RT JARGON
 ACEs

commit 93ed5d6bcda447ff2b0d19318e6aeea38142539d
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:51:18 2011 -0400

    Spellcheck lib/RT/URI/base.pm
    
        I'm kind of sad to remove the <A HREF=""> sample code; it's pretty
        mondo

diff --git a/lib/RT/URI/base.pm b/lib/RT/URI/base.pm
index 1534149..3a432d9 100644
--- a/lib/RT/URI/base.pm
+++ b/lib/RT/URI/base.pm
@@ -57,8 +57,8 @@ RT::URI::base
 
 =head1 DESCRIPTION
 
-A baseclass (and fallback) RT::URI handler. Every URI handler needs to 
-handle the API presented here
+A base class (and fallback) L<RT::URI> handler. Every URI handler needs to
+handle the API presented here.
 
 =cut
 
@@ -132,8 +132,8 @@ Return a "pretty" string representing the URI object.
 
 This is meant to be used like this:
 
- % $re = $uri->Resolver;
- <A HREF="<% $re->HREF %>"><% $re->AsString %></A>
+    % $re = $uri->Resolver;
+    <a href="<% $re->HREF %>"><% $re->AsString %></a>
 
 =cut
 

commit 12bca7313d04f601bf852977f5818ee5eb9bff90
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:55:08 2011 -0400

    Spellcheck the rest of lib/RT/URI/*

diff --git a/lib/RT/URI/fsck_com_article.pm b/lib/RT/URI/fsck_com_article.pm
index f651d2e..a1627aa 100644
--- a/lib/RT/URI/fsck_com_article.pm
+++ b/lib/RT/URI/fsck_com_article.pm
@@ -91,7 +91,7 @@ When handed an L<RT::Article> object, figure out its URI
 
 =head2 ParseURI URI
 
-When handed an fsck.com-article URI, figures out things like whether its a local article
+When handed an C<fsck.com-article> URI, figures out things like whether its a local article
 and what its ID is
 
 =cut
@@ -180,7 +180,7 @@ sub Scheme {
 
 =head2 HREF
 
-If this is a local article, return an HTTP url to it.
+If this is a local article, return an HTTP URL to it.
 Otherwise, return its URI
 
 =cut
diff --git a/lib/RT/URI/fsck_com_rt.pm b/lib/RT/URI/fsck_com_rt.pm
index aa0b4e0..7760ac6 100644
--- a/lib/RT/URI/fsck_com_rt.pm
+++ b/lib/RT/URI/fsck_com_rt.pm
@@ -98,7 +98,7 @@ sub URIForObject {
 
 =head2 ParseURI URI
 
-When handed an fsck.com-rt: URI, figures out things like whether its a local record and what its ID is
+When handed an C<fsck.com-rt:> URI, figures out things like whether its a local record and what its ID is
 
 =cut
 
@@ -189,7 +189,7 @@ sub Scheme {
 
 =head2 HREF
 
-If this is a local ticket, return an HTTP url to it.
+If this is a local ticket, return an HTTP URL to it.
 Otherwise, return its URI
 
 =cut
diff --git a/lib/RT/URI/t.pm b/lib/RT/URI/t.pm
index bce178a..f13b66b 100644
--- a/lib/RT/URI/t.pm
+++ b/lib/RT/URI/t.pm
@@ -78,11 +78,11 @@ use base 'RT::URI::fsck_com_rt';
 
 =head1 NAME
 
-RT::URI::t - aliad for RT::URI::fsck_com_rt that supports 't:12345' URIs
+RT::URI::t - alias for RT::URI::fsck_com_rt that supports 't:12345' URIs
 
 =head2 ParseURI URI
 
-When handed an t: URI, figures out if it is an RT ticket.  This is an
+When handed a C<t:> URI, figures out if it is an RT ticket.  This is an
 alternate short form of specifying a full ticket URI.
 
 =cut

commit b7e18523eab72b90a4fde00a401d17cc0beebb9f
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:56:13 2011 -0400

    Spellcheck lib/RT/Interface/Web/*

diff --git a/lib/RT/Interface/Web/Handler.pm b/lib/RT/Interface/Web/Handler.pm
index 4608882..45cf1ac 100644
--- a/lib/RT/Interface/Web/Handler.pm
+++ b/lib/RT/Interface/Web/Handler.pm
@@ -156,7 +156,7 @@ and is not recommended to change.
 
 =item Clean up state of RT::Action::SendEmail using 'CleanSlate' method
 
-=item Flush tmp GnuPG key preferences
+=item Flush temporary GnuPG key preferences
 
 =back
 
diff --git a/lib/RT/Interface/Web/Request.pm b/lib/RT/Interface/Web/Request.pm
index f08228b..ac8acf1 100644
--- a/lib/RT/Interface/Web/Request.pm
+++ b/lib/RT/Interface/Web/Request.pm
@@ -69,7 +69,7 @@ Method replaces deprecated component C<Element/Callback>.
 
 Takes hash with optional C<CallbackPage>, C<CallbackName>
 and C<CallbackOnce> arguments, other arguments are passed
-throught to callback components.
+through to callback components.
 
 =over 4
 
diff --git a/lib/RT/Interface/Web/Session.pm b/lib/RT/Interface/Web/Session.pm
index 0cce092..abc3949 100644
--- a/lib/RT/Interface/Web/Session.pm
+++ b/lib/RT/Interface/Web/Session.pm
@@ -56,7 +56,7 @@ use RT::CurrentUser;
 
 RT::Interface::Web::Session - RT web session class
 
-=head1 SYNOPSYS
+=head1 SYNOPSIS
 
 
 =head1 DESCRIPTION

commit 506f5f517ae8d0e09d0463d44a4bb5e95cdb8ba0
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:59:00 2011 -0400

    Spellcheck lib/RT/Shredder/Plugin/*

diff --git a/lib/RT/Shredder/Plugin/Base.pm b/lib/RT/Shredder/Plugin/Base.pm
index d95279e..2a3e8cd 100644
--- a/lib/RT/Shredder/Plugin/Base.pm
+++ b/lib/RT/Shredder/Plugin/Base.pm
@@ -131,13 +131,13 @@ sub HasSupportForArgs
 
 =head3 TestArgs
 
-Takes hash with arguments and thier values and returns true
+Takes a hash with arguments and their values and returns true
 if all values pass testing otherwise returns C<(0, $msg)>.
 
-Stores arguments hash in C<$self->{'opt'}>, you can access this hash
-from C<Run> method.
+Stores arguments hash in C<< $self->{'opt'} >>, you can access this hash
+in the L</Run> method.
 
-Method should be subclassed if plugin support non standard arguments.
+Method should be subclassed if plugin supports non-standard arguments.
 
 =cut
 
@@ -156,19 +156,19 @@ sub TestArgs
 =head3 Run
 
 Takes no arguments.
-Executes plugin and return C<(1, @objs)> on success or
-C<(0, $msg)> if error had happenned.
+Executes plugin and returns C<(1, @objs)> on success or
+C<(0, $msg)> on error.
 
-Method B<must> be subclassed, this class always returns error.
+Method B<must> be subclassed, so this class always returns an error.
 
-Method B<must> be called only after C<TestArgs> method in other
-case values of the arguments are not available.
+Method B<must> be called only after C<TestArgs> method, otherwise
+the values of the arguments are not available.
 
 =cut
 
 sub Run { return (0, "This is abstract plugin, you couldn't use it directly") }
 
-=head2 utils
+=head2 utility methods
 
 =head3 ConvertMaskToSQL
 
diff --git a/lib/RT/Shredder/Plugin/Objects.pm b/lib/RT/Shredder/Plugin/Objects.pm
index 963b3d5..4759595 100644
--- a/lib/RT/Shredder/Plugin/Objects.pm
+++ b/lib/RT/Shredder/Plugin/Objects.pm
@@ -60,10 +60,9 @@ RT::Shredder::Plugin::Objects - search plugin for wiping any selected object.
 
 =head1 ARGUMENTS
 
-This plugin searches an RT object you want, so you can use
-the object name as argument and id as value, for example if
-you want select ticket #123 then from CLI you write next
-command:
+This plugin searches for the RT object you want, so you can use
+the object name as the argument and id as the value. For example if
+you want to select ticket #123, you can write:
 
   rt-shredder --plugin 'Objects=Ticket,123'
 
diff --git a/lib/RT/Shredder/Plugin/Tickets.pm b/lib/RT/Shredder/Plugin/Tickets.pm
index 156f8ff..dfe509f 100644
--- a/lib/RT/Shredder/Plugin/Tickets.pm
+++ b/lib/RT/Shredder/Plugin/Tickets.pm
@@ -72,7 +72,7 @@ Arguments C<queue>, C<status> and C<updated_before> have been dropped
 as you can easy make the same search with the C<query> option.
 See examples above.
 
-=head2 with_linked - boolen
+=head2 with_linked - boolean
 
 Deletes all tickets that are linked to tickets that match L<query>.
 

commit ffc02845a65ead56262e425e8bcd7a1bb70157f6
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 21:59:44 2011 -0400

    Spellcheck lib/RT/Interface/Email/Auth/GnuPG.pm

diff --git a/lib/RT/Interface/Email/Auth/GnuPG.pm b/lib/RT/Interface/Email/Auth/GnuPG.pm
index 25b8f10..542e01c 100644
--- a/lib/RT/Interface/Email/Auth/GnuPG.pm
+++ b/lib/RT/Interface/Email/Auth/GnuPG.pm
@@ -53,10 +53,10 @@ use warnings;
 
 =head2 GetCurrentUser
 
-To use the gnupg-secured mail gateway, you need to do the following:
+To use the GnuPG-secured mail gateway, you need to do the following:
 
-Set up a GnuPG key directory with a pubring containing only the keys
-you care about and specify the following in your SiteConfig.pm
+Set up a GnuPG key directory with a public keyring containing only the keys
+you care about and specify the following in your F<RT_SiteConfig.pm>:
 
     Set(%GnuPGOptions, homedir => '/opt/rt4/var/data/GnuPG');
     Set(@MailPlugins, 'Auth::MailFrom', 'Auth::GnuPG', ...other filter...);

commit 34e6356d0180f2ecce6afbd90fcf913e861ac97b
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 22:00:50 2011 -0400

    Spellcheck lib/RT/Interface/Web/QueryBuilder/Tree.pm

diff --git a/lib/RT/Interface/Web/QueryBuilder/Tree.pm b/lib/RT/Interface/Web/QueryBuilder/Tree.pm
index 493ab44..719e590 100644
--- a/lib/RT/Interface/Web/QueryBuilder/Tree.pm
+++ b/lib/RT/Interface/Web/QueryBuilder/Tree.pm
@@ -149,8 +149,8 @@ sub GetQueryAndOptionList {
 
 =head2 PruneChildLessAggregators
 
-If tree manipulation has left it in a state where there are ANDs, ORs,
-or parenthesizations with no children, get rid of them.
+If tree manipulation has left it in a state where there are C<AND>s, C<OR>s,
+or parenthesized groups with no children, prune them.
 
 =cut
 

commit f9501a4bfcb86280d2c1e6256b7b269f0582b816
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 22:02:19 2011 -0400

    Spellcheck lib/RT/Shredder/Plugin/Base/Search.pm

diff --git a/lib/RT/Shredder/Plugin/Base/Search.pm b/lib/RT/Shredder/Plugin/Base/Search.pm
index 6f9d6ff..fe0d6a4 100644
--- a/lib/RT/Shredder/Plugin/Base/Search.pm
+++ b/lib/RT/Shredder/Plugin/Base/Search.pm
@@ -105,15 +105,16 @@ sub SetResolvers { return 1 }
 
 =head2 FetchNext $collection [, $init]
 
-Returns next object in collection as method L<RT::SearchBuilder/Next>, but
+Returns the next object in the collection, like L<RT::SearchBuilder/Next>, but
 doesn't stop on page boundaries.
 
-When method is called with true C<$init> arg it enables pages on collection
-and selects first page.
+When the method is called with a true C<$init> argument, it enables pages on
+the collection and selects the first page.
 
-Main purpose of this method is to avoid loading of whole collection into
-memory as RT does by default when pager is not used. This method init paging
-on the collection, but doesn't stop when reach page end.
+The main purpose of this method is to avoid loading of whole collection into
+memory, which RT does by default when the pager is not used. This method
+initializes paging on the collection, but doesn't stop when reaching the end of
+a page.
 
 Example:
 

commit 875dd8aa9f2d0042495b5ca6a5864e5d1150a70f
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Thu Mar 17 22:03:40 2011 -0400

    re-sort stopwords

diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index 2efdd1d..cc7be14 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -25,94 +25,94 @@ Ruslan
 Zakirov
 
 # ENGLISH
-one's
-multi
-depluralization
 auditability
+depluralization
+multi
+one's
 pre-existing
 
 # PROGRAMMING JARGON
+add-ons
 API
 APIs
-CGI
-CPAN
-DBI
-DSN
-GPG
-GnuPG
-MUA
-MUAs
-SQL
-STDERR
-STDOUT
-TODO
-UI
 autohandler
+canonicalizes
+CGI
 checkboxes
+codebase
+codepath
+CPAN
+cronjobs
 datetime
+DBI
+denormalizes
+deserializing
 dhandler
 dropdown
+DSN
+ENTRYAGGREGATOR
 filename
+GnuPG
+GPG
+hostname
 html
+iCalendar
+inline
+Intercal
 keyserver
 login
 logins
 longblob
+longtext
 metadata
+minify
+Mozilla's
+MUA
+MUAs
 multipart
+multiparts
 optree
+overridable
 paramhash
 paramhash's
 passphrase
 perltidy
 perltidyrc
+PGP
 plugin's
 plugins
 prepopulated
 rebless
 reblesses
+recursing
+reinitializes
+reparenting
 resultset
+RSS
 runtime
+SHA
+SQL
 startup
+STDERR
+STDOUT
+subclause
+subcomponents
 subdirectory
+textbox
+TODO
 tuple
 tuples
+UI
+unary
 unicode
+uninstall
 unix
+unsets
 username
-workflow
-hostname
-Mozilla's
-Intercal
-subclause
-longtext
-ENTRYAGGREGATOR
-deserializing
-recursing
-overridable
-variable's
-iCalendar
-textbox
 usernames
-denormalizes
-canonicalizes
-reinitializes
-codepath
-codebase
-add-ons
-subcomponents
-unary
 UTF-8
-reparenting
-RSS
-uninstall
-PGP
-SHA
-cronjobs
-unsets
-multiparts
-inline
-minify
+variable's
+workflow
 
 # RT JARGON
 ACEs
@@ -120,31 +120,31 @@ ACL
 ACLs
 AdminCc
 AdminCcs
+attribute's
+autoreplies
 Bcc
 Cc
 Ccs
+crontool
 CustomField
+formatter
+formatters
 Gecos
+HotList
 LastUpdated
 LastUpdatedBy
+lifecycle
+lifecycles
+lookup
+mailgate
 portlet
 portlets
-RT's
 Requestor
 requestor
 Requestors
 requestors
-crontool
-lifecycle
-lifecycles
-mailgate
-HotList
-attribute's
+RT's
+RTx
 subvalue
 subvalues
-formatter
-formatters
-lookup
 wipeout
-RTx
-autoreplies

-----------------------------------------------------------------------


More information about the Rt-commit mailing list