Load/Overload YAML/JSON file(s) into desired constant.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
examples
lib
spec
.gitignore
.rspec
.travis.yml
CHANGELOG.md
Gemfile
Gemfile.lock
LICENSE.txt
README.md
Rakefile
load_file.gemspec

README.md

LoadFile

Gem Version Build Status inch-ci.org doc badge

Load/Overload YAML/JSON file(s) into desired constant.

Installation

Add this line to your application's Gemfile:

gem "load_file"

Usage

LoadFile.load(file: "examples/.travis.yml", constant: :TravisConfig)

# now you can access TravisConfig for configs in examples/.travis.yml
TravisConfig
=> {"sudo"=>false, "language"=>"ruby", "cache"=>"bundler", "rvm"=>["2.5.1"]}

LoadFile.load(file: "examples/app.json", constant: :HerokuApp)

# now you can access HerokuApp for configs in examples/app.json
HerokuApp
=> {"name"=>"Small Sharp Tool",
  ...
  "environments"=>{"test"=>{"scripts"=>{"test"=>"bundle exec rake test"}}}}

You can also load into a namespaced constant:

LoadFile.load(file: "examples/app.json", constant: :App, namespace: Heroku)

# Heroku::App will be the hash loaded from examples/app.json

The caveat here is the keyword argument namespace must be a ruby object.

Or should I introduce constantize? Please let me know.

What if I want to override existing constant?

Use overload APIs.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/JuanitoFatas/load_file.

License

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