Method: Shef::Extensions::Object#ensure_session_select_defined

Defined in:
lib/chef/shef/ext.rb

#ensure_session_select_definedObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/chef/shef/ext.rb', line 27

def ensure_session_select_defined
  # irb breaks if you prematurely define IRB::JobMangager
  # so these methods need to be defined at the latest possible time.
  unless jobs.respond_to?(:select_session_by_context)
    def jobs.select_session_by_context(&block)
      @jobs.select { |job| block.call(job[1].context.main)}
    end
  end

  unless jobs.respond_to?(:session_select)
    def jobs.select_shef_session(target_context)
      session = if target_context.kind_of?(Class)
        select_session_by_context { |main| main.kind_of?(target_context) }
      else
        select_session_by_context { |main| main.equal?(target_context) }
      end
      Array(session.first)[1]
    end
  end
end