Class: Ghaki::Registry::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/ghaki/registry/service.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_feature, _name, _klass) ⇒ Service

Returns a new instance of Service.



12
13
14
15
16
17
18
# File 'lib/ghaki/registry/service.rb', line 12

def initialize _feature, _name, _klass
  @feature = _feature
  @name = _name
  @klass = _klass
  @enabled = true
  @failure = nil
end

Instance Attribute Details

#failureObject

Returns the value of attribute failure.



9
10
11
# File 'lib/ghaki/registry/service.rb', line 9

def failure
  @failure
end

#featureObject

Returns the value of attribute feature.



9
10
11
# File 'lib/ghaki/registry/service.rb', line 9

def feature
  @feature
end

#klassObject

Returns the value of attribute klass.



9
10
11
# File 'lib/ghaki/registry/service.rb', line 9

def klass
  @klass
end

#nameObject

Returns the value of attribute name.



9
10
11
# File 'lib/ghaki/registry/service.rb', line 9

def name
  @name
end

Instance Method Details

#assert_can_create!Object



46
47
48
49
# File 'lib/ghaki/registry/service.rb', line 46

def assert_can_create!
  assert_not_failed!
  assert_enabled!
end

#assert_enabled!Object



33
34
35
# File 'lib/ghaki/registry/service.rb', line 33

def assert_enabled!
  raise PluginDisabledError.new( @feature, @name ) unless enabled?
end

#assert_not_failed!Object

Raises:



41
42
43
# File 'lib/ghaki/registry/service.rb', line 41

def assert_not_failed!
  raise @failure if failed?
end

#create(*args) ⇒ Object



50
51
52
53
# File 'lib/ghaki/registry/service.rb', line 50

def create *args
  assert_can_create!
  return @klass.new( *args )
end

#disable(val = true) ⇒ Object



30
31
32
# File 'lib/ghaki/registry/service.rb', line 30

def disable val=true
  self.enable !val
end

#enable(val = true) ⇒ Object



27
28
29
# File 'lib/ghaki/registry/service.rb', line 27

def enable val=true
  @enabled = val
end

#enabled?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/ghaki/registry/service.rb', line 24

def enabled?
  @enabled
end

#failed?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/ghaki/registry/service.rb', line 38

def failed?
  !@failure.nil?
end

#to_sObject



21
# File 'lib/ghaki/registry/service.rb', line 21

def to_s; @name.to_s end