#
## 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
  if [[ ! -e ${raa_project_file} ]]; then
    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
  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"

}
