Class: RSpec::Covers::Declaration

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/covers/declaration.rb

Defined Under Namespace

Classes: Resolver

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(covers:, uses:, unresolved: []) ⇒ Declaration

Returns a new instance of Declaration.



14
15
16
17
18
# File 'lib/rspec/covers/declaration.rb', line 14

def initialize(covers:, uses:, unresolved: [])
  @covers = covers
  @uses = uses
  @unresolved = unresolved
end

Instance Attribute Details

#coversObject (readonly)

Returns the value of attribute covers.



12
13
14
# File 'lib/rspec/covers/declaration.rb', line 12

def covers
  @covers
end

#unresolvedObject (readonly)

Returns the value of attribute unresolved.



12
13
14
# File 'lib/rspec/covers/declaration.rb', line 12

def unresolved
  @unresolved
end

#usesObject (readonly)

Returns the value of attribute uses.



12
13
14
# File 'lib/rspec/covers/declaration.rb', line 12

def uses
  @uses
end

Class Method Details

.from_example(example, config) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rspec/covers/declaration.rb', line 20

def self.from_example(example, config)
  resolver = Resolver.new(config)
  covers = MetadataReader.declarations_for(example, :covers)
  uses = MetadataReader.declarations_for(example, :uses)

  new(
    covers: covers.flat_map { |item| resolver.resolve(item) },
    uses: uses.flat_map { |item| resolver.resolve(item) },
    unresolved: resolver.unresolved
  )
end

Instance Method Details

#declared?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/rspec/covers/declaration.rb', line 32

def declared?
  covers.any? || uses.any?
end

#locationsObject



40
41
42
43
44
# File 'lib/rspec/covers/declaration.rb', line 40

def locations
  regions.each_with_object(Set.new) do |region, set|
    set.merge(region.locations)
  end
end

#regionsObject



36
37
38
# File 'lib/rspec/covers/declaration.rb', line 36

def regions
  covers + uses
end