Class: Resources::Tube

Inherits:
BaseResource show all
Includes:
ToTubePrompter, TubePrompter
Defined in:
lib/pvdgm-bs-client/resources/tube.rb

Instance Attribute Summary

Attributes inherited from BaseResource

#options, #prompter

Instance Method Summary collapse

Methods included from ToTubePrompter

#to_tube_name

Methods included from TubePrompter

#tube_name

Methods inherited from BaseResource

#initialize

Constructor Details

This class inherits a constructor from BaseResource

Instance Method Details

#buriedObject



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/pvdgm-bs-client/resources/tube.rb', line 64

def buried
  tube = tube_name
  result = get("beanstalk/tubes/#{Base64.urlsafe_encode64(tube_name)}/buried")
  if result.has_key?('error')
    puts
    puts result['error']
  else
    puts "\nJobs in the Buried state:"
    table = Terminal::Table.new headings: [ 'Id', 'Body' ] do | t |
      t << [ result.keys.first, result.values.first ]
    end
    puts table
  end
  puts
end

#delayedObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/pvdgm-bs-client/resources/tube.rb', line 48

def delayed
  tube = tube_name
  result = get("beanstalk/tubes/#{Base64.urlsafe_encode64(tube_name)}/delayed")
  if result.has_key?('error')
    puts
    puts result['error']
  else
    puts "\nJobs in the Delayed state:"
    table = Terminal::Table.new headings: [ 'Id', 'Body' ] do | t |
      t << [ result.keys.first, result.values.first ]
    end
    puts table
  end
  puts
end

#delete_all_jobsObject



88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/pvdgm-bs-client/resources/tube.rb', line 88

def delete_all_jobs
  tube = tube_name
  puts
  state = prompter.choose do | menu |
    menu.prompt = "Select the state of the jobs to be deleted: "
    menu.choice('ready', 'All jobs in the ready state') { 'ready' }
    menu.choice('buried', 'All jobs in the buried state') { 'buried' }
  end
  result = delete("beanstalk/tubes/#{Base64.urlsafe_encode64(tube_name)}/all_jobs?state=#{state}")
  puts "\nAll jobs deleted"
  puts result['eat_job']
  puts
end

#delete_one_jobObject



80
81
82
83
84
85
86
# File 'lib/pvdgm-bs-client/resources/tube.rb', line 80

def delete_one_job
  tube = tube_name
  result = delete("beanstalk/tubes/#{Base64.urlsafe_encode64(tube_name)}/one_job")
  puts "\nJob deleted"
  puts result['eat_job']
  puts
end

#kickObject



119
120
121
122
123
124
125
126
# File 'lib/pvdgm-bs-client/resources/tube.rb', line 119

def kick
  tube = tube_name
  num_jobs = prompter.ask("Number of jobs to kick: ", Integer) { |q| q.default = 1 }
  result = get("beanstalk/tubes/#{Base64.urlsafe_encode64(tube_name)}/kick/#{num_jobs}")
  puts "\nKick #{num_jobs} in tube '#{tube}':"
  puts result['kick']
  puts
end

#kill_workerObject



111
112
113
114
115
116
117
# File 'lib/pvdgm-bs-client/resources/tube.rb', line 111

def kill_worker
  tube = tube_name
  result = delete("beanstalk/tubes/#{Base64.urlsafe_encode64(tube_name)}/worker")
  puts "\nWorker killed:"
  puts result['kill_worker']
  puts
end

#listObject



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/pvdgm-bs-client/resources/tube.rb', line 7

def list
  result = get("beanstalk/tubes")
  puts "\nBeanstalk tubes"
  table = Terminal::Table.new headings: [ 'Tube Name' ] do | t |
    result.each do | tube_name |
      t << [ tube_name ]
    end
  end
  puts table
  puts
end

#moveObject



102
103
104
105
106
107
108
109
# File 'lib/pvdgm-bs-client/resources/tube.rb', line 102

def move
  tube = tube_name
  to_tube = to_tube_name
  result = delete("beanstalk/tubes/#{Base64.urlsafe_encode64(tube_name)}/move/#{Base64.urlsafe_encode64(to_tube)}")
  puts "\nAll jobs moved from '#{tube}' to '#{to_tube}':"
  puts result['eat_job']
  puts
end

#readyObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/pvdgm-bs-client/resources/tube.rb', line 32

def ready
  tube = tube_name
  result = get("beanstalk/tubes/#{Base64.urlsafe_encode64(tube_name)}/ready")
  if result.has_key?('error')
    puts
    puts result['error']
  else
    puts "\nJobs in the Ready state:"
    table = Terminal::Table.new headings: [ 'Id', 'Body' ] do | t |
      t << [ result.keys.first, result.values.first ]
    end
    puts table
  end
  puts
end

#showObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/pvdgm-bs-client/resources/tube.rb', line 19

def show
  tube = tube_name
  result = get("beanstalk/tubes/#{Base64.urlsafe_encode64(tube_name)}")
  puts "\nStatistics for tube: #{tube}"
  table = Terminal::Table.new headings: [ 'Key', 'Value' ] do | t |
    result.each_pair do | key, value |
      t << [ key, value ]
    end
  end
  puts table
  puts
end