Sha256: 2bd5c19babed3fa1b9096823fa9c1296e7cfe1c18dc220ae46252611687ccef1
Contents?: true
Size: 1.13 KB
Versions: 60
Compression:
Stored size: 1.13 KB
Contents
# frozen_string_literal: true require 'active_support' class LHS::Collection < LHS::Proxy module InternalCollection extend ActiveSupport::Concern # The internal collection class that includes enumerable # and insures to return LHS::Items in case of iterating items class Collection include Enumerable attr_accessor :raw delegate :length, :size, :first, :last, :sample, :[], :present?, :blank?, :empty?, :<<, :push, :compact, to: :raw def initialize(raw, parent, record) self.raw = raw @parent = parent @record = record end def to_ary map { |item| item } end def each(&_block) raw.each do |item| if item.is_a? Hash yield cast_item(item) else yield item end end end private def cast_item(item) record_by_href = LHS::Record.for_url(item[:href]) if item[:href] data = LHS::Data.new(item, @parent, @record) return (record_by_href || @record).new(data) if record_by_href || @record data end end end end
Version data entries
60 entries across 60 versions & 1 rubygems