Sha256: a15d3760fe744bccbc73ba5dc3574fad008b82bae37c4a079c094ea4ea4b8559

Contents?: true

Size: 1.2 KB

Versions: 46

Compression:

Stored size: 1.2 KB

Contents

require 'rom/lint/linter'

module ROM
  module Lint
    # Ensures that a [ROM::EnumerableDataset] extension correctly yields
    # arrays and tuples
    #
    # @api public
    class EnumerableDataset < ROM::Lint::Linter
      # The linted subject
      #
      # @api public
      attr_reader :dataset

      # The expected data
      #
      # @api public
      attr_reader :data

      # Create a linter for EnumerableDataset
      #
      # @param [EnumerableDataset] dataset the linted subject
      # @param [Object] data the expected data
      #
      # @api public
      def initialize(dataset, data)
        @dataset = dataset
        @data = data
      end

      # Lint: Ensure that +dataset+ yield tuples via +each+
      #
      # @api public
      def lint_each
        result = []
        dataset.each do |tuple|
          result << tuple
        end
        return if result == data

        complain "#{dataset.class}#each must yield tuples"
      end

      # Lint: Ensure that +dataset+'s array equals to expected +data+
      #
      # @api public
      def lint_to_a
        return if dataset.to_a == data

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

Version data entries

46 entries across 46 versions & 2 rubygems

Version Path
rom-core-4.2.1 lib/rom/lint/enumerable_dataset.rb
rom-core-4.2.0 lib/rom/lint/enumerable_dataset.rb
rom-core-4.1.2 lib/rom/lint/enumerable_dataset.rb
rom-core-4.1.1 lib/rom/lint/enumerable_dataset.rb
rom-core-4.1.0 lib/rom/lint/enumerable_dataset.rb
rom-core-4.0.2 lib/rom/lint/enumerable_dataset.rb
rom-core-4.0.1 lib/rom/lint/enumerable_dataset.rb
rom-3.3.3 lib/rom/lint/enumerable_dataset.rb
rom-core-4.0.0 lib/rom/lint/enumerable_dataset.rb
rom-3.3.2 lib/rom/lint/enumerable_dataset.rb
rom-core-4.0.0.rc2 lib/rom/lint/enumerable_dataset.rb
rom-core-4.0.0.rc1 lib/rom/lint/enumerable_dataset.rb
rom-core-4.0.0.beta3 lib/rom/lint/enumerable_dataset.rb
rom-3.3.1 lib/rom/lint/enumerable_dataset.rb
rom-core-4.0.0.beta2 lib/rom/lint/enumerable_dataset.rb
rom-3.3.0 lib/rom/lint/enumerable_dataset.rb
rom-core-4.0.0.beta1 lib/rom/lint/enumerable_dataset.rb
rom-3.2.3 lib/rom/lint/enumerable_dataset.rb
rom-3.2.2 lib/rom/lint/enumerable_dataset.rb
rom-3.2.1 lib/rom/lint/enumerable_dataset.rb