r51145 - in /trunk/libcatalyst-action-rest-perl: ./ debian/ inc/Module/Install/ lib/Catalyst/Action/ lib/Catalyst/Action/Serialize/ lib/Catalyst/Controller/ lib/Catalyst/Request/ lib/Catalyst/TraitFor/Request/ t/

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Sun Jan 17 18:39:36 UTC 2010


Author: jawnsy-guest
Date: Sun Jan 17 18:39:31 2010
New Revision: 51145

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=51145
Log:
New upstream release

Added:
    trunk/libcatalyst-action-rest-perl/inc/Module/Install/AuthorRequires.pm
      - copied unchanged from r51143, branches/upstream/libcatalyst-action-rest-perl/current/inc/Module/Install/AuthorRequires.pm
    trunk/libcatalyst-action-rest-perl/lib/Catalyst/Action/Serialize/JSONP.pm
      - copied unchanged from r51143, branches/upstream/libcatalyst-action-rest-perl/current/lib/Catalyst/Action/Serialize/JSONP.pm
    trunk/libcatalyst-action-rest-perl/t/jsonp.t
      - copied unchanged from r51143, branches/upstream/libcatalyst-action-rest-perl/current/t/jsonp.t
Modified:
    trunk/libcatalyst-action-rest-perl/Changes
    trunk/libcatalyst-action-rest-perl/MANIFEST
    trunk/libcatalyst-action-rest-perl/META.yml
    trunk/libcatalyst-action-rest-perl/Makefile.PL
    trunk/libcatalyst-action-rest-perl/README
    trunk/libcatalyst-action-rest-perl/debian/changelog
    trunk/libcatalyst-action-rest-perl/lib/Catalyst/Action/REST.pm
    trunk/libcatalyst-action-rest-perl/lib/Catalyst/Controller/REST.pm
    trunk/libcatalyst-action-rest-perl/lib/Catalyst/Request/REST.pm
    trunk/libcatalyst-action-rest-perl/lib/Catalyst/TraitFor/Request/REST.pm

Modified: trunk/libcatalyst-action-rest-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libcatalyst-action-rest-perl/Changes?rev=51145&op=diff
==============================================================================
--- trunk/libcatalyst-action-rest-perl/Changes (original)
+++ trunk/libcatalyst-action-rest-perl/Changes Sun Jan 17 18:39:31 2010
@@ -1,3 +1,7 @@
+Thu 14 Jan 20:56:00 GMT 2010 - Release 0.81
+
+  Add a JSONP serialization type.
+
 Sat 19 Dec 14:54:00 GMT 2009 - Release 0.80
 
   Convert all classes to Moose

Modified: trunk/libcatalyst-action-rest-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libcatalyst-action-rest-perl/MANIFEST?rev=51145&op=diff
==============================================================================
--- trunk/libcatalyst-action-rest-perl/MANIFEST (original)
+++ trunk/libcatalyst-action-rest-perl/MANIFEST Sun Jan 17 18:39:31 2010
@@ -1,6 +1,7 @@
 Changes
 inc/Module/AutoInstall.pm
 inc/Module/Install.pm
+inc/Module/Install/AuthorRequires.pm
 inc/Module/Install/AutoInstall.pm
 inc/Module/Install/Base.pm
 inc/Module/Install/Can.pm
@@ -22,6 +23,7 @@
 lib/Catalyst/Action/Serialize/Data/Serializer.pm
 lib/Catalyst/Action/Serialize/JSON.pm
 lib/Catalyst/Action/Serialize/JSON/XS.pm
+lib/Catalyst/Action/Serialize/JSONP.pm
 lib/Catalyst/Action/Serialize/View.pm
 lib/Catalyst/Action/Serialize/XML/Simple.pm
 lib/Catalyst/Action/Serialize/YAML.pm
@@ -47,6 +49,7 @@
 t/data-serializer.t
 t/isa.t
 t/json.t
+t/jsonp.t
 t/lib/Test/Action/Class.pm
 t/lib/Test/Catalyst/Action/REST.pm
 t/lib/Test/Catalyst/Action/REST/Controller/Actions.pm

Modified: trunk/libcatalyst-action-rest-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libcatalyst-action-rest-perl/META.yml?rev=51145&op=diff
==============================================================================
--- trunk/libcatalyst-action-rest-perl/META.yml (original)
+++ trunk/libcatalyst-action-rest-perl/META.yml Sun Jan 17 18:39:31 2010
@@ -33,5 +33,5 @@
   perl: 5.8.1
 resources:
   license: http://dev.perl.org/licenses/
-  repository: http://github.com/bobtfish/catalyst-action-rest
-version: 0.80
+  repository: git://git.shadowcat.co.uk/catagits/Catalyst-Action-REST.git
+version: 0.81

Modified: trunk/libcatalyst-action-rest-perl/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libcatalyst-action-rest-perl/Makefile.PL?rev=51145&op=diff
==============================================================================
--- trunk/libcatalyst-action-rest-perl/Makefile.PL (original)
+++ trunk/libcatalyst-action-rest-perl/Makefile.PL Sun Jan 17 18:39:31 2010
@@ -1,4 +1,7 @@
+use strict;
+use warnings;
 use inc::Module::Install;
+use Module::Install::AuthorRequires;
 
 perl_version '5.8.1';
 
@@ -25,30 +28,44 @@
     'JSON'     => '2.12';
     'JSON::XS' => '2.2222';
 
+author_requires 'JSON'     => '2.12';
+author_requires 'JSON::XS' => '2.2222';
+
 feature 'Data::Taxi (text/x-data-taxi) support',
     -default => 0,
     'Data::Taxi' => undef;
 
+author_requires 'Data::Taxi';
+
 feature 'Config::General (text/x-config-general) support',
     -default => 0,
     'Config::General' => undef;
+author_requires 'Config::General';
 
 feature 'PHP::Serialization (text/x-php-serialization) support',
     -default => 0,
     'PHP::Serialization' => undef;
+author_requires 'PHP::Serialization';
 
 feature 'FreezeThaw (application/x-freezethaw) support',
     -default => 0,
     'FreezeThaw' => undef;
+author_requires 'FreezeThaw';
 
 feature 'XML::Simple (text/xml) support',
     -default => 0,
     'XML::Simple' => undef;
+author_requires 'XML::Simple';
 
 auto_include;
 auto_install;
 
-repository 'http://github.com/bobtfish/catalyst-action-rest';
+if ($Module::Install::AUTHOR) {
+    system("pod2text lib/Catalyst/Action/REST.pm > README")
+        and die $!;
+}
+
+repository 'git://git.shadowcat.co.uk/catagits/Catalyst-Action-REST.git';
 
 WriteAll;
 

Modified: trunk/libcatalyst-action-rest-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libcatalyst-action-rest-perl/README?rev=51145&op=diff
==============================================================================
--- trunk/libcatalyst-action-rest-perl/README (original)
+++ trunk/libcatalyst-action-rest-perl/README Sun Jan 17 18:39:31 2010
@@ -1,335 +1,100 @@
 NAME
-    Catalyst::Controller::REST - A RESTful controller
-
-VERSION
-    0.75
+    Catalyst::Action::REST - Automated REST Method Dispatching
 
 SYNOPSIS
-        package Foo::Controller::Bar;
-
-        use base 'Catalyst::Controller::REST';
-
-        sub thing : Local : ActionClass('REST') { }
-
-        # Answer GET requests to "thing"
-        sub thing_GET {
-           my ( $self, $c ) = @_;
-     
-           # Return a 200 OK, with the data in entity
-           # serialized in the body 
-           $self->status_ok(
-                $c, 
-                entity => {
-                    some => 'data',
-                    foo  => 'is real bar-y',
-                },
-           );
+        sub foo :Local :ActionClass('REST') {
+          ... do setup for HTTP method specific handlers ...
         }
 
-        # Answer PUT requests to "thing"
-        sub thing_PUT { 
-          .. some action ..
+        sub foo_GET {
+          ... do something for GET requests ...
+        }
+
+        # alternatively use an Action
+        sub foo_PUT : Action {
+          ... do something for PUT requests ...
         }
 
 DESCRIPTION
-    Catalyst::Controller::REST implements a mechanism for building RESTful
-    services in Catalyst. It does this by extending the normal Catalyst
-    dispatch mechanism to allow for different subroutines to be called based
-    on the HTTP Method requested, while also transparently handling all the
-    serialization/deserialization for you.
+    This Action handles doing automatic method dispatching for REST
+    requests. It takes a normal Catalyst action, and changes the dispatch to
+    append an underscore and method name. First it will try dispatching to
+    an action with the generated name, and failing that it will try to
+    dispatch to a regular method.
 
-    This is probably best served by an example. In the above controller, we
-    have declared a Local Catalyst action on "sub thing", and have used the
-    ActionClass('REST').
+    For example, in the synopsis above, calling GET on "/foo" would result
+    in the foo_GET method being dispatched.
 
-    Below, we have declared "thing_GET" and "thing_PUT". Any GET requests to
-    thing will be dispatched to "thing_GET", while any PUT requests will be
-    dispatched to "thing_PUT".
+    If a method is requested that is not implemented, this action will
+    return a status 405 (Method Not Found). It will populate the "Allow"
+    header with the list of implemented request methods. You can override
+    this behavior by implementing a custom 405 handler like so:
 
-    Any unimplemented HTTP methods will be met with a "405 Method Not
-    Allowed" response, automatically containing the proper list of available
-    methods. You can override this behavior through implementing a custom
-    "thing_not_implemented" method.
+       sub foo_not_implemented {
+          ... handle not implemented methods ...
+       }
 
-    If you do not provide an OPTIONS handler, we will respond to any OPTIONS
-    requests with a "200 OK", populating the Allowed header automatically.
+    If you do not provide an _OPTIONS subroutine, we will automatically
+    respond with a 200 OK. The "Allow" header will be populated with the
+    list of implemented request methods.
 
-    Any data included in "$c->stash->{'rest'}" will be serialized for you.
-    The serialization format will be selected based on the content-type of
-    the incoming request. It is probably easier to use the "STATUS HELPERS",
-    which are described below.
+    It is likely that you really want to look at Catalyst::Controller::REST,
+    which brings this class together with automatic Serialization of
+    requests and responses.
 
-    The HTTP POST, PUT, and OPTIONS methods will all automatically
-    deserialize the contents of $c->request->body based on the requests
-    content-type header. A list of understood serialization formats is
-    below.
+    When you use this module, the request class will be changed to
+    Catalyst::Request::REST.
 
-    If we do not have (or cannot run) a serializer for a given content-type,
-    a 415 "Unsupported Media Type" error is generated.
-
-    To make your Controller RESTful, simply have it
-
-      use base 'Catalyst::Controller::REST'; 
-
-SERIALIZATION
-    Catalyst::Controller::REST will automatically serialize your responses,
-    and deserialize any POST, PUT or OPTIONS requests. It evaluates which
-    serializer to use by mapping a content-type to a Serialization module.
-    We select the content-type based on:
-
-    The Content-Type Header
-      If the incoming HTTP Request had a Content-Type header set, we will
-      use it.
-
-    The content-type Query Parameter
-      If this is a GET request, you can supply a content-type query
-      parameter.
-
-    Evaluating the Accept Header
-      Finally, if the client provided an Accept header, we will evaluate it
-      and use the best-ranked choice.
-
-AVAILABLE SERIALIZERS
-    A given serialization mechanism is only available if you have the
-    underlying modules installed. For example, you can't use XML::Simple if
-    it's not already installed.
-
-    In addition, each serializer has it's quirks in terms of what sorts of
-    data structures it will properly handle. Catalyst::Controller::REST
-    makes no attempt to svae you from yourself in this regard. :)
-
-    "text/x-yaml" => "YAML::Syck"
-      Returns YAML generated by YAML::Syck.
-
-    "text/html" => "YAML::HTML"
-      This uses YAML::Syck and URI::Find to generate YAML with all URLs
-      turned to hyperlinks. Only useable for Serialization.
-
-    "text/x-json" => "JSON::Syck"
-      Uses JSON::Syck to generate JSON output
-
-    "text/x-data-dumper" => "Data::Serializer"
-      Uses the Data::Serializer module to generate Data::Dumper output.
-
-    "text/x-data-denter" => "Data::Serializer"
-      Uses the Data::Serializer module to generate Data::Denter output.
-
-    "text/x-data-taxi" => "Data::Serializer"
-      Uses the Data::Serializer module to generate Data::Taxi output.
-
-    "application/x-storable" => "Data::Serializer"
-      Uses the Data::Serializer module to generate Storable output.
-
-    "application/x-freezethaw" => "Data::Serializer"
-      Uses the Data::Serializer module to generate FreezeThaw output.
-
-    "text/x-config-general" => "Data::Serializer"
-      Uses the Data::Serializer module to generate Config::General output.
-
-    "text/x-php-serialization" => "Data::Serializer"
-      Uses the Data::Serializer module to generate PHP::Serialization
-      output.
-
-    "text/xml" => "XML::Simple"
-      Uses XML::Simple to generate XML output. This is probably not suitable
-      for any real heavy XML work. Due to XML::Simples requirement that the
-      data you serialize be a HASHREF, we transform outgoing data to be in
-      the form of:
-
-        { data => $yourdata }
-
-    View
-      Uses a regular Catalyst view. For example, if you wanted to have your
-      "text/html" and "text/xml" views rendered by TT:
-
-              'text/html' => [ 'View', 'TT' ],
-              'text/xml'  => [ 'View', 'XML' ],
-        
-      Will do the trick nicely.
-
-    By default, Catalyst::Controller::REST will return a "415 Unsupported
-    Media Type" response if an attempt to use an unsupported content-type is
-    made. You can ensure that something is always returned by setting the
-    "default" config option:
-
-       __PACKAGE__->config->{'serialize'}->{'default'} = 'text/x-yaml';
-
-    Would make it always fall back to the serializer plugin defined for
-    text/x-yaml.
-
-    Implementing new Serialization formats is easy! Contributions are most
-    welcome! See Catalyst::Action::Serialize and
-    Catalyst::Action::Deserialize for more information.
-
-CUSTOM SERIALIZERS
-    If you would like to implement a custom serializer, you should create
-    two new modules in the Catalyst::Action::Serialize and
-    Catalyst::Action::Deserialize namespace. Then assign your new class to
-    the content-type's you want, and you're done.
-
-STATUS HELPERS
-    Since so much of REST is in using HTTP, we provide these Status Helpers.
-    Using them will ensure that you are responding with the proper codes,
-    headers, and entities.
-
-    These helpers try and conform to the HTTP 1.1 Specification. You can
-    refer to it at: <http://www.w3.org/Protocols/rfc2616/rfc2616.txt>. These
-    routines are all implemented as regular subroutines, and as such require
-    you pass the current context ($c) as the first argument.
-
-    status_ok
-        Returns a "200 OK" response. Takes an "entity" to serialize.
-
-        Example:
-
-          $self->status_ok(
-            $c, 
-            entity => {
-                radiohead => "Is a good band!",
-            }
-          );
-
-    status_created
-        Returns a "201 CREATED" response. Takes an "entity" to serialize,
-        and a "location" where the created object can be found.
-
-        Example:
-
-          $self->status_created(
-            $c, 
-            location => $c->req->uri->as_string,
-            entity => {
-                radiohead => "Is a good band!",
-            }
-          );
-
-        In the above example, we use the requested URI as our location. This
-        is probably what you want for most PUT requests.
-
-    status_accepted
-        Returns a "202 ACCEPTED" response. Takes an "entity" to serialize.
-
-        Example:
-
-          $self->status_accepted(
-            $c, 
-            entity => {
-                status => "queued",
-            }
-          );
-
-    status_bad_request
-        Returns a "400 BAD REQUEST" response. Takes a "message" argument as
-        a scalar, which will become the value of "error" in the serialized
-        response.
-
-        Example:
-
-          $self->status_bad_request(
-            $c, 
-            message => "Cannot do what you have asked!",
-          );
-
-    status_not_found
-        Returns a "404 NOT FOUND" response. Takes a "message" argument as a
-        scalar, which will become the value of "error" in the serialized
-        response.
-
-        Example:
-
-          $self->status_not_found(
-            $c, 
-            message => "Cannot find what you were looking for!",
-          );
-
-MANUAL RESPONSES
-    If you want to construct your responses yourself, all you need to do is
-    put the object you want serialized in $c->stash->{'rest'}.
-
-IMPLEMENTATION DETAILS
-    This Controller ties together Catalyst::Action::REST,
-    Catalyst::Action::Serialize and Catalyst::Action::Deserialize. It should
-    be suitable for most applications. You should be aware that it:
-
-    Configures the Serialization Actions
-        This class provides a default configuration for Serialization. It is
-        currently:
-
-          __PACKAGE__->config(
-              serialize => {
-                 'stash_key' => 'rest',
-                 'map'       => {
-                    'text/html'          => 'YAML::HTML',
-                    'text/xml'           => 'XML::Simple',
-                    'text/x-yaml'        => 'YAML',
-                    'text/x-json'        => 'JSON',
-                    'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ],
-                    'text/x-data-denter' => [ 'Data::Serializer', 'Data::Denter' ],
-                    'text/x-data-taxi'   => [ 'Data::Serializer', 'Data::Taxi'   ],
-                    'application/x-storable'    => [ 'Data::Serializer', 'Storable'     
-        ],
-                    'application/x-freezethaw'  => [ 'Data::Serializer', 'FreezeThaw'   
-        ],
-                    'text/x-config-general' => [ 'Data::Serializer', 'Config::General' ]
-        ,
-                    'text/x-php-serialization' => [ 'Data::Serializer', 'PHP::Serialization' ],
-                  },
-              }
-          );
-
-        You can read the full set of options for this configuration block in
-        Catalyst::Action::Serialize.
-
-    Sets a "begin" and "end" method for you
-        The "begin" method uses Catalyst::Action::Deserialize. The "end"
-        method uses Catalyst::Action::Serialize. If you want to override
-        either behavior, simply implement your own "begin" and "end" actions
-        and use MRO::Compat:
-
-          my Foo::Controller::Monkey;
-          use base qw(Catalyst::Controller::REST);
-
-          sub begin :Private {
-            my ($self, $c) = @_;
-            ... do things before Deserializing ...            
-            $self->maybe::next::method($c);
-            ... do things after Deserializing ...
-          } 
-
-          sub end :Private {
-            my ($self, $c) = @_;
-            ... do things before Serializing ...            
-            $self->maybe::next::method($c);
-            ... do things after Serializing ...
-          }
-
-A MILD WARNING
-        I have code in production using Catalyst::Controller::REST. That
-        said, it is still under development, and it's possible that things
-        may change between releases. I promise to not break things
-        unneccesarily. :)
+METHODS
+    dispatch
+        This method overrides the default dispatch mechanism to the
+        re-dispatching mechanism described above.
 
 SEE ALSO
-        Catalyst::Action::REST, Catalyst::Action::Serialize,
-        Catalyst::Action::Deserialize
+    You likely want to look at Catalyst::Controller::REST, which implements
+    a sensible set of defaults for a controller doing REST.
 
-        For help with REST in general:
+    Catalyst::Action::Serialize, Catalyst::Action::Deserialize
 
-        The HTTP 1.1 Spec is required reading.
-        http://www.w3.org/Protocols/rfc2616/rfc2616.txt
+TROUBLESHOOTING
+    Q: I'm getting a "415 Unsupported Media Type" error. What gives?!
+        A: Most likely, you haven't set Content-type equal to
+        "application/json", or one of the accepted return formats. You can
+        do this by setting it in your query accepted return formats. You can
+        do this by setting it in your query string thusly:
+        "?content-type=application%2Fjson (where %2F == / uri escaped)."
 
-        Wikipedia!
-        http://en.wikipedia.org/wiki/Representational_State_Transfer
-
-        The REST Wiki: http://rest.blueoxen.net/cgi-bin/wiki.pl?FrontPage
+        NOTE Apache will refuse %2F unless configured otherwise. Make sure
+        "AllowEncodedSlashes On" is in your httpd.conf file in order for
+        this to run smoothly.
 
 AUTHOR
-        Adam Jacob <adam at stalecoffee.org>, with lots of help from mst and
-        jrockway
+    Adam Jacob <adam at stalecoffee.org>, with lots of help from mst and
+    jrockway
 
-        Marchex, Inc. paid me while I developed this module.
-        (http://www.marchex.com)
+    Marchex, Inc. paid me while I developed this module.
+    (<http://www.marchex.com>)
+
+CONTRIBUTORS
+    Arthur Axel "fREW" Schmidt <frioux at gmail.com>
+
+    Christopher Laco
+
+    Luke Saunders
+
+    John Goulah
+
+    Daisuke Maki <daisuke at endeworks.jp>
+
+    J. Shirley <jshirley at gmail.com>
+
+    Hans Dieter Pearcey
+
+    Tomas Doran (t0m) <bobtfish at bobtfish.net>
+
+COPYRIGHT
+    Copyright the above named AUTHOR and CONTRIBUTORS
 
 LICENSE
-        You may distribute this code under the same terms as Perl itself.
+    You may distribute this code under the same terms as Perl itself.
 

Modified: trunk/libcatalyst-action-rest-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libcatalyst-action-rest-perl/debian/changelog?rev=51145&op=diff
==============================================================================
--- trunk/libcatalyst-action-rest-perl/debian/changelog (original)
+++ trunk/libcatalyst-action-rest-perl/debian/changelog Sun Jan 17 18:39:31 2010
@@ -1,3 +1,9 @@
+libcatalyst-action-rest-perl (0.81-1) UNRELEASED; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Yu <jawnsy at cpan.org>  Sun, 17 Jan 2010 13:45:42 -0500
+
 libcatalyst-action-rest-perl (0.80-1) unstable; urgency=low
 
   * Initial Release. (Closes: #531330)

Modified: trunk/libcatalyst-action-rest-perl/lib/Catalyst/Action/REST.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libcatalyst-action-rest-perl/lib/Catalyst/Action/REST.pm?rev=51145&op=diff
==============================================================================
--- trunk/libcatalyst-action-rest-perl/lib/Catalyst/Action/REST.pm (original)
+++ trunk/libcatalyst-action-rest-perl/lib/Catalyst/Action/REST.pm Sun Jan 17 18:39:31 2010
@@ -10,7 +10,7 @@
 
 BEGIN { require 5.008001; }
 
-our $VERSION = '0.80';
+our $VERSION = '0.81';
 $VERSION = eval $VERSION;
 
 sub new {

Modified: trunk/libcatalyst-action-rest-perl/lib/Catalyst/Controller/REST.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libcatalyst-action-rest-perl/lib/Catalyst/Controller/REST.pm?rev=51145&op=diff
==============================================================================
--- trunk/libcatalyst-action-rest-perl/lib/Catalyst/Controller/REST.pm (original)
+++ trunk/libcatalyst-action-rest-perl/lib/Catalyst/Controller/REST.pm Sun Jan 17 18:39:31 2010
@@ -2,7 +2,7 @@
 use Moose;
 use namespace::autoclean;
 
-our $VERSION = '0.80';
+our $VERSION = '0.81';
 $VERSION = eval $VERSION;
 
 =head1 NAME
@@ -146,6 +146,10 @@
 L<JSON::XS> installed.  The C<text/x-json> content type is supported but is
 deprecated and you will receive warnings in your log.
 
+=item * C<text/javascript> => C<JSONP>
+
+If a callback=? parameter is passed, this returns javascript in the form of: $callback($serializedJSON);
+
 =item * C<text/x-data-dumper> => C<Data::Serializer>
 
 Uses the L<Data::Serializer> module to generate L<Data::Dumper> output.
@@ -268,6 +272,9 @@
         'text/x-yaml'        => 'YAML',
         'application/json'   => 'JSON',
         'text/x-json'        => 'JSON',
+        'application/x-javascript'  => 'JSONP',
+        'application/javascript'    => 'JSONP',
+        'text/javascript'    => 'JSONP',
         'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ],
         'text/x-data-denter' => [ 'Data::Serializer', 'Data::Denter' ],
         'text/x-data-taxi'   => [ 'Data::Serializer', 'Data::Taxi'   ],
@@ -502,6 +509,9 @@
          'text/x-yaml'        => 'YAML',
          'application/json'   => 'JSON',
          'text/x-json'        => 'JSON',
+         'application/x-javascript' => 'JSONP',
+         'application/javascript'   => 'JSONP',
+         'text/javascript'    => 'JSONP',
          'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ],
          'text/x-data-denter' => [ 'Data::Serializer', 'Data::Denter' ],
          'text/x-data-taxi'   => [ 'Data::Serializer', 'Data::Taxi'   ],

Modified: trunk/libcatalyst-action-rest-perl/lib/Catalyst/Request/REST.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libcatalyst-action-rest-perl/lib/Catalyst/Request/REST.pm?rev=51145&op=diff
==============================================================================
--- trunk/libcatalyst-action-rest-perl/lib/Catalyst/Request/REST.pm (original)
+++ trunk/libcatalyst-action-rest-perl/lib/Catalyst/Request/REST.pm Sun Jan 17 18:39:31 2010
@@ -52,67 +52,19 @@
 
 =head1 DESCRIPTION
 
-This is a subclass of C<Catalyst::Request> that adds a few methods to
-the request object to faciliate writing REST-y code. Currently, these
-methods are all related to the content types accepted by the client.
+This is a subclass of C<Catalyst::Request> that applies the
+L<Catalyst::TraitFor::Request::REST> which adds a few methods to
+the request object to faciliate writing REST-y code.
 
-Note that if you have a custom request class in your application, and it does
-not inherit from C<Catalyst::Request::REST>, your application will fail with an
-error indicating a conflict the first time it tries to use
-C<Catalyst::Request::REST>'s functionality.  To fix this error, make sure your
-custom request class inherits from C<Catalyst::Request::REST>.
+This class is only here for backwards compatibility with applications
+already subclassing this class.
 
-=head1 METHODS
+L<Catalyst::Action::REST> and L<Catalyst::Controller::REST> will arrange
+for the request trait to be applied if needed.
 
-=over
+=head1 SEE ALSO
 
-=item data
-
-If the request went through the Deserializer action, this method will
-return the deserialized data structure.
-
-=item accepted_content_types
-
-Returns an array reference of content types accepted by the
-client.
-
-The list of types is created by looking at the following sources:
-
-=over 8
-
-=item * Content-type header
-
-If this exists, this will always be the first type in the list.
-
-=item * content-type parameter
-
-If the request is a GET request and there is a "content-type"
-parameter in the query string, this will come before any types in the
-Accept header.
-
-=item * Accept header
-
-This will be parsed and the types found will be ordered by the
-relative quality specified for each type.
-
-=back
-
-If a type appears in more than one of these places, it is ordered based on
-where it is first found.
-
-=item preferred_content_type
-
-This returns the first content type found. It is shorthand for:
-
-  $request->accepted_content_types->[0]
-
-=item accepts($type)
-
-Given a content type, this returns true if the type is accepted.
-
-Note that this does not do any wildcard expansion of types.
-
-=back
+L<Catalyst::TraitFor::Request::REST>.
 
 =head1 AUTHORS
 

Modified: trunk/libcatalyst-action-rest-perl/lib/Catalyst/TraitFor/Request/REST.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libcatalyst-action-rest-perl/lib/Catalyst/TraitFor/Request/REST.pm?rev=51145&op=diff
==============================================================================
--- trunk/libcatalyst-action-rest-perl/lib/Catalyst/TraitFor/Request/REST.pm (original)
+++ trunk/libcatalyst-action-rest-perl/lib/Catalyst/TraitFor/Request/REST.pm Sun Jan 17 18:39:31 2010
@@ -63,3 +63,86 @@
 }
 
 1;
+__END__
+
+=head1 NAME
+
+Catalyst::TraitFor::Request::REST - A role to apply to Catalyst::Request giving it REST methods and attributes.
+
+=head1 SYNOPSIS
+
+     if ( $c->request->accepts('application/json') ) {
+         ...
+     }
+
+     my $types = $c->request->accepted_content_types();
+
+=head1 DESCRIPTION
+
+This is a L<Moose::Role> applied to L<Catalyst::Request> that adds a few
+methods to the request object to faciliate writing REST-y code.
+Currently, these methods are all related to the content types accepted by
+the client.
+
+=head1 METHODS
+
+=over
+
+=item data
+
+If the request went through the Deserializer action, this method will
+return the deserialized data structure.
+
+=item accepted_content_types
+
+Returns an array reference of content types accepted by the
+client.
+
+The list of types is created by looking at the following sources:
+
+=over 8
+
+=item * Content-type header
+
+If this exists, this will always be the first type in the list.
+
+=item * content-type parameter
+
+If the request is a GET request and there is a "content-type"
+parameter in the query string, this will come before any types in the
+Accept header.
+
+=item * Accept header
+
+This will be parsed and the types found will be ordered by the
+relative quality specified for each type.
+
+=back
+
+If a type appears in more than one of these places, it is ordered based on
+where it is first found.
+
+=item preferred_content_type
+
+This returns the first content type found. It is shorthand for:
+
+  $request->accepted_content_types->[0]
+
+=item accepts($type)
+
+Given a content type, this returns true if the type is accepted.
+
+Note that this does not do any wildcard expansion of types.
+
+=back
+
+=head1 AUTHORS
+
+See L<Catalyst::Action::REST> for authors.
+
+=head1 LICENSE
+
+You may distribute this code under the same terms as Perl itself.
+
+=cut
+




More information about the Pkg-perl-cvs-commits mailing list