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