data_paths
Description
DataPaths is a library to manage the paths of directories containing static-content across multiple libraries.
For example, DataPaths can manage the data/
directories of
multiple RubyGems, in much the same way RubyGems manages the paths of
lib/
directories using $LOAD_PATH
.
Features
- Allows libraries to register static-content directories using the
register_data_path
class or instance method. - Allows libraries to unregister a single path using
unregister_data_path
or all paths registered by that library withunregister_data_paths
. - Provides helper methods in DataPaths::Finders for searching through the registered static-content directories.
- Does not use global variables.
Examples
Register a directory containing static-content:
require 'data_paths'
module MyLibrary
include DataPaths
# define the data dir(s)
register_data_path File.join(File.dirname(__FILE__),'..','..','data')
end
List previously registered static-content directories:
# all data directories
DataPaths.paths
# => [...]
# the data directories registeed in MyLibrary
MyLibrary.data_paths
# => [...]
# list data directories registered in an object
lib = MyLibrary.new
lib.register_data_path File.join('path','to','data')
lib.data_paths
# => [...]
Using DataPaths::Finders to access content from within the static-content directories:
module MyLibrary
class UsesContent
include DataPaths::Finders
def index
find_data_file('index.html')
end
def file_dirs
all_data_dirs('extra')
end
end
end
Install
$ gem install data_paths
Copyright
Copyright (c) 2011-2012 Hal Brodigan
See LICENSE for license information.