Sha256: 71f10784314371e5b337a37751b3f40fb3aa28815228331352308e2619cf0ff8

Contents?: true

Size: 578 Bytes

Versions: 3

Compression:

Stored size: 578 Bytes

Contents

# -*- encoding: utf-8 -*-
require 'cinch/storage/version'
require 'psych'

module Cinch
  # Addon for Cinch to allow for simple YAML storage of data
  class Storage
    attr_accessor :filename, :data

    def initialize(file, init = {})
      @filename = file
      @data = Psych.load(File.open(@filename)) if File.exist?(@filename)
      @data ||= init
    end

    def save
      File.open(@filename, 'w') do |file|
        Psych.dump(@data, file)
      end
    end

    def synced_save(bot = @bot)
      bot.synchronize(@filename) do
        save
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cinch-storage-1.2.1 lib/cinch/storage.rb
cinch-storage-1.2.0 lib/cinch/storage.rb
cinch-storage-1.1.0 lib/cinch/storage.rb