BinaryModeBuilder.pm 587 B

12345678910111213141516171819202122232425262728
  1. package Selenium::BinaryModeBuilder;
  2. # ABSTRACT: Role to teach a class how to enable its binary
  3. use Selenium::Binary qw/start_binary_on_port/;
  4. use Try::Tiny;
  5. use Moo::Role;
  6. use namespace::clean;
  7. sub _build_binary_mode {
  8. my ($self) = @_;
  9. if (! $self->has_remote_server_addr && ! $self->has_port) {
  10. try {
  11. my $port = start_binary_on_port($self->binary_name, $self->binary_port);
  12. $self->port($port);
  13. return 1;
  14. }
  15. catch {
  16. warn $_;
  17. return 0;
  18. }
  19. }
  20. else {
  21. return 0;
  22. }
  23. }
  24. 1;