From 90a93eb2cbbd8656fd5a2284dfc7110bc3267da6 Mon Sep 17 00:00:00 2001 From: Charles McGarvey Date: Sun, 15 Mar 2020 18:27:41 -0600 Subject: [PATCH] rename class attribute to transport_class --- lib/GraphQL/Client.pm | 33 +++++++++++++++++---------------- t/client.t | 8 ++++---- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/lib/GraphQL/Client.pm b/lib/GraphQL/Client.pm index edbb64e..ff8f720 100644 --- a/lib/GraphQL/Client.pm +++ b/lib/GraphQL/Client.pm @@ -83,15 +83,15 @@ sub url { $self->{url}; } -sub class { +sub transport_class { my $self = shift; - $self->{class}; + $self->{transport_class}; } sub transport { my $self = shift; $self->{transport} //= do { - my $class = $self->_transport_class; + my $class = $self->_autodetermine_transport_class; eval { load $class }; if ((my $err = $@) || !$class->can('execute')) { $err ||= "Loaded $class, but it doesn't look like a proper transport.\n"; @@ -116,15 +116,16 @@ sub _url_protocol { return $protocol; } -sub _transport_class { +sub _autodetermine_transport_class { my $self = shift; - return _expand_class($self->{class}) if $self->{class}; + my $class = $self->transport_class; + return _expand_class($class) if $class; my $protocol = $self->_url_protocol; _croak 'Failed to determine transport from URL' if !$protocol; - my $class = lc($protocol); + $class = lc($protocol); $class =~ s/[^a-z]/_/g; return _expand_class($class); @@ -247,25 +248,25 @@ Note: Setting the L attribute affects the response shape. The URL of a GraphQL endpoint, e.g. C<"http://myapiserver/graphql">. -=attr class +=attr unpack -The package name of a transport. +Whether or not to "unpack" the response, which enables a different style for error-handling. -By default this is automatically determined from the protocol portion of the L. +Default is 0. -=attr transport +See L. -The transport object. +=attr transport_class -By default this is automatically constructed based on the L. +The package name of a transport. -=attr unpack +This is optional if the correct transport can be correctly determined from the L. -Whether or not to "unpack" the response, which enables a different style for error-handling. +=attr transport -Default is 0. +The transport object. -See L. +By default this is automatically constructed based on L or L. =head1 ERROR HANDLING diff --git a/t/client.t b/t/client.t index 4775b70..1dd0cd4 100755 --- a/t/client.t +++ b/t/client.t @@ -14,14 +14,14 @@ use GraphQL::Client; use MockTransport; subtest 'transport' => sub { - my $client = GraphQL::Client->new(class => 'http'); - isa_ok($client->transport, 'GraphQL::Client::http', 'decide transport from class'); + my $client = GraphQL::Client->new(transport_class => 'http'); + isa_ok($client->transport, 'GraphQL::Client::http', 'decide transport from transport_class'); $client = GraphQL::Client->new(url => 'https://localhost:4000/graphql'); isa_ok($client->transport, 'GraphQL::Client::http', 'decide transport from url'); - $client = GraphQL::Client->new(class => 'not a real class'); - is($client->class, 'not a real class', 'class constructor works'); + $client = GraphQL::Client->new(transport_class => 'not a real class'); + is($client->transport_class, 'not a real class', 'transport_class constructor works'); throws_ok { $client->transport } qr/^Failed to load transport/, 'throws if invalid transport'; }; -- 2.45.2