Class: Avm::Rspec::LauncherController

Inherits:
Object
  • Object
show all
Defined in:
lib/avm/rspec/launcher_controller.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#remotes_dirObject

Returns the value of attribute remotes_dir.



12
13
14
# File 'lib/avm/rspec/launcher_controller.rb', line 12

def remotes_dir
  @remotes_dir
end

Instance Method Details

#application_source_path(application_id, path) ⇒ Object

Returns void.

Parameters:

  • application_id (String)
  • path (Pathname)

Returns:

  • void



17
18
19
20
# File 'lib/avm/rspec/launcher_controller.rb', line 17

def application_source_path(application_id, path)
  EacConfig::Node.context.current.entry("#{application_id}_dev.install.path").value =
    path.to_pathname.to_path
end

#context_set(settings_path, projects_root) ⇒ Object

Parameters:

  • settings_path (Pathname)
  • projects_root (Pathname)


24
25
26
27
28
29
30
# File 'lib/avm/rspec/launcher_controller.rb', line 24

def context_set(settings_path, projects_root)
  Avm::Launcher::Context.current = Avm::Launcher::Context.new(
    settings_file: settings_path.to_pathname.to_path,
    cache_root: Dir.mktmpdir
  )
  self.projects_root = projects_root
end

#default_settings_pathPathname

Returns:

  • (Pathname)


33
34
35
# File 'lib/avm/rspec/launcher_controller.rb', line 33

def default_settings_path
  templates_directory.join('settings.yml')
end

#dummy_directoryPathname

Returns:

  • (Pathname)


38
39
40
# File 'lib/avm/rspec/launcher_controller.rb', line 38

def dummy_directory
  templates_directory.join('dummy')
end

#init_git(subdir) ⇒ Object



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

def init_git(subdir)
  require 'avm/git/launcher/base'
  r = Avm::Git::Launcher::Base.new(File.join(projects_root, subdir))
  r.git
  r.execute!('config', 'user.email', '[email protected]')
  r.execute!('config', 'user.name', 'The User')
  r
end

#init_remote(name) ⇒ Object



47
48
49
50
51
52
# File 'lib/avm/rspec/launcher_controller.rb', line 47

def init_remote(name)
  require 'avm/git/launcher/base'
  r = Avm::Git::Launcher::Base.new(File.join(remotes_dir, name))
  r.init_bare
  r
end

#new_contextAvm::Launcher::Context



64
65
66
67
68
69
# File 'lib/avm/rspec/launcher_controller.rb', line 64

def new_context
  Avm::Launcher::Context.new(
    settings_file: default_settings_path,
    cache_root: Dir.mktmpdir
  )
end

#projects_rootObject

Parameters:

  • path (String)


72
73
74
# File 'lib/avm/rspec/launcher_controller.rb', line 72

def projects_root
  @projects_root ||= Dir.mktmpdir
end

#projects_root=(path) ⇒ Object

Parameters:

  • path (Pathname)


77
78
79
# File 'lib/avm/rspec/launcher_controller.rb', line 77

def projects_root=(path)
  @projects_root = path.to_pathname.to_path
end

#temp_context(settings_path) ⇒ Object

Parameters:

  • settings_path (Pathname)


43
44
45
# File 'lib/avm/rspec/launcher_controller.rb', line 43

def temp_context(settings_path)
  context_set(settings_path, Dir.mktmpdir)
end

#templates_directoryPathname

Returns:

  • (Pathname)


82
83
84
# File 'lib/avm/rspec/launcher_controller.rb', line 82

def templates_directory
  '../../../template/avm/rspec/launcher_controller'.to_pathname.expand_path(__dir__)
end

#touch_commit(repos, subpath) ⇒ Object



86
87
88
89
90
91
92
# File 'lib/avm/rspec/launcher_controller.rb', line 86

def touch_commit(repos, subpath)
  require 'fileutils'
  FileUtils.mkdir_p(File.dirname(repos.subpath(subpath)))
  FileUtils.touch(repos.subpath(subpath))
  repos.execute!('add', repos.subpath(subpath))
  repos.execute!('commit', '-m', subpath)
end