Class: Reservoir::Project

Inherits:
Object
  • Object
show all
Defined in:
lib/reservoir/project.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data = {}) ⇒ Project

Returns a new instance of Project.



7
8
9
10
11
12
13
# File 'lib/reservoir/project.rb', line 7

def initialize(data = {})
  @file = data[:file]
  @remote_user = data[:remote_user]
  @remote_server = data[:remote_server]
  @scripts = data[:scripts] || []
  @display = Project.sym_entries(data[:display]) || :stdio
end

Instance Attribute Details

#displayObject

Returns the value of attribute display.



5
6
7
# File 'lib/reservoir/project.rb', line 5

def display
  @display
end

#fileObject

Returns the value of attribute file.



5
6
7
# File 'lib/reservoir/project.rb', line 5

def file
  @file
end

#remote_serverObject

Returns the value of attribute remote_server.



5
6
7
# File 'lib/reservoir/project.rb', line 5

def remote_server
  @remote_server
end

#remote_userObject

Returns the value of attribute remote_user.



5
6
7
# File 'lib/reservoir/project.rb', line 5

def remote_user
  @remote_user
end

#scriptsObject

Returns the value of attribute scripts.



5
6
7
# File 'lib/reservoir/project.rb', line 5

def scripts
  @scripts
end

Class Method Details

.load_from_file(file) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/reservoir/project.rb', line 15

def self.load_from_file(file)
  options = YAML::load( File.open( file ) )
  default_args = { file: file, scripts: options["scripts"].each.collect { |script| script["name"] }, display: sym_entries(options["display"]) }
  all_projects = []
  all_servers = options["remotes"]
  if all_servers.nil?
    all_projects << Project.new(default_args)
  else
    all_servers.each do |remote|
      all_projects << Project.new(default_args.merge( remote_user: remote["user"], remote_server: remote["server"], display: resolve_placeholders(default_args[:display],remote)))
    end
  end
  all_projects
end

Instance Method Details

#nameObject



34
35
36
37
38
# File 'lib/reservoir/project.rb', line 34

def name
  return "local" if @remote_server.nil?
  return @remote_server if @remote_user.nil?
  "#{@remote_user}@#{@remote_server}"
end

#template(clazz) ⇒ Object



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

def template(clazz)
  clazz.new(remote_user: @remote_user, remote_server: @remote_server)
end