Sha256: a03259957d908cdac0b696330f29699b1c5692f1ff32f208798a1f411ad29c90

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

module PaperTrailScrapbook
  # Module VersionHelpers provides methods for extracting common information
  # from a version or PaperTrailScrapbook config
  module VersionHelpers
    delegate :event, to: :version

    def model
      version.item_type
    end

    def model_id
      version.item_id
    end

    def create?
      event.eql?('create')
    end

    def changes
      Changes.new(version).change_log
    end

    def config
      PaperTrailScrapbook.config
    end

    def whenn
      version.created_at.strftime(config.time_format)
    end

    def kind
      config.events[event] ||
        raise(ArgumentError, "incorrect event:#{event}")
    end

    def who
      author = version.version_author
      return config.unknown_whodunnit unless author
      return author unless whodunnit_class

      whodunnit_instance(author)
    end

    def whodunnit_class
      config.whodunnit_class
    end

    def whodunnit_instance(author)
      instance = begin
                   whodunnit_class.find(author)
                 rescue StandardError
                   config.invalid_whodunnit.call(author)
                 end

      return instance.to_whodunnit if instance.respond_to?(:to_whodunnit)

      instance.to_s
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
paper_trail_scrapbook-0.1.8 lib/paper_trail_scrapbook/version_helpers.rb
paper_trail_scrapbook-0.1.7 lib/paper_trail_scrapbook/version_helpers.rb