Class: Gitomator::BaseService
- Inherits:
-
Object
- Object
- Gitomator::BaseService
show all
- Defined in:
- lib/gitomator/service.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(provider, opts = {}) ⇒ BaseService
Returns a new instance of BaseService.
9
10
11
12
|
# File 'lib/gitomator/service.rb', line 9
def initialize(provider, opts = {})
@provider = provider
@blocks = { :before => [], :after => [], :error => [] }
end
|
Instance Attribute Details
#provider ⇒ Object
Returns the value of attribute provider.
7
8
9
|
# File 'lib/gitomator/service.rb', line 7
def provider
@provider
end
|
Instance Method Details
#after_each_service_call(&block) ⇒ Object
29
30
31
|
# File 'lib/gitomator/service.rb', line 29
def after_each_service_call(&block)
@blocks[:after].push block
end
|
#before_each_service_call(&block) ⇒ Object
22
23
24
|
# File 'lib/gitomator/service.rb', line 22
def before_each_service_call(&block)
@blocks[:before].push block
end
|
#on_service_call_error(&block) ⇒ Object
36
37
38
|
# File 'lib/gitomator/service.rb', line 36
def on_service_call_error(&block)
@blocks[:error].push block
end
|
#service_call(method, *args) ⇒ Object
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/gitomator/service.rb', line 43
def service_call(method, *args)
result = nil
@blocks[:before].each {|block| self.instance_exec(method, args, &block) }
begin
if provider.respond_to?(method)
result = @provider.send(method, *args)
else
raise Gitomator::Exception::UnsupportedProviderMethod.new(@provider, method)
end
rescue Exception => e
@blocks[:error].each {|block| self.instance_exec(method, args, e, &block) }
raise e
end
@blocks[:after].each {|block| self.instance_exec(method, args, result, &block) }
return result
end
|