Sha256: 005b8c6862da0e52e0a870a6a703cf91327d71a55f99b691a6c8fe83f0370857

Contents?: true

Size: 561 Bytes

Versions: 7

Compression:

Stored size: 561 Bytes

Contents

require 'oj'
require 'multi_json'
require 'fileutils'

module Hookit
  class DB
    
    DEFAULT_PATH = '/var/db/hookit/db.json'

    def initialize(path=nil)
      @path = path || DEFAULT_PATH
    end

    def fetch(key)
      data[key]
    end

    def put(key, value)
      data[key] = value
      save
    end

    def load
      ::MultiJson.load(::File.read(@path)) rescue {}
    end

    def save
      ::FileUtils.mkdir_p(File.dirname(@path))
      ::File.write(@path, ::MultiJson.dump(data))
    end

    def data
      @data ||= load
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
hookit-0.11.1 lib/hookit/db.rb
hookit-0.11.0 lib/hookit/db.rb
hookit-0.10.0 lib/hookit/db.rb
hookit-0.9.2 lib/hookit/db.rb
hookit-0.9.0 lib/hookit/db.rb
hookit-0.8.0 lib/hookit/db.rb
hookit-0.7.11 lib/hookit/db.rb