Class: Trevl::DataSource::Static

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#field_names

Constructor Details

#initialize(data: {}) ⇒ Static

Returns a new instance of Static.



8
9
10
11
# File 'lib/trevl/data_source/static.rb', line 8

def initialize(data: {}, **)
  super()
  @data = data
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



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

def data
  @data
end

Instance Method Details

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



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/trevl/data_source/static.rb', line 13

def fetch(endpoint, params = {}, resource: nil)
  key = resource ? "#{resource}/#{endpoint}" : endpoint
  result = @data[key] || @data[endpoint]

  case result
  when Array
    {"data" => result, "meta" => {}}
  when Hash
    data = result["data"] || result[:data] || []
    meta = result["meta"] || result[:meta] || {}
    {"data" => Array(data), "meta" => meta.is_a?(Hash) ? meta : {}}
  else
    {"data" => [], "meta" => {}}
  end
end