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.



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

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.



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

def additional_arguments
  @additional_arguments
end

#additional_arguments_optionsObject

Returns the value of attribute additional_arguments_options.



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

def additional_arguments_options
  @additional_arguments_options
end

#argumentsObject (readonly)

Returns the value of attribute arguments.



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

def arguments
  @arguments
end

Class Method Details

.build_path(path = nil) ⇒ Object



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

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

.call(options) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/docker_rails_proxy.rb', line 59

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



51
52
53
# File 'lib/docker_rails_proxy.rb', line 51

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

.execute(options) ⇒ Object



55
56
57
# File 'lib/docker_rails_proxy.rb', line 55

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

Instance Method Details

#processObject

Raises:

  • (NotImplementedError)


79
80
81
# File 'lib/docker_rails_proxy.rb', line 79

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