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

Returns a new instance of 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



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

def add(name, url)
  if name.nil? || url.nil?
    raise "Please provide NAME and PROXY_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
  puts "Proxy [#{name}] has been added".green
end

#listObject



73
74
75
76
77
78
# File 'lib/eh/proxy/proxy.rb', line 73

def list
  puts "Defined Proxies"
  Eh::Settings.current.proxies.each do |proxy|
    puts proxy.label.send( proxy.label =~ /\(default\)/ ? :green : :white )
  end
end

#remove(name) ⇒ Object



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

def remove(name)
  raise "Needs a proxy NAME to remove" if name.nil?
  proxy = find_proxy_by_name(name)
  if proxy.nil?
    raise "No proxy with given name [#{name}]"
  end

  Eh::Settings.current.data['proxies'].reject! { |json| json['name'] == name}
  Eh::Settings.current.write
  puts "Proxy [#{name}] has been removed".green
end

#select(name) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/eh/proxy/proxy.rb', line 59

def select(name)
  raise "Needs a proxy NAME to select" if name.nil?
  proxy = find_proxy_by_name(name)
  if proxy.nil?
    raise "No proxy found with given name [#{name}]"
  end

  Eh::Settings.current.data['proxies'].each do |json|
    json['default'] = (json['name'] == name)
  end
  Eh::Settings.current.write
  puts "Proxy [#{name}] has been selected".green
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