JSAN::Index - JavaScript Archive Network Index SQLite/CDBI Interface
JSAN is the JavaScript Archive Network, a CPAN implementation for Javascript.
You can find the JSAN at http://openjsan.org.
As well as a flat text file index like CPAN, the JSAN index is also distributed as a SQLite database.
JSAN::Index is a Class::DBI wrapper built around the JSAN SQLite index.
JSAN::Index
It allow you to easily do all sorts of nifty things with the index in a simple and straight forward way.
This is currently only for the use of JSAN developers, as the index is still going through some amount of flux. It should not be used by outsiders until the index has stabilised a little and we assign a non-devel version
The JSAN::Index class itself currently contains a limited number of shortcut and utility methods.
The install_dependency method creates and returns a release-level dependency object that is used by JSAN::Client to schedule which releases to install.
install_dependency
Returns an Algorithm::Dependency object.
The JSAN::Index::CDBI class acts as a base class for the index and provides the integration with Class::DBI and JSAN::Transport.
JSAN::Index::CDBI
It has no user-servicable parts at this time.
This class provides objects for authors in the JSAN index.
In addition to the general methods provided by Class::DBI, it has the following methods
The login accessor returns the JSAN author code/login for the author.
login
The name accessor returns the full name of the author.
name
The doc accessor returns the root-relative documentation path for the author on any http://openjsan.org/ mirror.
doc
The email accessor returns the public email address for the author.
email
The url acessor returns the uri for the authors homepage as a string.
url
The releases method finds and retrieves all of the releases for an author.
releases
Returns a list of \JSAN::Index::Release objects.
JSAN::Index::Extractable provides a common base class for the various things that can be identified by a tarball and extracted to the local filesystem (or elsewhere).
For each of the methods, when called on a JSAN::Index::Release it extracts that release, when called on a JSAN::Index::Distribution extracts from the most recent release, and when call on a JSAN::Index::Library extracts the release that the library is contained in (according to the indexer).
JSAN::Index::Release
JSAN::Index::Distribution
JSAN::Index::Library
The extract_libs method will extract the libraries for a release (i.e. the contents of the lib directory> to the local filesystem.
extract_libs
lib
Returns the number of files extracted, or dies on error.
The extract_tests method will extract the test scripts for a release (i.e. the contents of the tests directory> to the local filesystem.
extract_tests
tests
All JSAN tarballs contain a number of standard "resource" directories. The most common of these is the 'lib' resource.
It takes named parameters to control its behaviour.
The to parameter specifies the destination for the files to be extracted to. When passed as a single string, this is taken to be a directory on the local host.
to
No other destination options other than the local filesystem are available at this time, but more destination options are expected at a later date.
This class provides objects for the various libraries in the JSAN.
The name accessor returns the name (possibly including the use of pseudo-namespaces) of the library. e.g. "Test.Simple.Container.Browser"
The release method returns the \JSAN::Index::Release object for the release that the library is defined in.
release
The version accessor returns the version of the library.
version
The doc accessor returns the root-relative location of the documentation for this library on the http://openjsan.org/ website.
The distribution method is a shortcut for $library->release->distribution and returns the \JSAN::Index::Distribution for the distribution that this library is of.
distribution
$library->release->distribution
This class provides objects for named distributions in the JSAN index.
The name accessor returns the name of the distribution.
The doc accessor returns the root-relative location of the documentation for this distribution on the http://openjsan.org/ website.
The releases method finds and retrieves all of the releases of the distribution.
This class provides objects for a single release of a distribution by an author
The id accessor returns the unique identifier for the release (an integer)
id
The source access returns the root-relative path within a JSAN mirror that the package can be found at.
source
The distribution method returns the \JSAN::Index::Distribution for the distribution that this release is of.
The author method returns the \JSAN::Index::Author for the JSAN author that uploaded the release.
author
The version accessor returns the version of the release.
The created accessor returns the time that the release was received and first indexed by the JSAN upload server.
created
Returns an integer in unix epoch time.
The doc accessor returns the root-relative location of the documentation for this release on the http://openjsan.org/ website.
The meta accessor returns the actual content of the META.yml file that came with the distribution.
meta
META.yml
The checksum accessor returns the MD5 checksum for the release tarball.
checksum
The latest accessor returns a boolean flag indicating if the release is the most recent release of the distribution.
latest
The requires method finds the set of run-time library dependencies for this release, as identified in the META.yml data contained in the index.
requires
Returns a reference to a HASH where the key is the name of a library as a string, and the value is the version for the dependency (or zero if the dependency is not for a specific version).
The requires_libraries method returns a list of the JSAN::Index::Library dependencies as identified by the META.yml file for the release.
requires_libraries
The requires_releases method returns a list of the JSAN::Index::Release dependencies based on the dependencies specified in the META.yml file for the release.
requires_releases
The meta_data method loads and deserialises the META.yml content contained in the index (and returned by the meta method above).
meta_data
The mirror method fetches the tarball from your JSAN currently configured JSAN mirror as determined by JSAN::Transport (if not already cached).
mirror
Returns a file path to the tarball on the local machine, or may emit an exception thrown by the underlying JSAN::Transport functions.
The file_mirrored method checks to see if the release tarball has previously been downloaded to the local mirror.
file_mirrored
Returns true if the file exists in the local mirror, or false if not.
The file_path method returns the location on the local disk where the release tarball should be, if mirrored.
file_path
The archive method returns the release as an in-memory archive. Depending on the type, this should be either a Archive::Tar or an Archive::Zip object.
archive
- Add the testing dependency algorithm variant
- Add support for JSON META.yml files
- Add verbose support
Bugs should be reported via the CPAN bug tracker at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=JSAN-Client
For other issues, contact the author.
Adam Kennedy <cpan@ali.as>, http://ali.as/
Copyright 2005 Adam Kennedy. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
To install JSAN::Client, copy and paste the appropriate command in to your terminal.
cpanm
cpanm JSAN::Client
CPAN shell
perl -MCPAN -e shell install JSAN::Client
For more information on module installation, please visit the detailed CPAN module installation guide.