File: Differ.php

package info (click to toggle)
wikidiff2 1.14.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,908 kB
  • sloc: cpp: 2,875; php: 417; makefile: 14; sh: 3
file content (41 lines) | stat: -rw-r--r-- 827 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php

interface Differ {
	function diff( $a, $b );
}

class TableDiffer implements Differ {
	public function diff( $a, $b ) {
		return '<table>'
			. wikidiff2_do_diff( $a, $b, 2 )
			. '</table>';
	}
}

class InlineDiffer implements Differ {
	public function diff( $a, $b ) {
		return wikidiff2_inline_diff( $a, $b, 2 );
	}
}

class InlineJSONDiffer implements Differ {
	public function diff( $a, $b ) {
		return wikidiff2_inline_json_diff( $a, $b, 2 );
	}
}

class AllDiffer implements Differ {
	private $table, $inline;

	public function __construct() {
		$this->table = new TableDiffer;
		$this->inline = new InlineDiffer;
		$this->inlineJSON = new InlineJSONDiffer;
	}

	public function diff( $a, $b ) {
		return $this->table->diff( $a, $b )
			. $this->inline->diff( $a, $b )
			. $this->inlineJSON->diff( $a, $b);
	}
}