Sha256: 1fc24ee19e0a367b9af23b0c166353bc44afcd55f297cc061730579089ae55ed

Contents?: true

Size: 768 Bytes

Versions: 4

Compression:

Stored size: 768 Bytes

Contents

require 'supermodel'

module Bowline
  class AppConfig < SuperModel::Base
    include SuperModel::Marshal::Model
    
    class << self
      def instance
        @instance ||= create
      end
      
      def marshal_records=(record)
        self.instance.load(record.attributes) if record
        self.instance
      end
      
      def marshal_records
        self.instance
      end
      
      def load!(path)
        self.instance.load_path(path)
        self.instance
      end
      
      def reset!
        @instance = nil
      end
      alias_method :destroy_all, :reset!
      alias_method :delete_all,  :reset!
    end
    
    def load_path(path)
      return unless path && File.exist?(path)
      load(YAML::load(File.read(path)))
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bowline-0.9.4 lib/bowline/app_config.rb
bowline-0.9.3 lib/bowline/app_config.rb
bowline-0.9.2 lib/bowline/app_config.rb
bowline-0.9.1 lib/bowline/app_config.rb