ActiveJson
Easy JSON storage.
tl;dr
Access JSON like { "something": "otherthing" }
by MyDatabase.something
.
Installation
Add this line to your application's Gemfile:
gem 'active_json'
And then execute:
$ bundle
Or install it yourself as:
$ gem install active_json
Getting Started
- Create your
my_database.json
somewhere. - Define database module with
ActiveJson::Base
.
module MyDatabase
extend ActiveJson::Base
configure do |config|
config.path = 'path/to/my_database.json'
end
end
Usage
JSON
You can access your json as any ruby Object
or Array
. For example, if your database looks like this:
{
"website": "Mr. Buster Muller's Blog.",
"posts": [
{
"id": 1,
"title": "Sustainable twee kinfolk cronut williamsburg franzen.",
"published": true
},
{
"id": 2,
"title": "Marfa skateboard synth swag.",
"published": false
}
]
}
Then you can do something like this:
# Get website title
MyDatabase.website
# Iterate through posts
MyDatabase.posts each do |post|
puts post.title
end
Update
Update you database as you want:
MyDatabase.website
# => "Mr. Buster Muller's Blog."
MyDatabase.website = "Someone else's Blog."
MyDatabase.website
# => "Someone else's Blog."
Reload
If you changed something and don't want it anymore:
MyDatabase.website
# => "Mr. Buster Muller's Blog."
MyDatabase.website = "Someone else's Blog."
MyDatabase.website
# => "Someone else's Blog."
MyDatabase.reload
MyDatabase.website
# => "Mr. Buster Muller's Blog."
Save
Or save you changes into my_database.json
file:
MyDatabase.website
# => "Mr. Buster Muller's Blog."
MyDatabase.website = "Someone else's Blog."
MyDatabase.website
# => "Someone else's Blog."
MyDatabase.save
# => true
MyDatabase.reload
MyDatabase.website
# => "Someone else's Blog."
Contributing
- Fork it (https://github.com/droptheplot/active_json/fork)
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
License
The gem is available as open source under the terms of the MIT License.