class OpenCPU::DelayedCalculation
Attributes
available_resources[RW]
location[RW]
Public Class Methods
new(location, resources = [])
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 11 def initialize(location, resources = []) @location = location @available_resources = {} parse_resources(location, resources) end
Public Instance Methods
console()
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 43 def console raise ResponseNotAvailableError unless @available_resources.has_key?(:console) process_resource @available_resources[:console].to_s end
graphics(which = 0, type = :svg)
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 17 def graphics(which = 0, type = :svg) raise ResponseNotAvailableError unless @available_resources.has_key?(:graphics) raise UnsupportedFormatError unless [:png, :svg].include?(type) process_resource @available_resources[:graphics][which].to_s + "/#{type}" end
info()
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 48 def info raise ResponseNotAvailableError unless @available_resources.has_key?(:info) process_resource @available_resources[:info].to_s end
source()
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 38 def source raise ResponseNotAvailableError unless @available_resources.has_key?(:source) process_resource @available_resources[:source].to_s end
stdout()
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 28 def stdout raise ResponseNotAvailableError unless @available_resources.has_key?(:stdout) process_resource @available_resources[:stdout].to_s end
value()
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 23 def value raise ResponseNotAvailableError unless @available_resources.has_key?(:value) process_resource @available_resources[:value].to_s end
warnings()
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 33 def warnings raise ResponseNotAvailableError unless @available_resources.has_key?(:warnings) process_resource @available_resources[:warnings].to_s end
Private Instance Methods
domain()
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 75 def domain uri = URI.parse(@location) "#{uri.scheme}://#{uri.host}:#{uri.port}" end
key(uri, location)
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 80 def key(uri, location) key = uri.to_s.gsub(location, '') key = :value if key == "R/.val" key = :graphics if key =~ /graphics\/\d/ key.to_sym end
parse_resources(location, resources)
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 62 def parse_resources(location, resources) resources.each do |resource| uri = URI.join(domain, resource) key = key(uri, location) if key == :graphics @available_resources[key] ||= [] @available_resources[key] << uri else @available_resources[key] = uri end end end
process_resource(resource)
click to toggle source
# File lib/opencpu/delayed_calculation.rb, line 55 def process_resource(resource) response = self.class.get resource if response.ok? response.body.strip end end