Class: Rupology::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/rupology/client.rb

Constant Summary collapse

DEFAULT_URL =
'https://repology.org'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(url = DEFAULT_URL) ⇒ Client

Returns a new instance of Client.



8
9
10
# File 'lib/rupology/client.rb', line 8

def initialize(url = DEFAULT_URL)
  @connection = Faraday.new(url: url)
end

Instance Method Details

#filter(params = {}) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/rupology/client.rb', line 27

def filter(params = {})
  response = @connection.get do |request|
    request.url('/api/v1/metapackages/')
    request.params = params
  end
  JSON.parse(response.body)
end

#metapackage(package) ⇒ Object



12
13
14
15
16
17
# File 'lib/rupology/client.rb', line 12

def metapackage(package)
  response = @connection.get do |request|
    request.url('/api/v1/metapackage/' + package)
  end
  JSON.parse(response.body)
end

#metapackages(pivot_package, up_to = false) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/rupology/client.rb', line 19

def metapackages(pivot_package, up_to = false)
  response = @connection.get do |request|
    pivot_package = '..' + pivot_package if up_to
    request.url('/api/v1/metapackages/' + pivot_package + '/')
  end
  JSON.parse(response.body)
end

#problems(type, key, params = {}) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/rupology/client.rb', line 35

def problems(type, key, params = {})
  response = @connection.get do |request|
    request.url('/api/v1/' + type + '/' + key + '/problems')
    request.params = params
  end
  JSON.parse(response.body)
end