class TdBerlinTest::WolframApiFetcher

Constants

WOLFRAM_APP_ID

Attributes

language_data[RW]
result[RW]

Public Class Methods

new(yaml_file) click to toggle source
# File lib/wolfram_api_fetcher.rb, line 11
def initialize(yaml_file)
  @language_data = parse_yaml_file(yaml_file)
  @result_array = []
  Wolfram.appid = WOLFRAM_APP_ID
end

Public Instance Methods

fetch_wolfram(language) click to toggle source
# File lib/wolfram_api_fetcher.rb, line 29
def fetch_wolfram(language)
  options = {:assumption => "*C.#{language}-_*ProgrammingLanguage-" }

  @currently_fetched_language = language

  result = Wolfram.fetch(language, options)

  get_influence_data_from_result(result)
end
filter_out_influenced_language(related_language) click to toggle source
# File lib/wolfram_api_fetcher.rb, line 55
def filter_out_influenced_language(related_language)
  # strip out the <relatedquery> tags
  related_language = Sanitize.clean(related_language.to_s)

  matches = related_language.scan(/(\S+)(?=\sprogramming language)/i)

  if !matches.empty?
    programming_language = matches[0][0]

    @currently_fetched_language[0] = @currently_fetched_language[0].capitalize

    if programming_language != @currently_fetched_language
      @result_array.push(programming_language)
    end
  end
end
get_influence_data_from_result(result) click to toggle source
# File lib/wolfram_api_fetcher.rb, line 39
def get_influence_data_from_result(result)
  related_languages_url = result.xml.xpath('//queryresult').attr('related').to_s

  fetch_wolfram_for_related_languages_data(related_languages_url)
end
output_result_as_array() click to toggle source
# File lib/wolfram_api_fetcher.rb, line 72
def output_result_as_array
  puts ("['" + @result_array.join("','") + "']")
end
parse_yaml_file(yaml_file) click to toggle source
# File lib/wolfram_api_fetcher.rb, line 17
def parse_yaml_file(yaml_file)
  YAML.load_file(yaml_file)
end
run() click to toggle source
# File lib/wolfram_api_fetcher.rb, line 21
def run
  @language_data[0]['langs'].each do |language|
    fetch_wolfram(language)
  end

  output_result_as_array
end