Sha256: d973f21f41cc4ee8ab7006a499effb5f55f2503bb857217220b8b54c559e15c9
Contents?: true
Size: 1.88 KB
Versions: 2
Compression:
Stored size: 1.88 KB
Contents
require 'rom/lint/linter' module ROM module Lint # Ensures that a [ROM::Repository] extension provides datasets through the # expected methods # # @api public class Repository < ROM::Lint::Linter # The repository identifier e.g. +:memory+ # # @api public attr_reader :identifier # The repository class # # @api public attr_reader :repository # The optional URI # # @api public attr_reader :uri # Create a repository linter # # @param [Symbol] identifier # @param [Class] repository # @param [String] uri optional def initialize(identifier, repository, uri = nil) @identifier = identifier @repository = repository @uri = uri end # Lint: Ensure that +repository+ setups up its instance # # @api public def lint_repository_setup return if repository_instance.instance_of? repository complain <<-STRING #{repository}.setup must return a repository instance but returned #{repository_instance.inspect} STRING end # Lint: Ensure that +repository_instance+ responds to +[]+ # # @api public def lint_dataset_reader return if repository_instance.respond_to? :[] complain "#{repository_instance} must respond to []" end # Lint: Ensure that +repository_instance+ responds to +dataset?+ # # @api public def lint_dataset_predicate return if repository_instance.respond_to? :dataset? complain "#{repository_instance} must respond to dataset?" end # Setup repository instance # # @api public def repository_instance if uri ROM::Repository.setup(identifier, uri) else ROM::Repository.setup(identifier) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rom-0.6.0.beta2 | lib/rom/lint/repository.rb |
rom-0.6.0.beta1 | lib/rom/lint/repository.rb |