class Barrister::Rails::Client
Constants
- DEFAULT_BARRISTER_TYPES
Public Class Methods
new(transport_or_uri_or_handler, json_path=nil)
click to toggle source
# File lib/barrister-rails.rb, line 99 def initialize(transport_or_uri_or_handler, json_path=nil) if transport_or_uri_or_handler.is_a?(String) transport = Barrister::HttpTransport.new(transport_or_uri_or_handler) elsif transport_or_uri_or_handler.class.to_s.split('::').first == 'Barrister' transport = transport_or_uri_or_handler else raise 'json_path must be provided if registering a handler directly' unless json_path container = Barrister::IntraProcessContainer.new json_path, transport_or_uri_or_handler transport = Barrister::IntraProcessTransport.new container end @client = Barrister::Client.new(transport) @custom_types = Hash.new interfaces = @client .instance_variable_get('@contract') .interfaces pairs = interfaces .map { |iface| iface.functions } .flatten .map { |fx| [fx.name.to_sym, { type: fx.returns['type'], is_array: fx.returns['is_array'] } ] } fx_metadata = Hash[pairs] @interface_proxies = interfaces.map { |iface| InterfaceProxy.new iface.name, @client, fx_metadata } end
Public Instance Methods
method_missing(name, *args)
click to toggle source
# File lib/barrister-rails.rb, line 127 def method_missing(name, *args) name_as_string = name.to_s @interface_proxies.find { |iface_proxy| iface_proxy.name == name_as_string } end