Class: Repos::StackOverflow
- Inherits:
-
Object
- Object
- Repos::StackOverflow
- Defined in:
- lib/repocrawler/crawler.rb
Instance Method Summary collapse
-
#get_questions ⇒ Object
get questions from stackexchange.
-
#initialize(gem_name, stackoverflow_token) ⇒ StackOverflow
constructor
A new instance of StackOverflow.
Constructor Details
#initialize(gem_name, stackoverflow_token) ⇒ StackOverflow
Returns a new instance of StackOverflow.
321 322 323 |
# File 'lib/repocrawler/crawler.rb', line 321 def initialize(gem_name, stackoverflow_token) @STACKOVERFLOW_API = "https://api.stackexchange.com/2.2/search/advanced?order=desc&sort=creation&q=#{gem_name}&site=stackoverflow&key=#{stackoverflow_token}" end |
Instance Method Details
#get_questions ⇒ Object
get questions from stackexchange
326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 |
# File 'lib/repocrawler/crawler.rb', line 326 def get_questions stop_words = [] File.open(File.("../../public/stop_words.txt", File.dirname(__FILE__)), "r") do |f| f.each_line do |line| stop_words << line.gsub(/\n/,"") end end questions = [] fetch_questions = HTTParty.get(@STACKOVERFLOW_API) fetch_questions['items'].each do |q| #don't store stop words good_words = [] q['title'].split(' ').map do |word| if !stop_words.include?(word.downcase) good_words << word end end questions << { 'creation_date' => q['creation_date'], 'title' => good_words, 'views' => q['view_count'] } end questions_word_count = Hash.new(0) questions.each do |question| question['title'].each do |word| questions_word_count[word] += 1 end end questions_word_count = questions_word_count.sort_by { |word, freq| freq }.reverse! [questions, questions_word_count] end |