[Rt-commit] rt branch, 4.2/pod-spell, created. rt-4.0.8-651-ge925fcf

Thomas Sibley trs at bestpractical.com
Thu Nov 29 16:08:25 EST 2012


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

- Log -----------------------------------------------------------------
commit 00d993d92dbbe62b1dbea123e220d5df1f0c0a8e
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 6627644818967a5f13f669ebf7a2758e70155be9
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 6942a5584f9528288a8e89aac5700b5f6b519789
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 f96e9a6ec9dfea5479002f1efa13606cc880f399
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 5c37d72..9fa4e2b 100644
--- a/lib/RT.pm
+++ b/lib/RT.pm
@@ -584,8 +584,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
 
@@ -601,7 +602,7 @@ sub Plugins {
 
 =head2 PluginDirs
 
-Takes an optional subdir (e.g. po, lib, etc.) and returns a list of
+Takes an optional subdirectory (e.g. F<po>, F<lib>, etc.) and returns a list of
 directories from plugins where that subdirectory exists.
 
 This code does not check plugin names, plugin validitity, or load
@@ -657,8 +658,8 @@ sub InitPluginPaths {
 
 =head2 InitPlugins
 
-Initialize all Plugins found in the RT configuration file, setting up
-their lib and L<HTML::Mason> component roots.
+Initialize all Plugins found in the RT configuration file, setting up their lib
+and L<HTML::Mason> component roots.
 
 =cut
 
@@ -744,9 +745,8 @@ sub CanonicalizeGeneratedPaths {
 
 =head2 AddJavaScript
 
-helper method to add js files to C<JSFiles> config.
-to add extra js 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 your plugin's main lib 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 c21c266f54e1165650a0d620486488b85b3d80ad
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 c878a2d..956960b 100644
--- a/lib/RT/ACE.pm
+++ b/lib/RT/ACE.pm
@@ -315,8 +315,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 {
@@ -326,8 +324,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 b367b2f..740ade5 100644
--- a/lib/RT/Group.pm
+++ b/lib/RT/Group.pm
@@ -631,7 +631,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 af083bf..c9cf4a5 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 2da6cbd..57a5c79 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 e2213bbd66381419ea4a2bb25f3f7cd49bf285ee
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 956960b..0bd8653 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
@@ -311,9 +311,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
 
@@ -358,12 +359,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
 
@@ -515,7 +516,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 20c4f55eb2a46cd235304909c3a296b1be669021
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 e82977b..02861f2 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
 
@@ -587,9 +587,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
 
@@ -630,9 +630,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 44a10d5e03853bb99f75d55bd4a77135a269b5d6
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 47d0ebe..61b2e6e 100644
--- a/lib/RT/Articles.pm
+++ b/lib/RT/Articles.pm
@@ -244,10 +244,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.
@@ -491,9 +492,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 123a39581c32fe0216ec35c78bbf265bcda64b16
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 c905c8c..1c05b2e 100644
--- a/lib/RT/Attachment.pm
+++ b/lib/RT/Attachment.pm
@@ -224,7 +224,7 @@ sub Create {
 
 =head2 TransactionObj
 
-Returns the transaction object asscoiated with this attachment.
+Returns the transaction object associated with this attachment.
 
 =cut
 
@@ -464,7 +464,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
 
@@ -622,7 +622,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 13407d4a4d83534d8cba028588fec15635782070
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 2bdbc24..4051c07 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 85598335fecbcfcb098f2c610d62806ada99c1d7
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 fd99100..7f9f929 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 62c9f526e1b57e97118813a3c5f53c660541ad5f
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 2aae60e..0e1f7a5 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 b3539051f8fad230f79c07fb3d9792a7700df69b
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 4c05852..bd5275f 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 b33c3b402bf5d3c301c83512333e65826b5903a2
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 f76fc5d..1f87f4f 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 668a46472d11dc2d4300fc907dd72b5033b8f70a
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 723d753..7000402 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
@@ -826,7 +826,7 @@ sub _Init {
 
 =head2 InitConfig
 
-Do nothin right now.
+Currently does nothing.
 
 =cut
 
@@ -839,9 +839,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
 
@@ -859,16 +858,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
 
@@ -1007,31 +1006,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 feaec32e6d7d5f1fe00368a3aa5f262a5ee22aa9
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 97ffcc0..0834fc5 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 ff7268690c2b072f068ba6855c9e0626a4091dcf
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 28e4855..cf47e0c 100644
--- a/lib/RT/CustomField.pm
+++ b/lib/RT/CustomField.pm
@@ -450,7 +450,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
 
@@ -640,7 +640,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
 
@@ -651,8 +651,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
 
@@ -1005,8 +1005,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
 
@@ -1485,7 +1487,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:
 
@@ -1637,7 +1639,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
 
@@ -1783,7 +1785,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 597f186347f057e78f7eea2e56a7d6d1760349d1
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 a837f82..b65eaba 100644
--- a/lib/RT/CustomFields.pm
+++ b/lib/RT/CustomFields.pm
@@ -240,8 +240,10 @@ sub LimitToNotAdded {
 
 =head2 LimitToAdded
 
-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
 
@@ -271,7 +273,7 @@ sub LimitToGlobalOrQueue {
 =head2 LimitToQueue QUEUEID
 
 Takes a numeric C<QUEUEID>, and limits the Custom Field collection to
-those only applied directly to it; this limit is OR'd with other
+only those applied directly to it; this limit is OR'd with other
 L</LimitToQueue> and L</LimitToGlobal> limits.
 
 Note that this will cause the collection to only return ticket CFs.
@@ -313,7 +315,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 10156a341310f1d010c47de52223ebf860a535e7
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 6560cab..cbe705f 100644
--- a/lib/RT/Dashboards.pm
+++ b/lib/RT/Dashboards.pm
@@ -79,9 +79,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 015a07c47048c8f48860f5483720b10bea246ce2
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 ed094d0..b490dc3 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
 
@@ -555,8 +551,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:
 
@@ -729,11 +725,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
 
@@ -766,12 +762,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
 
@@ -811,11 +807,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
@@ -853,9 +849,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"
@@ -869,7 +865,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
 
@@ -891,7 +887,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
 
@@ -937,7 +933,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
@@ -979,17 +975,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
@@ -1023,21 +1019,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 34b2044ebd251ce057930c9944c9f75c13ed7567
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 4cf4184..b9f5a81 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
 
@@ -513,18 +513,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 a63d80db3aece29cec04a9e47526c938b2bd6888
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 740ade5..f79e094 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
@@ -538,9 +538,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
 
@@ -864,7 +864,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
 
@@ -1036,10 +1036,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 23203cbe5b550535b7e8f1a7a30c5a104b7e7811
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 8df4a73..a44f2ab 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 d35c842c64be65c0ab6cf3d43de9c3e9ee0eb501
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 58934da..67e1895 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
 
@@ -302,7 +302,7 @@ sub CheckSphinxSE {
     return 1;
 }
 
-=head2 Database maintanance
+=head2 Database maintenance
 
 =head3 CreateDatabase $DBH
 
@@ -1128,7 +1128,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
 
@@ -1151,8 +1151,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
 
@@ -1164,9 +1165,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 5a9bbb0716b2a00fabbcd7d2afcaa14e5a78bc66
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 fac2099..9ff9848 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,10 +194,10 @@ 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'.
 
 This function doesn't return anything meaningful.
 
@@ -264,14 +264,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
 
@@ -498,8 +498,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
 
@@ -531,7 +533,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 12d4c2de6f06c25b689df1e27af7e7cd1927cedf
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 d12abb6..cf8cd87 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 74bda92fa5dd885260c6bbc6e63d362ec7ed0b71
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 056599e..f2036e4 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
 
@@ -398,7 +398,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, ... ],
@@ -454,7 +454,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 5d4a602fa4f129be5b616063712aa6be2a87daac
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/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 46d001b83a1d08af36ff8077aeaf4571fa8de52e
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 98714a0..3553e0b 100644
--- a/lib/RT/ObjectCustomFieldValue.pm
+++ b/lib/RT/ObjectCustomFieldValue.pm
@@ -394,9 +394,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
 
@@ -409,9 +409,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 070918723e16e2b38e0e005f175e4ce95ab9692f
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 5e65fa7..1a7d12d 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
 
@@ -591,7 +591,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 9cce3eaaba202c54e9aa9a8ba34a0d1502700c14
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 f6ec266..8786e35 100644
--- a/lib/RT/Queue.pm
+++ b/lib/RT/Queue.pm
@@ -274,8 +274,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
 
@@ -521,8 +521,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
 
@@ -864,9 +864,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.
 
@@ -995,8 +995,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
@@ -1152,7 +1154,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
 
@@ -1290,7 +1292,7 @@ sub CurrentUserCanSee {
 
 =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 1f8dfd26d5ff81d71ebe7db2cf20acf92ce80dbe
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 aed6136..d1ef556 100644
--- a/lib/RT/Record.pm
+++ b/lib/RT/Record.pm
@@ -98,8 +98,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.
 
@@ -259,11 +259,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.
 
 =over
@@ -597,7 +597,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
 
@@ -605,9 +605,7 @@ sub SQLType {
     my $self = shift;
     my $field = shift;
 
-    return ($self->_Accessible($field, 'type'));
-
-
+    return $self->_Accessible($field, 'type');
 }
 
 sub __Value {
@@ -1068,11 +1066,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
 
@@ -1085,10 +1082,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 c966acf06d0d916d01cc4ea01568c028bade0c8d
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 ebceef4..518c834 100644
--- a/lib/RT/SavedSearches.pm
+++ b/lib/RT/SavedSearches.pm
@@ -79,12 +79,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 3c5fad4be1246a9c34920434141e7895c4ee7bc1
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 13ab47e..b40f50f 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 7e13c0ac642e1398060502ab17ffa80d5002b9cc
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 f314fcc..44b5238 100644
--- a/lib/RT/Scrips.pm
+++ b/lib/RT/Scrips.pm
@@ -360,7 +360,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 470919efb8c5e69b49ef1625b30afa1c00841b84
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 47c09a6..df0728d 100644
--- a/lib/RT/SearchBuilder.pm
+++ b/lib/RT/SearchBuilder.pm
@@ -245,9 +245,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)>;
 
 We also force VALUE to C<NULL> when the OPERATOR is C<IS> or C<IS NOT>.
 This ensures that we don't pass invalid SQL to the database or allow SQL
@@ -357,8 +357,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 b7ac3a02f18c59e9e96d75681d64974a0f8c3bf9
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 bc0b17a..3c87a34 100644
--- a/lib/RT/Shredder.pm
+++ b/lib/RT/Shredder.pm
@@ -793,48 +793,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.
@@ -847,14 +805,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 1eae2c221521bb4800a7c5ab8e4fd4a989bf78a9
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 3c87a34..ec97366 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
@@ -174,7 +174,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;
@@ -260,7 +260,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.
@@ -305,12 +305,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.
 
@@ -401,8 +401,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
@@ -622,11 +622,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.
 
@@ -708,7 +708,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 cac5c20033cbf48f0458678e82b28f687667b839
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 eb31a63..9def91c 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 631a5f7e73477895b6b4f7924fdf547fa95bfbff
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 d958c87..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"> [_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"> [_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
 
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 1d07ca3c9154c05ca71dec844392ee9882da4290
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 68f1564..06cf3c9 100644
--- a/lib/RT/System.pm
+++ b/lib/RT/System.pm
@@ -251,7 +251,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 70d6d51a5579aac02b61287e36ec3b68c3d3f605
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 e509454..9e43fa1 100644
--- a/lib/RT/Template.pm
+++ b/lib/RT/Template.pm
@@ -185,7 +185,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 ) {
@@ -514,7 +514,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}) {
@@ -522,7 +522,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}";
             }
@@ -677,11 +677,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
 
@@ -718,7 +718,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 a34acdb84dc5bee60b459fdd8417f489de5d3b36
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 580a66f..02c1269 100644
--- a/lib/RT/Tickets.pm
+++ b/lib/RT/Tickets.pm
@@ -623,7 +623,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
@@ -1156,34 +1156,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
 
@@ -1293,7 +1294,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
 
@@ -2808,11 +2809,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
 
@@ -3489,7 +3490,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 de9b180dd9e83e628efe26a6d14b48291b119a96
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 067b97e..c12b9b0 100644
--- a/lib/RT/Transaction.pm
+++ b/lib/RT/Transaction.pm
@@ -242,7 +242,7 @@ sub Rules {
 
 =head2 Delete
 
-Delete this transaction. Currently DOES NOT CHECK ACLS
+Delete this transaction. B<Currently does not check ACLs!>
 
 =cut
 
@@ -1033,9 +1033,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
 
@@ -1276,7 +1276,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 16e8b862adfe8275b05459e7272b063f73df0459
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 284a75e..a24ee5b 100644
--- a/lib/RT/URI.pm
+++ b/lib/RT/URI.pm
@@ -135,7 +135,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
 
@@ -235,7 +235,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
 
@@ -251,7 +251,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
 
@@ -275,7 +275,7 @@ sub AsHREF {
 
 =head2 Resolver
 
-Returns this URI's URI resolver object
+Returns this object's URI resolver object.
 
 =cut
 

commit 35cd6b7cfac4b50e718c31fab6162f1650c0dfe6
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 f0a39be..6b61556 100644
--- a/lib/RT/User.pm
+++ b/lib/RT/User.pm
@@ -290,10 +290,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
@@ -601,17 +601,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
 
@@ -660,12 +670,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
 
@@ -716,7 +727,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 "PasswordChange".
 
 This function is currently unused in the UI, but available for local scripts.
@@ -973,10 +984,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
 
@@ -1028,8 +1038,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 903c980afd0a5e28892f89a4e78bd8a9c949434b
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 cde874e..2d91439 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 d4d0d51..a3f4f90 100644
--- a/lib/RT/Action/CreateTickets.pm
+++ b/lib/RT/Action/CreateTickets.pm
@@ -76,7 +76,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"
 
 
 
@@ -177,7 +177,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
@@ -229,7 +229,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
@@ -238,7 +238,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.
 
 
@@ -530,7 +530,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 0f74095..7b4cc28 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 0a0825e..de3a7b2 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 f1aef40..4009451 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 e459377..d77928c 100644
--- a/lib/RT/Action/SendEmail.pm
+++ b/lib/RT/Action/SendEmail.pm
@@ -855,7 +855,7 @@ sub SetReturnAddress {
 
 }
 
-=head2 SetFrom ( From => emailaddress )
+=head2 SetFrom ( From => address )
 
 Set the From: address for outgoing email
 
@@ -1102,7 +1102,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 f52d401..507b399 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 0b1034c5da4f2160b05bf548d45eec269b24de05
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 60d5bbe..ef31891 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 7072221..4254473 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 96e6e13f04088db45206a1c46745c10042c3c260
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 2330478..0b4760f 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
 
@@ -373,7 +403,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>
@@ -1604,9 +1634,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.
 
@@ -1614,7 +1644,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.
 
@@ -1973,7 +2003,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
 
@@ -2395,11 +2425,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 8bd3ccdfddd26ac9f98c29f43c40f392b0ed771b
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 d7dcde3..ce5d724 100644
--- a/lib/RT/Interface/CLI.pm
+++ b/lib/RT/Interface/CLI.pm
@@ -60,27 +60,27 @@ our @EXPORT_OK = qw(CleanEnv GetCurrentUser GetMessageContent debug loc);
 
 =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
 
@@ -93,7 +93,7 @@ our @EXPORT_OK = qw(CleanEnv GetCurrentUser GetMessageContent debug loc);
 
 =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
 
@@ -115,8 +115,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
 
@@ -145,7 +146,7 @@ sub GetCurrentUser  {
 
 =head2 loc
 
-  Synonym of $CurrentUser->loc().
+    Synonym of C<< $CurrentUser->loc("...") >>.
 
 =cut
 

commit 3bf9a9ca3843988860c4ba5f704c6671bb4e0f22
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 464504d..8e2ce32 100644
--- a/lib/RT/Interface/Email.pm
+++ b/lib/RT/Interface/Email.pm
@@ -162,9 +162,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
 
@@ -201,9 +201,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
 
@@ -927,7 +927,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
 
@@ -1739,7 +1739,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
 
@@ -1786,7 +1787,8 @@ EOT
 
 =head2 _HandleMachineGeneratedMail
 
-Takes named params:
+Takes named parameters:
+
     Message
     ErrorsTo
     Subject

commit aa416fb6ace7c4ee60cb11b2a0afdc533159775a
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 daa4ae5..ff0dcd2 100644
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -181,9 +181,9 @@ sub EscapeJS {
 
 =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
 
@@ -363,7 +363,7 @@ sub LoginError {
 
 =head2 SetNextPage ARGSRef [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.
 
@@ -423,9 +423,9 @@ sub RemoveNextPage {
 =head2 TangentForLogin ARGSRef [HASH]
 
 Redirects to C</NoAuth/Login.html>, setting the value of L<IntuitNextPage> as
-the next page.  Takes a hashref of request %ARGS as the first parameter.
-Optionally takes all other parameters as a hash which is dumped into query
-params.
+the next page.  Takes a hashref of request C<%ARGS> as the first argument.  Any
+additional arguments are treated as a hash of query parameters to append to the
+tangent redirect location.
 
 =cut
 
@@ -529,8 +529,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
 
@@ -594,10 +595,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;
@@ -781,7 +784,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);
         }
@@ -900,8 +903,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)
 
@@ -952,7 +955,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
@@ -1535,10 +1538,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 6250a27200c2080a1fbbfcd1574d0b7bc6e6607c
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 fc6620c..0f3dd60 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
 
@@ -102,7 +103,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.
 
 =cut
diff --git a/lib/RT/Shredder/Dependencies.pm b/lib/RT/Shredder/Dependencies.pm
index ea4b626..83f2fc1 100644
--- a/lib/RT/Shredder/Dependencies.pm
+++ b/lib/RT/Shredder/Dependencies.pm
@@ -61,7 +61,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 ad9af6a..fa6b807 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
 
@@ -152,7 +152,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
@@ -192,11 +192,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
@@ -236,8 +236,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 90c1e0636a65e13bc9d8b493fc32e4252db08ceb
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 6309d01..1dc1ece 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 072c8dd692db068f49370f98dc1643d21cf71d54
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 f48e682..88ce215 100644
--- a/lib/RT/URI/base.pm
+++ b/lib/RT/URI/base.pm
@@ -58,8 +58,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
 
@@ -133,8 +133,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 8836c357364929e04b54f94a39051d9d9a2f321c
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 0c09b7c..ccab080 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 1c11e22..2f225e5 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 e73f644..364e79a 100644
--- a/lib/RT/URI/t.pm
+++ b/lib/RT/URI/t.pm
@@ -54,11 +54,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 fb5d146f9e056a1d73e7ec646ae2fc29e177ebc3
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 5af3025..98b6fb3 100644
--- a/lib/RT/Interface/Web/Handler.pm
+++ b/lib/RT/Interface/Web/Handler.pm
@@ -154,7 +154,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 d38b2fd..c06e9c0 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 4c269d9..ccdbaa9 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 276a19c372d14d22faba9c5e4e9d8625e0607b26
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 d9610d4..a7fba83 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 d5a7abb..610c531 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 67ee4a6..5a3007a 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 0e0d6ab4bc0bae1709de91e30704cb818488865a
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 87a523d..2368e3b 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 1850549ca7b84578de4a23c6a5f66d8865fc839d
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 ffadba3..a9c5531 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 1a71a143f0252c090cc61b89a95d185ed25c6a9c
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 eb28ba6..abecb1f 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 e925fcf5a300d21766db286f0a4f4de53f7be174
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