Sha256: 992af277ec1ab0045cb1e017bac97abb734370f58d093592ab1bd3f742a57a27

Contents?: true

Size: 628 Bytes

Versions: 1

Compression:

Stored size: 628 Bytes

Contents

module ActiveGit
  module ActiveRecord

    module ClassMethods

      def git_versioned(options={})

        @options = options.merge root: false

        def git_options
          @options
        end

        include InstanceMethods

        ActiveGit.models << self

        after_save do |record|
          ActiveGit.synchronize FileSave.new(record)
        end

        after_destroy do |record|
          ActiveGit.synchronize FileDelete.new(record)
        end

      end

    end

    module InstanceMethods

      def git_dump
        JSON.pretty_generate(as_json(self.class.git_options))
      end

    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
active_git-0.0.8 lib/active_git/active_record_extension.rb