Sha256: c961b27d9dc72c799dd8d8934ab83c68be13e9d92a0706399ea22cef1d3011d9

Contents?: true

Size: 1.62 KB

Versions: 1

Compression:

Stored size: 1.62 KB

Contents

require 'active_record'
require 'git_wrapper'
require 'activerecord-import'
require 'json'
require 'easy_diff'
require 'set'

require 'active_git/version'
require 'active_git/synchronizer'
require 'active_git/synchronization_error'
require 'active_git/events/db_event'
require 'active_git/events/db_create'
require 'active_git/events/db_update'
require 'active_git/events/db_delete'
require 'active_git/events/db_delete_all'
require 'active_git/events/file_event'
require 'active_git/events/file_save'
require 'active_git/events/file_delete'
require 'active_git/events/folder_remove'
require 'active_git/active_record_extension'
require 'active_git/configuration'
require 'active_git/commands'
require 'active_git/inflector'

module ActiveGit
  extend Commands

  def self.configuration
    @configuration ||= Configuration.new
  end

  def self.configure
    yield configuration
  end

  def self.models
    @models ||= Set.new
  end

  def self.repository
    @repository = GitWrapper::Repository.new(ActiveGit.configuration.working_path) if @repository.nil? || @repository.location != ActiveGit.configuration.working_path
    @repository
  end

  def self.synchronize(*events)
    if @batch_mode
      enqueue events
    else
      Synchronizer.synchronize events
    end
  end

  def self.batch(&block)
    @batch_mode = true
    begin
      result = yield
      Synchronizer.synchronize @events
      result
    ensure
      @batch_mode = false
      @events.clear if @events
    end
  end

  private

  def self.enqueue(*events)
    @events = (@events || []) + events
  end

end

ActiveRecord::Base.send :extend, ActiveGit::ActiveRecord::ClassMethods

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
active_git-0.0.7 lib/active_git.rb