Home > difform

difform

Difform is a project mainly written in Clojure, it's free.

allows you to diff clojure forms

difform

Diffs two clojure forms, eg:

(use 'com.georgejahad.difform) (difform { 1 2 3 4 5 6} { 5 6 1 2 3 7}) {1 2, 3

  • 4
  • 7 , 5 6}

(difform

{:cart {:items [{:new-delivery {:ids ["-1"]}, :old-unit-price "700.00", :product-id "prod-1", :quantity "1", :unit-price "700.00"}], :old-total-dollars "700.00", :purchase? false, :total-dollars "700.00"}, :day "2010-05-18", :event-ids ["1274166000010:some-session-id-1"], :old-id "14", :delivery {:ids [nil]}, :session "some-session-id-1"}

{:day "2010-05-18", :old-id "14", :session "some-session-id-1", :delivery nil, :cart {:purchase? false, :old-total-dollars "1400.00", :total-dollars "1400.00", :items [{:product-id "prod-1", :old-unit-price "700.00", :unit-price "700.00", :quantity "2", :new-delivery {:ids ["-1"]}}]}, :event-ids ["1274166000000:some-session-id-1"]})

{:cart {:items [{:new-delivery {:ids ["-1"]}, :old-unit-price "700.00", :product-id "prod-1", :quantity "

  • 1
  • 2 ", :unit-price "700.00"}], :old-total-dollars "
  • 7
  • 14 00.00", :purchase? false, :total-dollars "
  • 7
  • 14 00.00"}, :day "2010-05-18", :delivery
  • {:ids [ nil
  • ]} , :event-ids ["1274166
  • 0000
  • 1 0:some-session-id-1"], :old-id "14", :session "some-session-id-1"}

A very common use is with clojure.test. For example, if clojure test reports you have failed a test like this:

FAIL in (xyz-test) (xyz_spec.clj:7) expected: (= form1 form2)

Run (diff form1 form2) to see what the exact failure was.