Skip to content

Instantly share code, notes, and snippets.

@xaicron
Created March 8, 2013 08:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xaicron/5115018 to your computer and use it in GitHub Desktop.
Save xaicron/5115018 to your computer and use it in GitHub Desktop.
diff --git a/lib/Furl.pm b/lib/Furl.pm
index 85678ab..9b19860 100644
--- a/lib/Furl.pm
+++ b/lib/Furl.pm
@@ -15,17 +15,6 @@ sub new {
bless \(Furl::HTTP->new(header_format => Furl::HTTP::HEADERS_AS_HASHREF(), @_)), $class;
}
-{
- no strict 'refs';
- for my $meth (qw/get head post delete put/) {
- *{__PACKAGE__ . '::' . $meth} = sub {
- my $self = shift;
- local $Carp::CarpLevel = $Carp::CarpLevel + 1;
- Furl::Response->new(${$self}->$meth(@_));
- }
- }
-}
-
sub agent {
@_ == 2 ? ${$_[0]}->agent($_[1]) : ${$_[0]}->agent;
}
@@ -35,6 +24,53 @@ sub env_proxy {
$$self->env_proxy;
}
+sub get {
+ my ( $self, $url, $headers ) = @_;
+ $self->request(
+ method => 'GET',
+ url => $url,
+ headers => $headers
+ );
+}
+
+sub head {
+ my ( $self, $url, $headers ) = @_;
+ $self->request(
+ method => 'HEAD',
+ url => $url,
+ headers => $headers
+ );
+}
+
+sub post {
+ my ( $self, $url, $headers, $content ) = @_;
+ $self->request(
+ method => 'POST',
+ url => $url,
+ headers => $headers,
+ content => $content
+ );
+}
+
+sub put {
+ my ( $self, $url, $headers, $content ) = @_;
+ $self->request(
+ method => 'PUT',
+ url => $url,
+ headers => $headers,
+ content => $content
+ );
+}
+
+sub delete {
+ my ( $self, $url, $headers ) = @_;
+ $self->request(
+ method => 'DELETE',
+ url => $url,
+ headers => $headers
+ );
+}
+
sub request {
my $self = shift;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment