R/noTouch.R

#' Extract YAML data from metadata.yml
#'
#' @param file Path to the YAML file
#'
#' @importFrom yaml yaml.load_file
#' 

noTouch <- function(file = NULL) {
  
  yaml <- yaml::yaml.load_file(file)
  
  yaml$author$Fullname <- paste(c(yaml$author$firstname,
                                  try(yaml$author$middle),
                                  yaml$author$lastname),
                                collapse = ' ')
  
  yaml$author$fullname <- paste(c(yaml$author$firstname,
                                  yaml$author$lastname),
                                collapse = ' ')
  
  yaml$author$trname  <- paste(c(yaml$author$lastname,
                                 yaml$author$firstname,
                                 yaml$author$middle),
                                collapse = ', ')
  
  yaml$author$sf298name  <- paste(c(yaml$author$lastname,
                                 yaml$author$firstname,
                                 yaml$author$middle,
                                 yaml$author$rank,
                                 yaml$author$service),
                                collapse = ', ')
  
  yaml$sf298$doctype <- switch(tolower(yaml$document$type),
                               'thesis' = "Master's Thesis",
                               'dissertation' = 'Doctoral Dissertation')
  
  yaml$author$dept <- switch(tolower(yaml$author$department),
                             'env' = 'Department of Systems Engineering and Management',
                             'enc' = 'Department of Mathematics and Statistics',
                             'ens' = 'Department of Operational Sciences',
                             'eng' = 'Department of Operational Sciences',
                             'eny' = 'Department of Aeronautics and Astronautics',
                             'enp' = 'Department of Engineering Physics')

  yaml$advisor$dept <- switch(tolower(yaml$advisor$department),
                             'env' = 'Department of Systems Engineering and Management',
                             'enc' = 'Department of Mathematics and Statistics',
                             'ens' = 'Department of Operational Sciences',
                             'eng' = 'Department of Operational Sciences',
                             'eny' = 'Department of Aeronautics and Astronautics',
                             'enp' = 'Department of Engineering Physics')
  
  yaml$dept_head <- switch(tolower(yaml$author$department),
                           'env' = 'Michael R. Grimaila, PhD',
                           'enc' = 'Alan V. Lair, PhD',
                           'ens' = 'Joseph J. Pignatiello, PhD',
                           'eng' = 'Nathaniel J. Davis IV, PhD',
                           'eny' = 'Bradley S. Liebst, PhD',
                           'enp' = 'Nancy C. Giles, PhD')
  
  if(yaml$distribution_statement$A) yaml$distro_state <- 'Distribution A. Approved for public release; distribution unlimited.'
  if(yaml$distribution_statement$B) yaml$distro_state <- 'Distribution B. Distribution authorized to U.S. Government Agencies'
  if(yaml$distribution_statement$C) yaml$distro_state <- 'Distribution C. Distribution authorized to U.S. Government Agencies and their contractors'
  if(yaml$distribution_statement$D) yaml$distro_state <- 'Distribution D. Distribution authorized to Department of Defense and U.S. DoD contractors only'
  if(yaml$distribution_statement$E) yaml$distro_state <- 'Distribution E. Distribution authorized to DoD components only'
  if(yaml$distribution_statement$F) yaml$distro_state <- 'Distribution F. Further dissemination only as directed'

  if(yaml$distribution_statement$A) yaml$distro_thesis <- c('A','Approved for public release; distribution unlimited.')
  if(yaml$distribution_statement$B) yaml$distro_thesis <- c('B','Distribution authorized to U.S. Government Agencies')
  if(yaml$distribution_statement$C) yaml$distro_thesis <- c('C','Distribution authorized to U.S. Government Agencies and their contractors')
  if(yaml$distribution_statement$D) yaml$distro_thesis <- c('D','Distribution authorized to Department of Defense and U.S. DoD contractors only')
  if(yaml$distribution_statement$E) yaml$distro_thesis <- c('E','Distribution authorized to DoD components only')
  if(yaml$distribution_statement$F) yaml$distro_thesis <- c('F','Further dissemination only as directed')

  
  if(!yaml$distribution_statement$F & !yaml$distribution_statement$A) {

  reason <- data.frame()
  
  if(yaml$distribution_reason$dms) reason <- c(reason,'Direct Military Support')
  if(yaml$distribution_reason$swd) reason <- c(reason,'Software Documentation')
  if(yaml$distribution_reason$fgi) reason <- c(reason,'Foreign Government Information')
  if(yaml$distribution_reason$cpe) reason <- c(reason,'Contractor Performance Evaluation')
  if(yaml$distribution_reason$pri) reason <- c(reason,'Proprietary Information')
  if(yaml$distribution_reason$crt) reason <- c(reason,'Critical Technology')
  if(yaml$distribution_reason$pre) reason <- c(reason,'Premature Dissemination')
  if(yaml$distribution_reason$aou) reason <- c(reason,'Administrative of Operational Use')
  if(yaml$distribution_reason$tne) reason <- c(reason,'Test and Evaluation')
  if(yaml$distribution_reason$aut) reason <- c(reason,'Specific Authority')
  if(yaml$distribution_reason$exp) reason <- c(reason,'Export Controlled')
  if(yaml$distribution_reason$vul) reason <- c(reason,'Vulnerability Information')
  if(yaml$distribution_reason$ops) reason <- c(reason,'Operations Security')

  yaml$distro_reason <- paste(unlist(reason), collapse = ', ')
  
  yaml$distr_extra <- 'Other requests for this document shall be referred to'
  
  }
  
  checkIT <- function(x) {
   
    if(is.na(pmatch('no',yaml::as.yaml(x)))) { return(x)
      
    } else { return(NULL)}
    
  }
  
  yaml$distribution_reason$dms <- checkIT(yaml$distribution_reason$dms)
  yaml$distribution_reason$swd <- checkIT(yaml$distribution_reason$swd)
  yaml$distribution_reason$fgi <- checkIT(yaml$distribution_reason$fgi)
  yaml$distribution_reason$cpe <- checkIT(yaml$distribution_reason$cpe)
  yaml$distribution_reason$pri <- checkIT(yaml$distribution_reason$pri)
  yaml$distribution_reason$crt <- checkIT(yaml$distribution_reason$crt)
  yaml$distribution_reason$pre <- checkIT(yaml$distribution_reason$pre)
  yaml$distribution_reason$aou <- checkIT(yaml$distribution_reason$aou)
  yaml$distribution_reason$tne <- checkIT(yaml$distribution_reason$tne)
  yaml$distribution_reason$aut <- checkIT(yaml$distribution_reason$aut)
  yaml$distribution_reason$exp <- checkIT(yaml$distribution_reason$exp)
  yaml$distribution_reason$vul <- checkIT(yaml$distribution_reason$vul)
  yaml$distribution_reason$ops <- checkIT(yaml$distribution_reason$ops)

  yaml$distribution_statement$A <- checkIT(yaml$distribution_statement$A)
  yaml$distribution_statement$B <- checkIT(yaml$distribution_statement$B)
  yaml$distribution_statement$C <- checkIT(yaml$distribution_statement$C)
  yaml$distribution_statement$D <- checkIT(yaml$distribution_statement$D)
  yaml$distribution_statement$E <- checkIT(yaml$distribution_statement$E)
  yaml$distribution_statement$F <- checkIT(yaml$distribution_statement$F)

  if(tolower(yaml$document$type)%in%c('dissertation','prospectus')) {
    yaml$dissertation <- TRUE
    
  } else { FALSE }
  
  # yaml$dissertation <- 'no'
  # yaml$dissertation <-  'yes'
  # yaml$dissertation <- if(tolower(yaml$document$type)=='prospectus')  'yes' 
  yaml$dissertation <- checkIT(yaml$dissertation)
  
  yaml$advisor$email1 <- try(unlist(strsplit(yaml$advisor$email,'@'))[1], silent = T)
  yaml$advisor$email2 <- try(unlist(strsplit(yaml$advisor$email,'@'))[2], silent = T)
  
  yaml$author$email1 <- try(unlist(strsplit(yaml$author$email,'@'))[1], silent = T)
  yaml$author$email2 <- try(unlist(strsplit(yaml$author$email,'@'))[2], silent = T)
  
  yaml$sponsor$email1 <- try(unlist(strsplit(yaml$sponsor$email,'@'))[1], silent = T)
  yaml$sponsor$email2 <- try(unlist(strsplit(yaml$sponsor$email,'@'))[2], silent = T)
    
  #yaml <- unlist(lapply(yaml, FUN = function(x) {gsub('\"', '', x)}))

  return(yaml)
}
Auburngrads/AFIT documentation built on May 5, 2019, 8:13 a.m.