Module: Dyndoc

Defined in:
lib/dyndoc-converter.rb,
lib/dyndoc-software.rb

Overview

require ‘pandoc-ruby’

Defined Under Namespace

Modules: Converter

Constant Summary collapse

SOFTWARE =
{}

Class Method Summary collapse

Class Method Details

.pdflatexObject



67
68
69
70
71
72
73
74
# File 'lib/dyndoc-software.rb', line 67

def self.pdflatex
  # this has to be initialized each time you need pdflatex since TEXINPUTS could change!
  if ENV['TEXINPUTS']
    "env TEXINPUTS=#{ENV['TEXINPUTS']}" + (RUBY_PLATFORM=~/mingw32/ ? "; " : " ") + SOFTWARE[:pdflatex] 
  else 
    SOFTWARE[:pdflatex]
  end
end

.RObject



76
77
78
# File 'lib/dyndoc-software.rb', line 76

def self.R
  SOFTWARE[:R]
end

.softwareObject



59
60
61
# File 'lib/dyndoc-software.rb', line 59

def self.software
  SOFTWARE
end

.software?(software) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/dyndoc-software.rb', line 63

def self.software?(software)
  software - SOFTWARE.keys
end

.software_init(force = false) ⇒ Object



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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/dyndoc-software.rb', line 5

def self.software_init(force=false)

  unless SOFTWARE[:R]
    if RUBY_PLATFORM=~/mingw32/
      cmd=Dir[File.join(ENV["HomeDrive"],"Program Files","R","**","R.exe")]
      SOFTWARE[:R]=cmd[0] unless cmd.empty?
    else
      cmd=`type "R"`
      SOFTWARE[:R]=cmd.strip.split(" ")[2] unless cmd.empty?
    end
  end

  unless SOFTWARE[:Rscript]
    if RUBY_PLATFORM=~/mingw32/
      cmd=Dir[File.join(ENV["HomeDrive"],"Program Files","R","**","Rscript.exe")]
      SOFTWARE[:Rscript]=cmd[0] unless cmd.empty?
    else
      cmd=`type "Rscript"`
      SOFTWARE[:R]=cmd.strip.split(" ")[2] unless cmd.empty?
    end
  end

  unless SOFTWARE[:ruby]
    cmd=`type "ruby"`
    SOFTWARE[:ruby]=cmd.strip.split(" ")[2] unless cmd.empty?
  end

  unless SOFTWARE[:pdflatex]
    cmd=`type "pdflatex"`
    if RUBY_PLATFORM =~ /msys/
      SOFTWARE[:pdflatex]="pdflatex"
    else
      SOFTWARE[:pdflatex]=cmd.empty? ? "pdflatex" : cmd.strip.split(" ")[2]
    end
  end
  
  unless SOFTWARE[:pandoc]
    if File.exist? File.join(ENV["HOME"],".cabal","bin","pandoc")
      SOFTWARE[:pandoc]=File.join(ENV["HOME"],".cabal","bin","pandoc")
    else
      cmd = `which pandoc`.strip
      SOFTWARE[:pandoc]=cmd unless cmd.empty?
      #cmd=`type "pandoc"`
      #SOFTWARE[:pandoc]=cmd.strip.split(" ")[2] unless cmd.empty?
    end
  end

  unless SOFTWARE[:ttm]
    cmd=`type "ttm"`
    SOFTWARE[:ttm]=cmd.strip.split(" ")[2] unless cmd.empty?
  end
   
end

.which_path(bin) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/dyndoc-converter.rb', line 13

def Dyndoc.which_path(bin)
  begin
    cmd=`which #{bin}`.strip
    cmd=DyndocMsys2.global_path_msys2mingw(cmd) if RUBY_PLATFORM =~ /mingw/
  rescue
    cmd=bin
  end
  return cmd
end