module Malachite
Constants
- VERSION
Public Class Methods
add_to_function_cache(method_name)
click to toggle source
# File lib/malachite/function_cache.rb, line 19 def self.add_to_function_cache(method_name) function_cache = Malachite.function_cache function = Malachite.fiddle_function(method_name) function_cache[method_name] = function Malachite.function_cache = function_cache function end
called_method(method_name)
click to toggle source
# File lib/malachite/function_cache.rb, line 38 def self.called_method(method_name) "call#{method_name.to_s.camelize}" end
dump_json(object)
click to toggle source
# File lib/malachite.rb, line 26 def self.dump_json(object) JSON.generate(object) end
dylib()
click to toggle source
# File lib/malachite/function_cache.rb, line 27 def self.dylib @dylib ||= Fiddle.dlopen(Malachite.shared_object_path) rescue Fiddle::DLError raise Malachite::DLError, 'Unable to open dynamic library.' end
fiddle_function(method_name)
click to toggle source
# File lib/malachite/function_cache.rb, line 33 def self.fiddle_function(method_name) call_method = Malachite.called_method(method_name) Fiddle::Function.new(Malachite.dylib[call_method], [Fiddle::TYPE_VOIDP], Fiddle::TYPE_VOIDP) end
from_function_cache(method_name)
click to toggle source
# File lib/malachite/function_cache.rb, line 12 def self.from_function_cache(method_name) existing_function = Malachite.function_cache[method_name] return existing_function unless existing_function.nil? Malachite.add_to_function_cache(method_name) end
function_cache()
click to toggle source
# File lib/malachite/function_cache.rb, line 4 def self.function_cache @function_cache ||= {} end
function_cache=(cache)
click to toggle source
# File lib/malachite/function_cache.rb, line 8 def self.function_cache=(cache) @function_cache = cache end
load_json(string)
click to toggle source
# File lib/malachite.rb, line 22 def self.load_json(string) JSON.parse(string) end
method_missing(name, args)
click to toggle source
# File lib/malachite.rb, line 18 def self.method_missing(name, args) Malachite::Client.new(name, args).call end
setup!()
click to toggle source
# File lib/malachite/railtie.rb, line 4 def self.setup! Dir.glob(Rails.root.join('tmp', '*.{so,go,h}')).each do |file| File.delete(file) end Malachite::Compiler.new.compile end