lib/imap/backup/configuration/store.rb in imap-backup-1.0.5 vs lib/imap/backup/configuration/store.rb in imap-backup-1.0.6

- old
+ new

@@ -1,70 +1,65 @@ # encoding: utf-8 require 'rubygems' if RUBY_VERSION < '1.9' require 'json' -module Imap - module Backup - module Configuration - class Store - CONFIGURATION_DIRECTORY = File.expand_path('~/.imap-backup') +module Imap::Backup::Configuration + class Store + CONFIGURATION_DIRECTORY = File.expand_path('~/.imap-backup') - attr_reader :data - attr_reader :path + attr_reader :data + attr_reader :path - def self.default_pathname - File.join(CONFIGURATION_DIRECTORY, 'config.json') - end + def self.default_pathname + File.join(CONFIGURATION_DIRECTORY, 'config.json') + end - def self.exist?(pathname = default_pathname) - File.exist?(pathname) - end + def self.exist?(pathname = default_pathname) + File.exist?(pathname) + end - def initialize(pathname = self.class.default_pathname) - @pathname = pathname - if File.directory?(path) - Imap::Backup::Utils.check_permissions path, 0700 - end - if File.exist?(@pathname) - Imap::Backup::Utils.check_permissions @pathname, 0600 - @data = JSON.parse(File.read(@pathname), :symbolize_names => true) - else - @data = {:accounts => []} - end - end + def initialize(pathname = self.class.default_pathname) + @pathname = pathname + if File.directory?(path) + Imap::Backup::Utils.check_permissions path, 0700 + end + if File.exist?(@pathname) + Imap::Backup::Utils.check_permissions @pathname, 0600 + @data = JSON.parse(File.read(@pathname), :symbolize_names => true) + else + @data = {:accounts => []} + end + end - def save - mkdir_private path - File.open(@pathname, 'w') { |f| f.write(JSON.pretty_generate(@data)) } - FileUtils.chmod 0600, @pathname - @data[:accounts].each do |account| - mkdir_private account[:local_path] - account[:folders].each do |f| - parts = f[:name].split('/') - p = account[:local_path].clone - parts.each do |part| - p = File.join(p, part) - mkdir_private p - end - end + def save + mkdir_private path + File.open(@pathname, 'w') { |f| f.write(JSON.pretty_generate(@data)) } + FileUtils.chmod 0600, @pathname + @data[:accounts].each do |account| + mkdir_private account[:local_path] + account[:folders].each do |f| + parts = f[:name].split('/') + p = account[:local_path].clone + parts.each do |part| + p = File.join(p, part) + mkdir_private p end end + end + end - def path - File.dirname(@pathname) - end + def path + File.dirname(@pathname) + end - private + private - def mkdir_private(path) - if ! File.directory?(path) - FileUtils.mkdir path - end - if Imap::Backup::Utils::stat(path) != 0700 - FileUtils.chmod 0700, path - end - end + def mkdir_private(path) + if ! File.directory?(path) + FileUtils.mkdir path end + if Imap::Backup::Utils::stat(path) != 0700 + FileUtils.chmod 0700, path + end end end end -