Class: Guard::Docker
- Inherits:
-
Plugin
- Object
- Plugin
- Guard::Docker
- Defined in:
- lib/guard/docker.rb
Instance Method Summary collapse
- #failed(message) ⇒ Object
-
#initialize(options = {}) ⇒ Docker
constructor
Initializes a Guard plugin.
- #notify(message, options = {}) ⇒ Object
- #pending(message) ⇒ Object
-
#reload ⇒ Object
Called when ‘reload|r|z + enter` is pressed.
-
#run_all ⇒ Object
Called when just ‘enter` is pressed This method should be principally used for long action like running all specs/tests/…
-
#run_on_additions(paths) ⇒ Object
Called on file(s) additions that the Guard plugin watches.
-
#run_on_modifications(paths) ⇒ Object
Called on file(s) modifications that the Guard plugin watches.
-
#run_on_removals(paths) ⇒ Object
Called on file(s) removals that the Guard plugin watches.
-
#start ⇒ Object
Called once when Guard starts.
-
#stop ⇒ Object
Called when ‘stop|quit|exit|s|q|e + enter` is pressed (when Guard quits).
- #success(message) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Docker
Initializes a Guard plugin. Don’t do any work here, especially as Guard plugins get initialized even if they are not in an active group!
14 15 16 17 18 19 20 21 22 |
# File 'lib/guard/docker.rb', line 14 def initialize( = {}) @image = .fetch(:image) @host_port = .fetch(:host_port) @container_port = .fetch(:container_port) @env_vars = .fetch(:env_vars) super end |
Instance Method Details
#failed(message) ⇒ Object
108 109 110 |
# File 'lib/guard/docker.rb', line 108 def failed notify , :image => :failed end |
#notify(message, options = {}) ⇒ Object
112 113 114 |
# File 'lib/guard/docker.rb', line 112 def notify(, = {}) Notifier.notify(, ) end |
#pending(message) ⇒ Object
100 101 102 |
# File 'lib/guard/docker.rb', line 100 def pending notify , :image => :pending end |
#reload ⇒ Object
Called when ‘reload|r|z + enter` is pressed. This method should be mainly used for “reload” (really!) actions like reloading passenger/spork/bundler/…
61 62 |
# File 'lib/guard/docker.rb', line 61 def reload end |
#run_all ⇒ Object
Called when just ‘enter` is pressed This method should be principally used for long action like running all specs/tests/…
70 71 |
# File 'lib/guard/docker.rb', line 70 def run_all end |
#run_on_additions(paths) ⇒ Object
Called on file(s) additions that the Guard plugin watches.
79 80 |
# File 'lib/guard/docker.rb', line 79 def run_on_additions(paths) end |
#run_on_modifications(paths) ⇒ Object
Called on file(s) modifications that the Guard plugin watches.
88 89 |
# File 'lib/guard/docker.rb', line 88 def run_on_modifications(paths) end |
#run_on_removals(paths) ⇒ Object
Called on file(s) removals that the Guard plugin watches.
97 98 |
# File 'lib/guard/docker.rb', line 97 def run_on_removals(paths) end |
#start ⇒ Object
Called once when Guard starts. Please override initialize method to init stuff.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/guard/docker.rb', line 29 def start cmd = [] cmd << 'docker run --rm' cmd << "-p #{@host_port}:#{@container_port}" @env_vars.each do |key, value| cmd << "-e #{key}=#{value}" end cmd << "--name=guard-#{@image}" cmd << @image spawn(cmd.join(' ')) success "#{@image} is running" end |
#stop ⇒ Object
Called when ‘stop|quit|exit|s|q|e + enter` is pressed (when Guard quits).
49 50 51 52 53 |
# File 'lib/guard/docker.rb', line 49 def stop cmd = [] cmd << "docker stop guard-#{@image}" system(cmd.join(' ')) end |
#success(message) ⇒ Object
104 105 106 |
# File 'lib/guard/docker.rb', line 104 def success notify , :image => :success end |