Class: Fitting::Report::Action

Inherits:
Object
  • Object
show all
Defined in:
lib/fitting/report/action.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(action) ⇒ Action

Returns a new instance of Action.



6
7
8
9
10
# File 'lib/fitting/report/action.rb', line 6

def initialize(action)
  @action = action
  @tests = Fitting::Report::Tests.new([])
  @responses = Fitting::Report::Responses.new(@action.responses)
end

Instance Attribute Details

#responsesObject (readonly)

Returns the value of attribute responses.



20
21
22
# File 'lib/fitting/report/action.rb', line 20

def responses
  @responses
end

#testsObject (readonly)

Returns the value of attribute tests.



20
21
22
# File 'lib/fitting/report/action.rb', line 20

def tests
  @tests
end

Instance Method Details

#add_test(test) ⇒ Object



22
23
24
# File 'lib/fitting/report/action.rb', line 22

def add_test(test)
  @tests.push(test)
end

#detailsObject



39
40
41
42
43
44
45
46
47
# File 'lib/fitting/report/action.rb', line 39

def details
  {
    tests_without_responses: @tests.without_responses,
    responses_details: @responses.to_a.map do |r|
                         { method: r.status, tests_size: r.tests.size, json_schema: r.id,
                           combinations: r.details }
                       end
  }
end

#methodObject



12
13
14
# File 'lib/fitting/report/action.rb', line 12

def method
  @action.method
end

#pathObject



16
17
18
# File 'lib/fitting/report/action.rb', line 16

def path
  @action.path.to_s
end

#path_match(find_path) ⇒ Object



26
27
28
# File 'lib/fitting/report/action.rb', line 26

def path_match(find_path)
  regexp =~ find_path
end

#regexpObject



30
31
32
33
34
35
36
37
# File 'lib/fitting/report/action.rb', line 30

def regexp
  return @regexp if @regexp

  str = Regexp.escape(path)
  str = str.gsub(/\\{\w+\\}/, '[^&=\/]+')
  str = "\\A#{str}\\z"
  @regexp = Regexp.new(str)
end