Class: Leetcoder::Question

Inherits:
BaseObject show all
Defined in:
lib/leetcoder/leetcoder/objects/question.rb

Instance Attribute Summary

Attributes inherited from BaseObject

#args, #object

Instance Method Summary collapse

Methods inherited from BaseObject

#initialize

Constructor Details

This class inherits a constructor from Leetcoder::BaseObject

Instance Method Details

#question_dataObject



9
10
11
# File 'lib/leetcoder/leetcoder/objects/question.rb', line 9

def question_data
  serialized_data.map { |key, value| block_format(key, value) }.join("<br> \n")
end

#save_to_file!Object



5
6
7
# File 'lib/leetcoder/leetcoder/objects/question.rb', line 5

def save_to_file!
  File.write('README.md', question_data)
end

#serialized_dataObject



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/leetcoder/leetcoder/objects/question.rb', line 13

def serialized_data
  {
    title: object.title,
    url:,
    topic_tags:,
    difficulty: object.difficulty,
    content: object.content,
    stats:,
    likes: object.likes
  }
end

#statsObject



33
34
35
36
37
# File 'lib/leetcoder/leetcoder/objects/question.rb', line 33

def stats
  JSON.parse(object.stats).slice(*%w[totalAccepted totalSubmission acRate]).map do |key, value|
    "#{key.upcase}: #{value}"
  end.join(', ')
end

#topic_tagsObject



29
30
31
# File 'lib/leetcoder/leetcoder/objects/question.rb', line 29

def topic_tags
  object.topicTags.map { |tag| "##{tag[:slug]}" }.join(', ')
end

#urlObject



25
26
27
# File 'lib/leetcoder/leetcoder/objects/question.rb', line 25

def url
  "#{Leetcoder::BASE_URL}/problems/#{object.titleSlug}"
end