Class: WhosGotDirt::Responses::Relation::OpenOil

Inherits:
WhosGotDirt::Response show all
Defined in:
lib/whos_got_dirt/responses/relation/open_oil.rb

Overview

Converts concessions from the OpenOil API to Popolo format.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from WhosGotDirt::Response

Class Method Details

.date_formatter(property, path) ⇒ Object



10
11
12
13
14
15
# File 'lib/whos_got_dirt/responses/relation/open_oil.rb', line 10

def date_formatter(property, path)
  return lambda{|data|
    v = JsonPointer.new(data, path).value
    [property, v.empty? ? nil : v + 'T00:00:00Z']
  }
end

Instance Method Details

#countFixnum

Returns the total number of matching results.

Returns:

  • (Fixnum)

    the total number of matching results



58
59
60
# File 'lib/whos_got_dirt/responses/relation/open_oil.rb', line 58

def count
  parsed_body['result_count']
end

#item_url(result) ⇒ String

Returns a relation's URL.

Parameters:

  • result (Hash)

    the rendered result

Returns:

  • (String)

    the relation's URL



82
83
84
85
# File 'lib/whos_got_dirt/responses/relation/open_oil.rb', line 82

def item_url(result)
  query = CGI.parse(env.url.query.to_s)
  "#{env.url.scheme}://#{env.url.host}/concession/#{result['identifiers'][0]['identifier']}?apikey=#{CGI.escape(query['apikey'][0].to_s)}"
end

#pageFixnum

Returns the current page number.

Returns:

  • (Fixnum)

    the current page number



65
66
67
# File 'lib/whos_got_dirt/responses/relation/open_oil.rb', line 65

def page
  parsed_body['page']
end

#parse_bodyArray<Hash>

Parses the response body.

Returns:

  • (Array<Hash>)

    the parsed response body



51
52
53
# File 'lib/whos_got_dirt/responses/relation/open_oil.rb', line 51

def parse_body
  JSON.load(body)
end

#to_aArray<Hash>

Transforms the parsed response body into results.

Returns:

  • (Array<Hash>)

    the results



72
73
74
75
76
# File 'lib/whos_got_dirt/responses/relation/open_oil.rb', line 72

def to_a
  parsed_body['results'].map do |data|
    Result.new('Relation', renderer.result(data), self).finalize!
  end
end