#
## Ruby RAA module
#

##
## @Globals none
function quill_raa_get_info(){
  local info
  local raa_project_file
  info="${1}"
  raa_project_file="${2}"
  grep "${info}:" $raa_project_file | sed -e "s/ *${info}: *\(.*\)/\1/"
}

##
## @Globals SPELL_NAME SPELL_SHORT_DESCRIPTION SPELL_LICENSE SPELL_URL
## @Globals SPELL_SRC_URL SPELL_DEPENDENCIES DEPENDSISON QUILL_TMP_DIR
function quill_raa_core(){
  local project
  local desc
  local line
  local raa_project_file

  # so it is set even if we end prematurely, useful when adding spells
  # gets properly overwritten later on
  SPELL_NAME="$1"
  project="$SPELL_NAME"
  raa_project_file=${QUILL_TMP_DIR}/${project}.raa
  message "Attempting to retrieve project page..."
  wget -q -O $raa_project_file.tmp \
       http://raa.ruby-lang.org/project/$project/ || \
       error_msg "Error: unable to fetch project page" && \
       return 1
  sed -e "s:<a href=\"\(.*\)\".*:\1:g" \
      -e ":top;/<.*>/{;s/<[^<>]*>//g;t top;};/</{;N;b top;}" \
      $raa_project_file.tmp | \
      sed -e ":pot /:\s*$/{ N; s/\n//g; t pot}; /:$/{ b pot}" \
      -e "/^$/d" > $raa_project_file
  if $(head -n3 $raa_project_file | grep -q "RAA - Search") ; then
    error_msg "Error: project not found"
    return 1
  fi
  SPELL_SHORT_DESCRIPTION="$(quill_raa_get_info "Short description" "$raa_project_file" )"
  SPELL_LICENSE="$(quill_raa_get_info "License" "$raa_project_file" )"
  SPELL_URL="$(quill_raa_get_info "Homepage" "$raa_project_file")"
  SPELL_SRC_URL="$(quill_raa_get_info "Download" "$raa_project_file")"
  SPELL_NAME="$project"
  sed -n '/Description:/,/Edit this project/ p' \
      $raa_project_file > ${QUILL_TMP_DIR}/${SPELL_NAME}
  sed -i \
      -e '1s/.*Description: *\(.*\)/\1/' \
      -e "/.*Edit this project.*/d" \
      ${QUILL_TMP_DIR}/${SPELL_NAME}
  DEPENDSISON="DEPENDS, "
  SPELL_DEPENDENCIES="ruby"

}
