Skip to content
DataPaths is a library to manage the paths to data/ directories within projects.
Ruby
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
spec
.gitignore
.specopts
.yardopts
ChangeLog.md
LICENSE.txt
README.md
Rakefile
data_paths.gemspec

README.md

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_dir class or instance method.
  • Allows libraries to unregister a single path using unregister_data_dir or all paths registered by that library with unregister_data_dirs.
  • 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_dir File.join(File.dirname(__FILE__),'..','..','data')
end

List previously registered static-content directories:

# all data directories
DataPaths.paths
# => #<Set: {...}>

# the data directories registeed in MyLibrary
MyLibrary.data_paths
# => #<Set: {...}>

# list data directories registered in an object
lib = MyLibrary.new
lib.register_data_dir File.join('path','to','data')

lib.data_paths
# => #<Set: {...}>

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:

$ sudo gem install data_paths

LICENSE:

See {file:LICENSE.txt} for license information.

Something went wrong with that request. Please try again.