class RubyStackoverflow::Client::Question

Attributes

answers[R]
comments[R]
posts[R]
user[R]

Public Class Methods

create_question(attr_hash, questions, hash_key) click to toggle source
# File lib/ruby-stackoverflow/client/resource/question.rb, line 50
def create_question(attr_hash, questions, hash_key)
  qid = attr_hash.delete(hash_key)
  question = find_or_create_question(questions, qid)
  questions << question unless question_exists?(questions,qid)
  question
end
data_has_answer?(data) click to toggle source
# File lib/ruby-stackoverflow/client/resource/question.rb, line 32
def data_has_answer?(data)
  data.first.include?(:answer_id)
end
data_has_comment?(data) click to toggle source
# File lib/ruby-stackoverflow/client/resource/question.rb, line 36
def data_has_comment?(data)
  data.first.include?(:comment_id) && !data.first.include?(:timeline_type)
end
data_has_timeline?(data) click to toggle source
# File lib/ruby-stackoverflow/client/resource/question.rb, line 40
def data_has_timeline?(data)
  data.first.include?(:timeline_type)
end
find_or_create_question(questions, qid) click to toggle source
# File lib/ruby-stackoverflow/client/resource/question.rb, line 44
def find_or_create_question(questions, qid)
  question_array = questions.select{|q|q.question_id == qid}
  !question_array.empty? ?  question_array.first : new({question_id: qid})
end
new(attributes_hash={}) click to toggle source
Calls superclass method
# File lib/ruby-stackoverflow/client/resource/question.rb, line 5
def initialize(attributes_hash={})
  @answers = []
  @comments = []
  @posts = []
  super
end
parse_data(data) click to toggle source
# File lib/ruby-stackoverflow/client/resource/question.rb, line 13
def parse_data(data)
  questions = []
  data.each do|attr_hash|
    if data_has_answer?(data)
      question = create_question(attr_hash, questions, :question_id)
      question.answers.push(Answer.new(attr_hash))
    elsif data_has_comment?(data)
      question = create_question(attr_hash, questions,:post_id)
      question.comments.push(Comment.new(attr_hash))
    elsif data_has_timeline?(data)
      question = create_question(attr_hash, questions,:question_id)
      question.posts.push(Post.new(attr_hash))
    else
      questions << new(attr_hash)
    end
  end
  questions
end
question_exists?(questions, question_id) click to toggle source
# File lib/ruby-stackoverflow/client/resource/question.rb, line 57
def question_exists?(questions, question_id)
  question_array =  questions.select{|q|q.question_id == question_id }
  !question_array.empty?
end