Class: Trevl::DataSource::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/trevl/data_source/base.rb

Direct Known Subclasses

Api, Cube, Static

Instance Method Summary collapse

Instance Method Details

#fetch(endpoint, params = {}, resource: nil) ⇒ Object

Raises:

  • (NotImplementedError)


6
7
8
# File 'lib/trevl/data_source/base.rb', line 6

def fetch(endpoint, params = {}, resource: nil)
  raise NotImplementedError, "#{self.class}#fetch must be implemented"
end

#field_names(endpoint, params = {}, resource: nil) ⇒ Object

Returns the field names available for an endpoint by fetching a sample row. Override in subclasses for more efficient discovery (e.g. schema endpoints).



12
13
14
15
16
# File 'lib/trevl/data_source/base.rb', line 12

def field_names(endpoint, params = {}, resource: nil)
  result = fetch(endpoint, params, resource: resource)
  row = Array(result["data"]).first
  row.is_a?(Hash) ? row.keys : []
end