Class: Kraai::StackExchange

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/kraai.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(site = "stackoverflow", page = 1, sort = "activity", order = "desc") ⇒ StackExchange

Returns a new instance of StackExchange.



13
14
15
16
17
18
19
20
# File 'lib/kraai.rb', line 13

def initialize(site="stackoverflow", page=1, sort="activity", order="desc")
  @options = { :query => {:site => site, :page => page, :sort => sort, :order => order} }
	@site = site
	@page = page
	@sort = sort
	@order = order
	
end

Instance Attribute Details

#orderObject

Returns the value of attribute order.



7
8
9
# File 'lib/kraai.rb', line 7

def order
  @order
end

#pageObject

Returns the value of attribute page.



7
8
9
# File 'lib/kraai.rb', line 7

def page
  @page
end

#siteObject

Returns the value of attribute site.



7
8
9
# File 'lib/kraai.rb', line 7

def site
  @site
end

#sortObject

Returns the value of attribute sort.



7
8
9
# File 'lib/kraai.rb', line 7

def sort
  @sort
end

#taggedObject

Returns the value of attribute tagged.



7
8
9
# File 'lib/kraai.rb', line 7

def tagged
  @tagged
end

#userObject

Returns the value of attribute user.



7
8
9
# File 'lib/kraai.rb', line 7

def user
  @user
end

Class Method Details

.sitesObject



53
54
55
# File 'lib/kraai.rb', line 53

def self.sites
  HTTParty.get('https://api.stackexchange.com/2.2/sites')		
end

Instance Method Details

#noanswers(tagged) ⇒ Object



43
44
45
46
47
# File 'lib/kraai.rb', line 43

def noanswers(tagged)
	@tagged = tagged
	(@options[:query].merge! :tagged => tagged) if tagged
	self.class.get("/questions/no-answers", @options)
end

#questionsObject



22
23
24
# File 'lib/kraai.rb', line 22

def questions
  self.class.get("/questions", @options)
end

#unanswered(tagged) ⇒ Object



37
38
39
40
41
# File 'lib/kraai.rb', line 37

def unanswered(tagged)
	self.tagged = tagged
	@options[:query].merge! :tagged => tagged
	self.class.get("/questions/unanswered", @options)
end

#user_answers(user) ⇒ Object



31
32
33
34
# File 'lib/kraai.rb', line 31

def user_answers(user)
  @user = user
  self.class.get("/users/#{user}/answers", @options)
end

#user_questions(user) ⇒ Object



26
27
28
29
# File 'lib/kraai.rb', line 26

def user_questions(user)
  @user = user
  self.class.get("/users/#{user}/questions", @options)
end

#usersObject



49
50
51
# File 'lib/kraai.rb', line 49

def users
  self.class.get("/users", @options)
end