Class: LeagueOfLegends::Request::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/league_of_legends/request/base.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api, options = {}) ⇒ Base

Returns a new instance of Base.



35
36
37
38
# File 'lib/league_of_legends/request/base.rb', line 35

def initialize api, options = {}
  @api = api
  @options = self.class.default_options.merge(options)
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



10
11
12
# File 'lib/league_of_legends/request/base.rb', line 10

def options
  @options
end

Class Method Details

.default_optionsObject



12
13
14
15
16
17
# File 'lib/league_of_legends/request/base.rb', line 12

def self.default_options
  {
    region: 'euw',
    version: dto_class.version
  }
end

.dto_classObject

Raises:

  • (NotImplementedError)


19
20
21
# File 'lib/league_of_legends/request/base.rb', line 19

def self.dto_class
  raise NotImplementedError, "Children of LeagueOfLegends::Request::Base must implement ::dto_class"
end

.versionObject



23
24
25
# File 'lib/league_of_legends/request/base.rb', line 23

def self.version
  dto_class.version
end

Instance Method Details

#api_keyObject



31
32
33
# File 'lib/league_of_legends/request/base.rb', line 31

def api_key
  api.key
end

#regionObject



27
28
29
# File 'lib/league_of_legends/request/base.rb', line 27

def region
   options[:region]
end

#responseObject



40
41
42
43
44
45
46
47
48
49
# File 'lib/league_of_legends/request/base.rb', line 40

def response
  @response ||= send_request

  case @response.code.to_i
  when 200 then
    self.class.dto_class.new(@response.body)
  else
    @response.message
  end
end