ActiveJson

Gem Version Code Climate

Easy JSON storage.

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 Hash 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

  1. Fork it (https://github.com/droptheplot/active_json/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 new Pull Request

License

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