Sha256: d61a804e80f8d5e3483a739ba778d634220ec8d6725e00affc37d945e0f8695d

Contents?: true

Size: 797 Bytes

Versions: 8

Compression:

Stored size: 797 Bytes

Contents

# frozen_string_literal: true

class LHC::Response::Data
  autoload :Base, 'lhc/response/data/base'
  autoload :Item, 'lhc/response/data/item'
  autoload :Collection, 'lhc/response/data/collection'

  include LHC::Response::Data::Base

  def initialize(response, data: nil)
    @response = response
    @data = data

    if as_json.is_a?(Hash)
      @base = LHC::Response::Data::Item.new(@response, data: data)
    elsif as_json.is_a?(Array)
      @base = LHC::Response::Data::Collection.new(@response, data: data)
    end
  end

  def method_missing(method, *args, &block) # rubocop:disable Style/MethodMissingSuper
    @base.send(method, *args, &block)
  end

  def respond_to_missing?(method_name, include_private = false)
    @base.respond_to?(method_name, include_private) || super
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
lhc-13.2.0 lib/lhc/response/data.rb
lhc-13.1.0 lib/lhc/response/data.rb
lhc-13.0.0 lib/lhc/response/data.rb
lhc-12.3.0 lib/lhc/response/data.rb
lhc-12.2.1 lib/lhc/response/data.rb
lhc-12.2.0 lib/lhc/response/data.rb
lhc-12.1.3 lib/lhc/response/data.rb
lhc-12.1.2 lib/lhc/response/data.rb