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
110 111 112 |
# File 'lib/guard/docker.rb', line 110 def failed notify , :image => :failed end |
#notify(message, options = {}) ⇒ Object
114 115 116 |
# File 'lib/guard/docker.rb', line 114 def notify(, = {}) Notifier.notify(, ) end |
#pending(message) ⇒ Object
102 103 104 |
# File 'lib/guard/docker.rb', line 102 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/…
63 64 |
# File 'lib/guard/docker.rb', line 63 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/…
72 73 |
# File 'lib/guard/docker.rb', line 72 def run_all end |
#run_on_additions(paths) ⇒ Object
Called on file(s) additions that the Guard plugin watches.
81 82 |
# File 'lib/guard/docker.rb', line 81 def run_on_additions(paths) end |
#run_on_modifications(paths) ⇒ Object
Called on file(s) modifications that the Guard plugin watches.
90 91 |
# File 'lib/guard/docker.rb', line 90 def run_on_modifications(paths) end |
#run_on_removals(paths) ⇒ Object
Called on file(s) removals that the Guard plugin watches.
99 100 |
# File 'lib/guard/docker.rb', line 99 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 43 44 |
# File 'lib/guard/docker.rb', line 29 def start system("docker stop guard-#{@image}") 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).
51 52 53 54 55 |
# File 'lib/guard/docker.rb', line 51 def stop cmd = [] cmd << "docker stop guard-#{@image}" system(cmd.join(' ')) end |
#success(message) ⇒ Object
106 107 108 |
# File 'lib/guard/docker.rb', line 106 def success notify , :image => :success end |