Module: XRPC

Defined in:
lib/xrpc/client.rb,
lib/xrpc/lexicon.rb,
lib/xrpc/lexicon.rb,
lib/xrpc/version.rb

Defined Under Namespace

Classes: BaseLexicon, Client, Procedure, Query

Constant Summary collapse

VERSION =
"0.1.7.2"

Class Method Summary collapse

Class Method Details

.client(url) ⇒ Object



6
7
8
# File 'lib/xrpc/client.rb', line 6

def client(url)
  XRPC::Client.new(url)
end

.xrpc_object_from_json(json_hash) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/xrpc/lexicon.rb', line 13

def self.xrpc_object_from_json(json_hash)
  json_hash[:id] ? lexicon = json_hash[:id] : lexicon = json_hash["id"]
  json_hash[:defs] ? defs = json_hash[:defs] : defs = json_hash["defs"]
  defs[:main] ? main_def = defs[:main] : main_def = defs["main"]
  main_def[:type] ? type = main_def[:type].to_sym : type = main_def["type"].to_sym
  main_def[:parameters] ? args_list = main_def[:parameters][:required] : args_list = main_def["parameters"]["required"]
  xrpc_proc(lexicon, type, args_list)
end

.xrpc_proc(lexicon, type, args_list, server = "https://bsky.social") ⇒ Object



2
3
4
5
6
7
8
9
10
11
# File 'lib/xrpc/lexicon.rb', line 2

def self.xrpc_proc(lexicon, type, args_list, server = "https://bsky.social")
  case type
  when :query
    return XRPC::Query.new(lexicon, args_list, server)
  when :procedure
    return XRPC::Procedure.new(lexicon, args_list, server)
  else
    raise ArgumentError, "Invalid type: #{type}. Expected :query or :procedure."
  end
end