Pansophy

Gem Version Build Status Coverage Status Dependency Status Code Climate

Pansophy allows different applications to share knowledge via a centralised remote repository

The current version only works with AWS S3 buckets and allows:

  • pulling a remote directory to a local directory
  • merging a remote directory with a local directory
  • pushing a local directory to a remote directory
  • reading the contents of a remote file

Installation

Add this line to your application's Gemfile:

gem 'pansophy'

And then execute:

$ bundle

Or install it yourself as:

$ gem install pansophy

Usage

To pull a remote directory to a local directory

# Pass overwrite: true to entirely replace the local directory.
Pansophy.pull('bucket_name', 'remote_directory', 'local_directory', overwrite: true)

To merge a remote directory with a local directory

# Pass overwrite: true to entirely replace the remote directory.
Pansophy.merge('bucket_name', 'remote_directory', 'local_directory', overwrite: true)

To push a local directory to a remote directory

# Pass overwrite: true to overwrite local files with remote files.
# Local files without a corresponding remote file remain untouched.
Pansophy.push('bucket_name', 'remote_directory', 'local_directory', overwrite: true)

To read the contents of a remote file

Pansophy.read('bucket_name', 'remote_file_path')

To read the head of a remote file

Pansophy.head('bucket_name', 'remote_file_path')

Development

After checking out the repo, run bin/setup to install dependencies. Then, run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

  1. Fork it ( https://github.com/sealink/pansophy/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request