Class: Spider::AppServerClient
- Inherits:
-
Object
- Object
- Spider::AppServerClient
- Defined in:
- lib/spiderfw/setup/app_server_client.rb
Instance Method Summary (collapse)
- - (Object) fetch_app(app_id)
- - (Object) get_deps(app_ids, options = {})
- - (Object) get_specs(app_ids)
- - (Object) http_get(url)
-
- (AppServerClient) initialize(url)
constructor
A new instance of AppServerClient.
- - (Object) load_specs
- - (Object) specs
Constructor Details
- (AppServerClient) initialize(url)
A new instance of AppServerClient
11 12 13 |
# File 'lib/spiderfw/setup/app_server_client.rb', line 11 def initialize(url) @url = url end |
Instance Method Details
- (Object) fetch_app(app_id)
56 57 58 59 60 61 62 63 |
# File 'lib/spiderfw/setup/app_server_client.rb', line 56 def fetch_app(app_id) tmp = Tempfile.new("spider-app-archive") tmp.binmode res = http_get(@url+"/pack/#{app_id}") tmp << res tmp.flush tmp.path end |
- (Object) get_deps(app_ids, options = {})
48 49 50 51 52 53 54 |
# File 'lib/spiderfw/setup/app_server_client.rb', line 48 def get_deps(app_ids, ={}) app_ids = [app_ids] unless app_ids.is_a?(Array) url = "#{@url}/deps/#{app_ids.join('+')}.json" url += "?no_optional=true" if [:no_optional] result = http_get(url) JSON.parse(result).map{ |app| Spider::App::AppSpec.parse_hash(app) } end |
- (Object) get_specs(app_ids)
42 43 44 45 46 |
# File 'lib/spiderfw/setup/app_server_client.rb', line 42 def get_specs(app_ids) app_ids = [app_ids] unless app_ids.is_a?(Array) result = http_get(@url+"/list/#{app_ids.join('+')}.json") JSON.parse(result).map{ |app| Spider::App::AppSpec.parse_hash(app) } end |
- (Object) http_get(url)
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/spiderfw/setup/app_server_client.rb', line 20 def http_get(url) uri = URI.parse(url) proxy = uri.find_proxy klass = nil if proxy proxy_user, proxy_pass = nil proxy_user, proxy_pass = proxy.userinfo.split(/:/) if proxy.userinfo klass = Net::HTTP::Proxy(proxy.host, proxy.port, proxy_user, proxy_pass) else klass = Net::HTTP end result = klass.get_response(uri) raise "#{result.code} #{result.} #{uri}" if result.is_a?(Net::HTTPClientError) result.body end |
- (Object) load_specs
36 37 38 39 40 |
# File 'lib/spiderfw/setup/app_server_client.rb', line 36 def load_specs result = http_get(@url+'/list.json') list = JSON.parse(result) @specs = list.map{ |app| Spider::App::AppSpec.parse_hash(app) } end |
- (Object) specs
15 16 17 18 |
# File 'lib/spiderfw/setup/app_server_client.rb', line 15 def specs load_specs unless @specs @specs end |