module Asciidoctor::Diagram::Platform

Public Class Methods

file_separator() click to toggle source
# File lib/asciidoctor-diagram/util/platform.rb, line 16
def self.file_separator
  os_info[:file_sep]
end
host_os_file_separator() click to toggle source
# File lib/asciidoctor-diagram/util/platform.rb, line 20
def self.host_os_file_separator
  os_info[:host_os_file_sep]
end
host_os_path(path) click to toggle source
# File lib/asciidoctor-diagram/util/platform.rb, line 81
def self.host_os_path(path)
  # special case for cygwin, it requires path translation for java to work
  if os_variant == :cygwin
    cygpath = ::Asciidoctor::Diagram::Which.which('cygpath')
    if cygpath != nil
      ::Asciidoctor::Diagram::Cli.run(cygpath, '-w', path)[:out]
    else
      puts 'cygwin warning: cygpath not found'
      native_path(path)
    end
  else
    native_path(path)
  end
end
host_os_path_separator() click to toggle source
# File lib/asciidoctor-diagram/util/platform.rb, line 28
def self.host_os_path_separator
  os_info[:host_os_path_sep]
end
native_path(path) click to toggle source
# File lib/asciidoctor-diagram/util/platform.rb, line 70
def self.native_path(path)
  return path if path.nil?

  sep = file_separator
  if sep != '/'
    path.to_s.gsub('/', sep)
  else
    path.to_s
  end
end
os() click to toggle source
# File lib/asciidoctor-diagram/util/platform.rb, line 8
def self.os
  os_info[:os]
end
os_info() click to toggle source
# File lib/asciidoctor-diagram/util/platform.rb, line 32
def self.os_info
  @os ||= (
  host_os = RbConfig::CONFIG['host_os']

  file_sep = '/'
  host_os_file_sep = nil
  variant = nil
  path_sep = ::File::PATH_SEPARATOR
  host_os_path_sep = nil
  
  case host_os
    when /(msys|mingw|mswin|bccwin|wince|emc)/i
      os = :windows
      variant = $1.downcase.to_sym
      file_sep = '\\'
    when /(cygwin)/i
      os = :windows
      variant = $1.downcase.to_sym
      host_os_file_sep = '\\'
      host_os_path_sep = ';'
    when /darwin|mac os/i
      os = :macosx
    when /linux/i
      os = :linux
    else
      os = :unix
  end
  {
      :os => os,
      :os_variant => variant || os, 
      :file_sep => file_sep,
      :host_os_file_sep => host_os_file_sep || file_sep,
      :path_sep => path_sep,
      :host_os_path_sep => host_os_path_sep || path_sep
  }
  )
end
os_variant() click to toggle source
# File lib/asciidoctor-diagram/util/platform.rb, line 12
def self.os_variant
  os_info[:os_variant]
end
path_separator() click to toggle source
# File lib/asciidoctor-diagram/util/platform.rb, line 24
def self.path_separator
  os_info[:path_sep]
end