Module: Trellohub::Mocking

Defined in:
lib/trellohub/mocking.rb

Defined Under Namespace

Modules: NoRequest, Request

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.called_requestsObject (readonly)

Returns the value of attribute called_requests.



6
7
8
# File 'lib/trellohub/mocking.rb', line 6

def called_requests
  @called_requests
end

Class Method Details

.overriding_method(http_method) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/trellohub/mocking.rb', line 44

def overriding_method(http_method)
  "    def \#{http_method}_without_http(url, options = {})\n      Trellohub::Mocking.print_request(self.class.name, \"\#{http_method}\", url, options)\n    end\n  METHOD\nend\n"


52
53
54
55
56
57
# File 'lib/trellohub/mocking.rb', line 52

def print_request(klass, method, path, *body)
  push_called_request(klass, method, path)
  host = klass.split('::').first.constantize.web_endpoint
  puts "[#{method.upcase}] #{host}#{path}"
  ap body
end


30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/trellohub/mocking.rb', line 30

def print_request_summary
  puts "## Request Summary"

  if @called_requests
    @called_requests.keys.each do |klass|
      @called_requests[klass].keys.each do |method|
        puts "- #{klass} #{method.upcase}: #{@called_requests[klass][method].count}"
      end
    end
  else
    puts 'No requests'
  end
end

.push_called_request(klass, method, path) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/trellohub/mocking.rb', line 22

def push_called_request(klass, method, path)
  @called_requests = {} if @called_requests.nil?
  @called_requests[klass] = {} if @called_requests[klass].nil?
  @called_requests[klass][method] = [] if @called_requests[klass][method].nil?

  @called_requests[klass][method] << path
end

.request_methodsObject



18
19
20
# File 'lib/trellohub/mocking.rb', line 18

def request_methods
  i(post put patch delete)
end

.startObject



8
9
10
11
# File 'lib/trellohub/mocking.rb', line 8

def start
  ::Octokit::Client.__send__ :include, NoRequest
  ::Trell::Client.__send__ :include, NoRequest
end

.stopObject



13
14
15
16
# File 'lib/trellohub/mocking.rb', line 13

def stop
  ::Octokit::Client.__send__ :include, Request
  ::Trell::Client.__send__ :include, Request
end