Sha256: 6f4bac4e4310ee97afd83e5d73de771d4a2c7b838bb4b8138aa8ae7854247561

Contents?: true

Size: 867 Bytes

Versions: 30

Compression:

Stored size: 867 Bytes

Contents

module Mongoo
  module Changelog
    
    def changelog
      persisted_mongohash_kv = (self.persisted_mongohash || Mongoo::Mongohash.new).to_key_value
      curr_mongohash_kv      = self.mongohash.to_key_value
      
      log = []
      
      persisted_mongohash_kv.each do |k,v|
        unless curr_mongohash_kv.has_key?(k)
          found = nil
          parts = k.split(".")
          while parts.pop
            if !self.mongohash.dot_get(parts.join("."))
              found = [:unset, parts.join("."), 1]
            end
          end
          found ||= [:unset, k, 1]
          log << found
        end
      end
      
      curr_mongohash_kv.each do |k,v|
        if v != persisted_mongohash_kv[k]
          unless log.include?([:set, k, v])
            log << [:set, k, v]
          end
        end
      end
      
      log.uniq
    end
    
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
mongoo-0.5.7 lib/mongoo/changelog.rb
mongoo-0.5.6 lib/mongoo/changelog.rb
mongoo-0.5.5 lib/mongoo/changelog.rb
mongoo-0.5.4 lib/mongoo/changelog.rb
mongoo-0.5.3 lib/mongoo/changelog.rb
mongoo-0.5.2 lib/mongoo/changelog.rb
mongoo-0.5.1 lib/mongoo/changelog.rb
mongoo-0.5.0 lib/mongoo/changelog.rb
mongoo-0.4.10 lib/mongoo/changelog.rb
mongoo-0.4.9 lib/mongoo/changelog.rb
mongoo-0.4.8 lib/mongoo/changelog.rb
mongoo-0.4.7 lib/mongoo/changelog.rb
mongoo-0.4.6 lib/mongoo/changelog.rb
mongoo-0.4.5 lib/mongoo/changelog.rb
mongoo-0.4.4 lib/mongoo/changelog.rb
mongoo-0.4.3 lib/mongoo/changelog.rb
mongoo-0.4.2 lib/mongoo/changelog.rb
mongoo-0.4.1 lib/mongoo/changelog.rb
mongoo-0.4.0 lib/mongoo/changelog.rb
mongoo-0.3.1 lib/mongoo/changelog.rb