class PaperTrailScrapbook::LifeHistory

Class LifeHistory provides Full multi version history

@author Timothy Chambers <tim@hint.io>

Attributes

object[R]
versions[R]

Public Class Methods

new(object) click to toggle source
# File lib/paper_trail_scrapbook/life_history.rb, line 9
def initialize(object)
  @object   = object
  @versions = Versions.new(object).versions
end

Public Instance Methods

story() click to toggle source

Retries textual historical analysis of versions

@return [String] analyzed versions

# File lib/paper_trail_scrapbook/life_history.rb, line 18
def story
  x = versions.map do |v|
    if primary?(v)
      Chapter
    else
      SecondaryChapter
    end.new(v).story
  end.compact

  x.reverse! if PaperTrailScrapbook.config.recent_first

  x.join("\n\n")
end

Private Instance Methods

primary?(version) click to toggle source
# File lib/paper_trail_scrapbook/life_history.rb, line 34
def primary?(version)
  version.item_type.eql?(object.class.name) &&
    version.item_id.equal?(object.id)
end