Project

save_me

0.0
No commit activity in last 3 years
No release in over 3 years
Store your results file in a neat file structure
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.14
>= 0
>= 0
>= 0
~> 10.0
>= 0

Runtime

 Project Readme

SaveMe

SaveMe is a gem to store your data in an organized way. Let's say you have a script that saves the results in results file/folder and another run of this script (accidental or not) would overwrite your previous results. This is where SaveMe comes in. You put a one-liner in your code and your data is safe and organized.

Installation

Add this line to your application's Gemfile:

gem 'save_me'

And then execute:

$ bundle

Or install it yourself as:

$ gem install save_me

Usage

Put this line in your code before you run your script

SaveMe.call("path_to_what_you_want_to_copy", results_path: "./results", ymd: 0b110, params: { whatever: "you need here" })

First argument is a path to the file/folder you want to save.

Argument results_path(optional, default: "./") is a path to a folder where your results will be copied. If any directory in the path doesn't exist yet, it will be created by the gem.

Argument ymd(optional, default: 0b111) is the folder structure. Notice it's in binary format. Each 1 or 0 corresponds to a letter in the ymd.

  • y - year
  • m - month
  • d - day

A 1 creates a folder for a year/month/day, a 0 will put a year/month/day in the final folder name.

Examples:

  • 0b111
SaveMe.call("results", results_path: "archive", ymd: 0b111, params: { test: "test" })
archive/
└── 2017
    └── 4
        └── 3
            └── 10:16:18
                ├── params.json
                └── results
                    └── results.json
  • 0b110
SaveMe.call("results", results_path: "archive", ymd: 0b110, params: { test: "test" })
archive/
└── 2017
    └── 4
        └── 03_10:18:55
            ├── params.json
            └── results
                └── results.json

Argument params(optional, default: nil) will be saved as json file with your results so you don't need to remember what params were used to get those particular results.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/michal-januszkiewicz/save_me.

License

The gem is available as open source under the terms of the MIT License.