Project

data_paths

0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
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`.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.4
~> 0.7
 Project Readme

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 with unregister_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 {file:LICENSE.txt} for license information.