Class: Uniword::Review::AcceptReject

Inherits:
Object
  • Object
show all
Defined in:
lib/uniword/review/accept_reject.rb

Overview

Handles individual revision accept/reject operations.

Each revision type has specific semantics:

  • Accept insert: remove w:ins wrapper, keep content

  • Accept delete: remove w:del wrapper AND content

  • Reject insert: remove w:ins wrapper AND content

  • Reject delete: remove w:del wrapper, restore content

  • Reject format change: restore old properties

Instance Method Summary collapse

Instance Method Details

#accept(revision) ⇒ Boolean

Accept a single revision by incorporating it into the document.

Parameters:

Returns:

  • (Boolean)

    true if accepted successfully

Raises:

  • (ArgumentError)

    If revision type is unknown



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/uniword/review/accept_reject.rb', line 21

def accept(revision)
  case revision.type
  when :insert
    accept_insert(revision)
  when :delete
    accept_delete(revision)
  when :format_change
    accept_format_change(revision)
  else
    raise ArgumentError,
          "Unknown revision type: #{revision.type}"
  end
end

#reject(revision) ⇒ Boolean

Reject a single revision by reverting its effect.

Parameters:

Returns:

  • (Boolean)

    true if rejected successfully

Raises:

  • (ArgumentError)

    If revision type is unknown



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/uniword/review/accept_reject.rb', line 40

def reject(revision)
  case revision.type
  when :insert
    reject_insert(revision)
  when :delete
    reject_delete(revision)
  when :format_change
    reject_format_change(revision)
  else
    raise ArgumentError,
          "Unknown revision type: #{revision.type}"
  end
end