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:, additional_arguments:) ⇒ Base

Returns a new instance of Base.



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

def initialize(arguments:, additional_arguments:)
  @arguments            = arguments
  @additional_arguments = additional_arguments
end

Instance Attribute Details

#additional_argumentsObject (readonly)

Returns the value of attribute additional_arguments.



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

def additional_arguments
  @additional_arguments
end

#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



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

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

.call(options) ⇒ Object



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

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



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

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

.execute(options) ⇒ Object



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

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

Instance Method Details

#processObject

Raises:

  • (NotImplementedError)


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

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