class ROM::Lint::EnumerableDataset

Ensures that a [ROM::EnumerableDataset] extension correctly yields arrays and tuples

@api public

Attributes

data[R]

The expected data

@api public

dataset[R]

The linted subject

@api public

Public Class Methods

new(dataset, data) click to toggle source

Create a linter for EnumerableDataset

@param [EnumerableDataset] dataset the linted subject @param [Object] data the expected data

@api public

# File lib/rom/lint/enumerable_dataset.rb, line 28
def initialize(dataset, data)
  @dataset = dataset
  @data = data
end

Public Instance Methods

lint_each() click to toggle source

Lint: Ensure that dataset yield tuples via each

@api public

# File lib/rom/lint/enumerable_dataset.rb, line 36
def lint_each
  result = []
  dataset.each do |tuple|
    result << tuple
  end
  return if result == data

  complain "#{dataset.class}#each must yield tuples"
end
lint_to_a() click to toggle source

Lint: Ensure that dataset's array equals to expected data

@api public

# File lib/rom/lint/enumerable_dataset.rb, line 49
def lint_to_a
  return if dataset.to_a == data

  complain "#{dataset.class}#to_a must cast dataset to an array"
end