Class: Eh::Proxy::Proxy

Inherits:
Object
  • Object
show all
Defined in:
lib/eh/proxy/proxy.rb

Instance Method Summary collapse

Constructor Details

#initialize(stage_name, verbose) ⇒ Proxy



9
10
11
12
# File 'lib/eh/proxy/proxy.rb', line 9

def initialize(stage_name, verbose)
  @stage_name = stage_name
  @verbose = verbose
end

Instance Method Details

#add(name, url) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/eh/proxy/proxy.rb', line 40

def add(name, url)
  if name.nil? || url.nil?
    raise "Please provide name and url"
  end
  if find_proxy_by_name(name) || find_proxy_by_url(url)
    raise "Already configured proxy for '#{name} -> #{url}'"
  end

  Eh::Settings.current.data['proxies'] << {
    'url' => url,
    'name' => name,
    'default' => (Eh::Settings.current.proxies.length == 0)
  }
  Eh::Settings.current.write
end

#listObject



68
69
70
71
72
# File 'lib/eh/proxy/proxy.rb', line 68

def list
  Eh::Settings.current.proxies.each do |proxy|
    puts proxy.label
  end
end

#remove(name) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/eh/proxy/proxy.rb', line 30

def remove(name)
  proxy = find_proxy_by_name(name)
  if proxy.nil?
    raise "No proxy with name #{name}"
  end

  Eh::Settings.current.data['proxies'].reject! { |json| json['name'] == name}
  Eh::Settings.current.write
end

#select(name) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
# File 'lib/eh/proxy/proxy.rb', line 56

def select(name)
  proxy = find_proxy_by_name(name)
  if proxy.nil?
    raise "No proxy found with name #{name}"
  end

  Eh::Settings.current.data['proxies'].each do |json|
    json['default'] = (json['name'] == name)
  end
  Eh::Settings.current.write
end

#set(name = nil) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/eh/proxy/proxy.rb', line 14

def set(name = nil)
  proxy = find_proxy_by_name(name) || find_default_proxy
  if proxy.nil?
    raise "No proxy found"
  end
  Eh::Proxy::Settings::Git.new(stage, verbose).set(proxy.url)
  Eh::Proxy::Settings::Svn.new(stage, verbose).set(proxy.url)
  Eh::Proxy::Settings::Shell.new(stage, verbose).set(proxy.url)
end

#unsetObject



24
25
26
27
28
# File 'lib/eh/proxy/proxy.rb', line 24

def unset
  Eh::Proxy::Settings::Git.new(stage, verbose).unset
  Eh::Proxy::Settings::Svn.new(stage, verbose).unset
  Eh::Proxy::Settings::Shell.new(stage, verbose).unset
end