Class: DockerRailsProxy::Base

Inherits:
Object
  • Object
show all
Includes:
Callbacks, InheritableAttributes, Logger, Rsync
Defined in:
lib/docker_rails_proxy.rb

Direct Known Subclasses

AwsCli, Docker, Kubectl

Constant Summary

Constants included from Callbacks

Callbacks::INHERITABLE_CALLBACKS, Callbacks::UNINHERITABLE_CALLBACKS

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Logger

included, #logger

Methods included from Rsync

included, #sync

Methods included from Callbacks

included

Methods included from InheritableAttributes

included

Constructor Details

#initialize(arguments:) ⇒ Base

Returns a new instance of Base.



32
33
34
# File 'lib/docker_rails_proxy.rb', line 32

def initialize(arguments:)
  @arguments = arguments
end

Instance Attribute Details

#argumentsObject (readonly)

Returns the value of attribute arguments.



30
31
32
# File 'lib/docker_rails_proxy.rb', line 30

def arguments
  @arguments
end

Class Method Details

.build_path(path = nil) ⇒ Object



37
38
39
# File 'lib/docker_rails_proxy.rb', line 37

def build_path(path = nil)
  File.join(APP_PATH, block_given? ? yield : path)
end

.call(options) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/docker_rails_proxy.rb', line 49

def call(options)
  klass = _run_build_callbacks params: options

  klass.send :_run_before_initialize_callbacks

  resource = klass.new(options)

  klass.send :_run_after_initialize_callbacks, resource: resource

  klass.send :_run_validation_callbacks, resource: resource

  klass.send :_run_before_process_callbacks, resource: resource

  result = resource.process

  klass.send :_run_after_process_callbacks, resource: resource
  result
end

.commandObject



41
42
43
# File 'lib/docker_rails_proxy.rb', line 41

def command
  name.sub('DockerRailsProxy::', ''.freeze).parameterize.sub('--', ' '.freeze)
end

.execute(options) ⇒ Object



45
46
47
# File 'lib/docker_rails_proxy.rb', line 45

def execute(options)
  system "#{build_path("bin/#{APP_NAME}")} #{command} #{options}"
end

Instance Method Details

#processObject

Raises:

  • (NotImplementedError)


69
70
71
# File 'lib/docker_rails_proxy.rb', line 69

def process
  raise NotImplementedError, 'Subclasses must implement a process method'
end