Sha256: 04c695c951c9e16721cdf0b3850d4d7add9cbfe06bf96f14e874d3210ea29cd3

Contents?: true

Size: 525 Bytes

Versions: 49

Compression:

Stored size: 525 Bytes

Contents

# frozen_string_literal: true

class LHC::Response::Data::Item < OpenStruct
  include LHC::Response::Data::Base

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

    set_dynamic_accessor_methods

    super(as_json)
  end

  def [](key)
    @hash ||= as_json.with_indifferent_access
    @hash[key]
  end

  private

  def set_dynamic_accessor_methods
    as_json.keys.each do |key|
      define_singleton_method key do |*args|
        as_open_struct.send key, *args
      end
    end
  end
end

Version data entries

49 entries across 49 versions & 1 rubygems

Version Path
lhc-15.2.1 lib/lhc/response/data/item.rb
lhc-15.2.0 lib/lhc/response/data/item.rb
lhc-15.1.3 lib/lhc/response/data/item.rb
lhc-15.1.2 lib/lhc/response/data/item.rb
lhc-15.1.1 lib/lhc/response/data/item.rb
lhc-15.1.0 lib/lhc/response/data/item.rb
lhc-16.0.0.pre.pro2162.2 lib/lhc/response/data/item.rb
lhc-16.0.0.pre.pro2162 lib/lhc/response/data/item.rb
lhc-15.0.1 lib/lhc/response/data/item.rb
lhc-15.0.0 lib/lhc/response/data/item.rb
lhc-14.0.0 lib/lhc/response/data/item.rb
lhc-13.4.0.pre.pro1766.1 lib/lhc/response/data/item.rb
lhc-13.2.0 lib/lhc/response/data/item.rb
lhc-13.1.0 lib/lhc/response/data/item.rb
lhc-13.0.0 lib/lhc/response/data/item.rb
lhc-12.3.0 lib/lhc/response/data/item.rb
lhc-12.2.1 lib/lhc/response/data/item.rb
lhc-12.2.0 lib/lhc/response/data/item.rb
lhc-12.1.3 lib/lhc/response/data/item.rb
lhc-12.1.2 lib/lhc/response/data/item.rb