class NasaEarth
Constants
- VALIDATORS
Attributes
api_key[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/nasa_earth.rb, line 19 def initialize options = {} @api_key = options[:api_key] end
Public Instance Methods
assets(params)
click to toggle source
# File lib/nasa_earth.rb, line 31 def assets params params[:api_key] = @api_key unless @api_key.nil? _check_params params uri = URI('https://api.nasa.gov/planetary/earth/assets') uri.query = URI.encode_www_form(params) return _get_response uri end
imagery(params)
click to toggle source
# File lib/nasa_earth.rb, line 23 def imagery params params[:api_key] = @api_key unless @api_key.nil? _check_params params uri = URI('https://api.nasa.gov/planetary/earth/imagery') uri.query = URI.encode_www_form(params) return _get_response uri end
Private Instance Methods
_check_params(params)
click to toggle source
# File lib/nasa_earth.rb, line 52 def _check_params params VALIDATORS.each do |name, conditions| if params.has_key? name unless params[name].is_a? conditions[:type] raise ArgumentError, "'#{name}' should be a #{conditions[:type].to_s}" end elsif conditions[:mandatory] raise ArgumentError, "Argument '#{name}' is mandatory" end end end
_get_response(uri)
click to toggle source
# File lib/nasa_earth.rb, line 40 def _get_response uri res = Net::HTTP.get_response(uri) response = { 'code' => res.code, 'message' => res.message } if res.is_a? Net::HTTPSuccess response['content'] = JSON.load(res.body) end return response end