Module: TingYun::Support::LibraryDetection

Defined in:
lib/ting_yun/support/library_detection.rb

Defined Under Namespace

Classes: Dependent

Class Method Summary collapse

Class Method Details

.defer(&block) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ting_yun/support/library_detection.rb', line 17

def defer(&block)
  item = Dependent.new
  item.instance_eval(&block)

  if item.name
    seen_names = @items.map { |i| i.name }.compact
    if seen_names.include?(item.name)
      TingYun::Agent.logger.warn("Refusing to re-register LibraryDetection block with name '#{item.name}'")
      return @items
    end
  end

  @items << item
end

.dependency_by_name(name) ⇒ Object



40
41
42
# File 'lib/ting_yun/support/library_detection.rb', line 40

def dependency_by_name(name)
  @items.find {|i| i.name == name }
end

.detect!Object



32
33
34
35
36
37
38
# File 'lib/ting_yun/support/library_detection.rb', line 32

def detect!
  @items.each do |item|
    if item.dependencies_satisfied?
      item.execute
    end
  end
end

.installed?(name) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
47
# File 'lib/ting_yun/support/library_detection.rb', line 44

def installed?(name)
  item = dependency_by_name(name)
  item && item.executed
end

.itemsObject



49
50
51
# File 'lib/ting_yun/support/library_detection.rb', line 49

def items
  @items
end

.items=(new_items) ⇒ Object



53
54
55
# File 'lib/ting_yun/support/library_detection.rb', line 53

def items=(new_items)
  @items = new_items
end