Class: Trevl::DataSource::Base
- Inherits:
-
Object
- Object
- Trevl::DataSource::Base
- Defined in:
- lib/trevl/data_source/base.rb
Instance Method Summary collapse
- #fetch(endpoint, params = {}, resource: nil) ⇒ Object
-
#field_names(endpoint, params = {}, resource: nil) ⇒ Object
Returns the field names available for an endpoint by fetching a sample row.
Instance Method Details
#fetch(endpoint, params = {}, resource: nil) ⇒ Object
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 |