Module: IpynbDiff

Defined in:
lib/ipynbdiff.rb,
lib/transformer.rb

Overview

Human Readable Jupyter Diffs

Defined Under Namespace

Classes: Transformer

Class Method Summary collapse

Class Method Details

.diff(from_notebook, to_notebook, options = {}) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/ipynbdiff.rb', line 26

def self.diff(
  from_notebook,
  to_notebook,
  options = {}
)
  options = @default_options.merge(options)

  from = prepare_input(from_notebook, options[:sources_are_files], options[:preprocess_input])
  to = prepare_input(to_notebook, options[:sources_are_files], options[:preprocess_input])

  d = Diffy::Diff.new(from, to, **options[:diff_opts]).to_s(options[:format])

  File.write(options[:write_output_to], d) if options[:write_output_to]

  d
end

.prepare_input(to_prepare, load_from_file, preprocess) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/ipynbdiff.rb', line 18

def self.prepare_input(to_prepare, load_from_file, preprocess)
  prepared = to_prepare
  prepared = File.read(prepared) if load_from_file
  prepared = Transformer.transform(prepared) if preprocess

  prepared
end