Sha256: ba7ac9acda45711849c92a2859850f7420612fe55a004867a0157e89d8980f42

Contents?: true

Size: 660 Bytes

Versions: 7

Compression:

Stored size: 660 Bytes

Contents

# frozen_string_literal: true

module Phlex
	module Collection
		include Experimental

		def initialize(collection: nil, item: nil)
			unless collection || item
				raise ArgumentError, "You must pass a collection or an item as a keyword argument."
			end

			@collection = collection
			@item = item
		end

		def template
			@item ? item_template : collection_template { yield_items }
		end

		private def yield_items
			if @item
				raise ArgumentError, "You can only yield_items when rendering a collection. You are currently rendering an item."
			end

			@collection.each do |item|
				@item = item
				item_template
			end

			@item = nil
		end
	end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
phlex-1.0.1 lib/phlex/collection.rb
phlex-1.1.1 lib/phlex/collection.rb
phlex-1.2.2 lib/phlex/collection.rb
phlex-1.2.1 lib/phlex/collection.rb
phlex-1.2.0 lib/phlex/collection.rb
phlex-1.1.0 lib/phlex/collection.rb
phlex-1.0.0 lib/phlex/collection.rb