Class: SE::API::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/se/api.rb

Constant Summary collapse

API_VERSION =
2.2

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key = "", log_api_raw: false, log_api_json: false, log_meta: true, **params) ⇒ Client

Returns a new instance of Client.



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/se/api.rb', line 22

def initialize(key = "", log_api_raw: false, log_api_json: false, log_meta: true, **params)
  @key = key
  @params = params.merge({filter: '!*1_).BnZb8pdvWlZpJYNyauMekouxK9-RzUNUrwiB'})
  @quota = nil
  @quota_used = 0
  @backoff = Time.now
  @logger_raw = Logger.new 'api_raw.log'
  @logger_json = Logger.new 'api_json.log'
  @logger = Logger.new 'se-api.log'
  @logger_raw.level = Logger::Severity::UNKNOWN unless log_api_raw
  @logger_json.level = Logger::Severity::UNKNOWN unless log_api_json
  @logger.level = Logger::Severity::UNKNOWN unless log_meta
end

Instance Attribute Details

#paramsObject

Returns the value of attribute params.



20
21
22
# File 'lib/se/api.rb', line 20

def params
  @params
end

#quotaObject (readonly)

Returns the value of attribute quota.



19
20
21
# File 'lib/se/api.rb', line 19

def quota
  @quota
end

#quota_usedObject (readonly)

Returns the value of attribute quota_used.



19
20
21
# File 'lib/se/api.rb', line 19

def quota_used
  @quota_used
end

Instance Method Details

#answer(id, **params) ⇒ Object



56
57
58
# File 'lib/se/api.rb', line 56

def answer(id, **params)
  answers(id, **params).first
end

#answers(*ids, **params) ⇒ Object



52
53
54
# File 'lib/se/api.rb', line 52

def answers(*ids, **params)
  objectify Answer, ids, **params
end

#comment(id, **params) ⇒ Object



64
65
66
# File 'lib/se/api.rb', line 64

def comment(id, **params)
  comments(id, **params).first
end

#comments(*ids, **params) ⇒ Object



60
61
62
# File 'lib/se/api.rb', line 60

def comments(*ids, **params)
  objectify Comment, ids, **params
end

#post(id, **params) ⇒ Object



40
41
42
# File 'lib/se/api.rb', line 40

def post(id, **params)
  posts(id, **params).first
end

#posts(*ids, **params) ⇒ Object



36
37
38
# File 'lib/se/api.rb', line 36

def posts(*ids, **params)
  objectify Post, ids, **params
end

#question(id, **params) ⇒ Object



48
49
50
# File 'lib/se/api.rb', line 48

def question(id, **params)
  questions(id, **params).first
end

#questions(*ids, **params) ⇒ Object



44
45
46
# File 'lib/se/api.rb', line 44

def questions(*ids, **params)
  objectify Question, ids, **params
end

#user(id, **params) ⇒ Object



72
73
74
# File 'lib/se/api.rb', line 72

def user(id, **params)
  users(id, **params).first
end

#users(*ids, **params) ⇒ Object



68
69
70
# File 'lib/se/api.rb', line 68

def users(*ids, **params)
  objectify User, ids, **params
end