Class: Avm::Instances::Base

Inherits:
Object show all
Includes:
AutoValues, Dockerizable, Entries, EacRubyUtils::Listable, EacRubyUtils::SimpleCache
Defined in:
lib/avm/instances/base.rb,
lib/avm/instances/base/auto_values.rb,
lib/avm/instances/base/dockerizable.rb,
lib/avm/instances/base/auto_values/web.rb,
lib/avm/instances/base/auto_values/data.rb,
lib/avm/instances/base/auto_values/ruby.rb,
lib/avm/instances/base/auto_values/admin.rb,
lib/avm/instances/base/auto_values/access.rb,
lib/avm/instances/base/auto_values/mailer.rb,
lib/avm/instances/base/auto_values/source.rb,
lib/avm/instances/base/auto_values/system.rb,
lib/avm/instances/base/auto_values/database.rb,
lib/avm/instances/base/auto_values/filesystem.rb

Direct Known Subclasses

EacWebappBase0::Instance, Self::Instance

Defined Under Namespace

Modules: AutoValues, Dockerizable

Constant Summary collapse

ID_PATTERN =
/\A([a-z0-9]+(?:\-[a-z0-9]+)*)_(.+)\z/.freeze

Instance Attribute Summary collapse

Attributes included from Dockerizable

#docker_image_options

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Entries

#entry, #full_entry_path, #inherited_entry_value, #other_entry_value, #path_prefix, #read_entry, #read_entry_optional

Methods included from Dockerizable

#docker_container_exist?, #docker_container_name

Constructor Details

#initialize(application, suffix) ⇒ Base

Returns a new instance of Base.



41
42
43
44
# File 'lib/avm/instances/base.rb', line 41

def initialize(application, suffix)
  @application = application
  @suffix = suffix.to_s
end

Instance Attribute Details

#applicationObject (readonly)

Returns the value of attribute application.



39
40
41
# File 'lib/avm/instances/base.rb', line 39

def application
  @application
end

#suffixObject (readonly)

Returns the value of attribute suffix.



39
40
41
# File 'lib/avm/instances/base.rb', line 39

def suffix
  @suffix
end

Class Method Details

.by_id(id) ⇒ Object



23
24
25
26
27
# File 'lib/avm/instances/base.rb', line 23

def by_id(id)
  application_id, suffix = parse_id(id)
  require 'avm/instances/application'
  new(::Avm::Instances::Application.new(application_id), suffix)
end

Instance Method Details

#host_env_uncachedObject



54
55
56
57
58
59
60
61
# File 'lib/avm/instances/base.rb', line 54

def host_env_uncached
  access = read_entry(:access, list: ::Avm::Instances::Base.lists.access.values)
  case access
  when 'local' then ::EacRubyUtils::Envs.local
  when 'ssh' then ::EacRubyUtils::Envs.ssh(read_entry('ssh.url'))
  else raise("Unmapped access value: \"#{access}\"")
  end
end

#idObject



46
47
48
# File 'lib/avm/instances/base.rb', line 46

def id
  "#{application.id}_#{suffix}"
end

#to_sObject



50
51
52
# File 'lib/avm/instances/base.rb', line 50

def to_s
  id
end