use File::KDBX::Constants qw(:magic :header :version);
use File::KDBX::Error;
-use File::KDBX::Util qw(:io);
+use File::KDBX::Util qw(:class :io);
use File::KDBX;
use IO::Handle;
use Module::Load ();
=method load
+ $kdbx = File::KDBX::Loader->load(\$string, %options);
$kdbx = File::KDBX::Loader->load(\$string, $key);
+ $kdbx = File::KDBX::Loader->load(*IO, %options);
$kdbx = File::KDBX::Loader->load(*IO, $key);
+ $kdbx = File::KDBX::Loader->load($filepath, %options);
$kdbx = File::KDBX::Loader->load($filepath, $key);
- $kdbx = $loader->load(...); # also instance method
-Load a KDBX file.
+Load a KDBX file. This works as an instance or a class method. The C<$key> is either
+a L<File::KDBX::Key> or a primitive castable to a Key object. Available options:
-The C<$key> is either a L<File::KDBX::Key> or a primitive that can be converted to a Key object.
+=for :list
+* C<key> - Alternative way to specify C<$key>
=cut
=method load_string
+ $kdbx = File::KDBX::Loader->load_string($string, %options);
$kdbx = File::KDBX::Loader->load_string($string, $key);
+ $kdbx = File::KDBX::Loader->load_string(\$string, %options);
$kdbx = File::KDBX::Loader->load_string(\$string, $key);
- $kdbx = $loader->load_string(...); # also instance method
-Load a KDBX file from a string / memory buffer.
+Load a KDBX file from a string / memory buffer. This works as an instance or class method. Available options:
+
+=for :list
+* C<key> - Alternative way to specify C<$key>
=cut
=method load_file
+ $kdbx = File::KDBX::Loader->load_file($filepath, %options);
$kdbx = File::KDBX::Loader->load_file($filepath, $key);
- $kdbx = $loader->load_file(...); # also instance method
-Read a KDBX file from a filesystem.
+Read a KDBX file from a filesystem. This works as an instance or class method. Available options:
+
+=for :list
+* C<key> - Alternative way to specify C<$key>
=cut
=method load_handle
+ $kdbx = File::KDBX::Loader->load_handle($fh, %options);
$kdbx = File::KDBX::Loader->load_handle($fh, $key);
+ $kdbx = File::KDBX::Loader->load_handle(*IO, %options);
$kdbx = File::KDBX::Loader->load_handle(*IO, $key);
- $kdbx->load_handle(...); # also instance method
-Read a KDBX file from an input stream / file handle.
+Read a KDBX file from an input stream / file handle. This works as an instance or class method. Available
+options:
+
+=for :list
+* C<key> - Alternative way to specify C<$key>
=cut
* C<XML>
* C<Raw>
-=cut
-
-sub format { $_[0]->{format} }
-
=attr inner_format
Get the format of the data inside the KDBX envelope. This only applies to C<V3> and C<V4> formats. Possible
=for :list
* C<XML> - Read the database groups and entries as XML (default)
-* C<Raw> - Read parsing and store the result in L<File::KDBX/raw>
-
-=cut
-
-sub inner_format { $_[0]->{inner_format} // 'XML' }
-
-=attr min_version
-
- $min_version = File::KDBX::Loader->min_version;
-
-Get the minimum KDBX file version supported, which is 3.0 or C<0x00030000> as
-it is encoded.
-
-To read older KDBX files unsupported by this module, try L<File::KeePass>.
+* C<Raw> - Read and store the result in L<File::KDBX/raw> without parsing
=cut
-sub min_version { KDBX_VERSION_OLDEST }
+has format => undef, is => 'ro';
+has inner_format => 'XML', is => 'ro';
=method read_magic_numbers