Module: DatawireQuarkCore

Defined in:
lib/datawire-quark-core.rb

Defined Under Namespace

Modules: GettersSetters, HTTP, MyServer, Static Classes: Adapter, Buffer, Codec, Condition, Eventor, HTTPAdapter, HTTPSServer, HTTPServer, HTTPServlet, IncomingRequest, JSONObject, List, Lock, Logger, Mutex, QuarkLayout, QuarkObject, Runtime, ServerWebsocketAdapter, Servers, Servlet, Sources, TLS, WSAdapter, WSServlet, WebscketIssues, WebsocketAdapter, WebsocketClient

Constant Summary collapse

HTTPRequest =
HTTP::Request

Class Method Summary collapse

Class Method Details

.__getClass(obj) ⇒ Object



158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/datawire-quark-core.rb', line 158

def self.__getClass obj
  return nil if obj.nil?
  return "quark.bool" if (obj == true) or (obj == false)
  return "quark.String" if obj.is_a? String
  return "quark.int" if obj.is_a? Fixnum
  return "quark.float" if obj.is_a? Float
  return "quark.List<quark.Object>" if obj.is_a? Array
  return "quark.Map<quark.Object,quark.Object>" if obj.is_a? Hash
  if obj.respond_to? "_getClass" then
    return obj._getClass
  else
    return "quark.Object"
  end
end

._getClass(obj) ⇒ Object



153
154
155
156
157
# File 'lib/datawire-quark-core.rb', line 153

def self._getClass obj
  clz = __getClass obj
  # puts "runtime _getClass for #{obj} is #{clz}"
  clz
end

.cast(value, &block) ⇒ Object



1029
1030
1031
1032
1033
1034
1035
# File 'lib/datawire-quark-core.rb', line 1029

def self.cast(value, &block)
  # For now there is no easy way to check in Ruby that Quark class C is
  # subclass of of Quark class B, so don't check anything until that's fixed.
  # The correct way to do so would be via reflect.Class.hasInstance, probably,
  # but that doesn't support interfaces yet.
  value
end

.configureLogging(appender, level) ⇒ Object



461
462
463
464
465
466
467
468
469
470
471
472
473
# File 'lib/datawire-quark-core.rb', line 461

def self.configureLogging(appender, level)
  root = Logging.logger["quark"]
  if appender.name == ":STDOUT"
    app = Logging.appenders.stdout
  elsif appender.name == ":STDERR"
    app = Logging.appenders.stderr
  else
    app = Logging.appenders.file(appender.name)
  end
  app.layout = QuarkLayout.new
  root.appenders = app
  root.level = level
end

.default_codecObject



1025
1026
1027
# File 'lib/datawire-quark-core.rb', line 1025

def self.default_codec
  Codec.new
end

.getFileContents(path, result) ⇒ Object



144
145
146
147
148
149
150
151
# File 'lib/datawire-quark-core.rb', line 144

def self.getFileContents(path, result)
  begin
    result.value = File.read(path, {"encoding": "UTF-8"})
    result.finish(nil)
  rescue => ex
    result.finish(::Quark.quark.os.OSError.new(ex.message))
  end
end


128
129
130
# File 'lib/datawire-quark-core.rb', line 128

def self.print(message)
  Kernel.print message == nil ? 'null' : message, "\n"
end

.split(string, separator) ⇒ Object



136
137
138
139
140
141
142
# File 'lib/datawire-quark-core.rb', line 136

def self.split(string, separator)
  return ['', ''] if string == separator
  result = string.split(separator)
  result = result + [''] if string.end_with? separator

  result
end

.url_get(url) ⇒ Object



1021
1022
1023
# File 'lib/datawire-quark-core.rb', line 1021

def self.url_get(url)
  Net::HTTP.get(URI(url))
end

.urlencode(hash) ⇒ Object



132
133
134
# File 'lib/datawire-quark-core.rb', line 132

def self.urlencode(hash)
  URI.encode_www_form hash
end