Module: Arango

Defined in:
lib/arango.rb,
lib/arango/aql.rb,
lib/arango/foxx.rb,
lib/arango/task.rb,
lib/arango/user.rb,
lib/arango/view.rb,
lib/arango/error.rb,
lib/arango/index.rb,
lib/arango/cursor.rb,
lib/arango/result.rb,
lib/arango/server.rb,
lib/arango/request.rb,
lib/arango/version.rb,
lib/arango/database.rb,
lib/arango/document.rb,
lib/arango/error_db.rb,
lib/arango/edge/base.rb,
lib/arango/edge/mixin.rb,
lib/arango/graph/base.rb,
lib/arango/graph/mixin.rb,
lib/arango/replication.rb,
lib/arango/search_view.rb,
lib/arango/server/user.rb,
lib/arango/transaction.rb,
lib/arango/view/basics.rb,
lib/arango/server/async.rb,
lib/arango/server/tasks.rb,
lib/arango/database/user.rb,
lib/arango/document/base.rb,
lib/arango/server/agency.rb,
lib/arango/database/tasks.rb,
lib/arango/document/mixin.rb,
lib/arango/database/graphs.rb,
lib/arango/driver/typhoeus.rb,
lib/arango/graph/definition.rb,
lib/arango/requests/job/get.rb,
lib/arango/server/databases.rb,
lib/arango/database/analyzer.rb,
lib/arango/requests/job/list.rb,
lib/arango/requests/task/all.rb,
lib/arango/requests/task/get.rb,
lib/arango/requests/user/get.rb,
lib/arango/requests/view/get.rb,
lib/arango/server/monitoring.rb,
lib/arango/edge/class_methods.rb,
lib/arango/requests/aql/parse.rb,
lib/arango/requests/graph/get.rb,
lib/arango/requests/index/get.rb,
lib/arango/requests/wal/flush.rb,
lib/arango/database/http_route.rb,
lib/arango/graph/class_methods.rb,
lib/arango/helper/satisfaction.rb,
lib/arango/requests/job/cancel.rb,
lib/arango/requests/job/delete.rb,
lib/arango/requests/job/result.rb,
lib/arango/server/opal_support.rb,
lib/arango/database/aql_queries.rb,
lib/arango/database/collections.rb,
lib/arango/database/replication.rb,
lib/arango/database/view_access.rb,
lib/arango/edge_collection/base.rb,
lib/arango/requests/aql/explain.rb,
lib/arango/requests/backup/list.rb,
lib/arango/requests/bulk/export.rb,
lib/arango/requests/foxx/commit.rb,
lib/arango/requests/foxx/readme.rb,
lib/arango/requests/task/create.rb,
lib/arango/requests/task/delete.rb,
lib/arango/requests/user/create.rb,
lib/arango/requests/user/delete.rb,
lib/arango/requests/user/update.rb,
lib/arango/requests/view/delete.rb,
lib/arango/requests/view/rename.rb,
lib/arango/database/transactions.rb,
lib/arango/edge/instance_methods.rb,
lib/arango/edge_collection/edges.rb,
lib/arango/edge_collection/mixin.rb,
lib/arango/requests/analyzer/get.rb,
lib/arango/requests/bulk/execute.rb,
lib/arango/requests/document/get.rb,
lib/arango/requests/foxx/install.rb,
lib/arango/requests/foxx/replace.rb,
lib/arango/requests/foxx/swagger.rb,
lib/arango/requests/foxx/upgrade.rb,
lib/arango/requests/graph/create.rb,
lib/arango/requests/graph/delete.rb,
lib/arango/requests/index/create.rb,
lib/arango/requests/index/delete.rb,
lib/arango/requests/user/replace.rb,
lib/arango/server/administration.rb,
lib/arango/database/aql_functions.rb,
lib/arango/database/foxx_services.rb,
lib/arango/document/class_methods.rb,
lib/arango/graph/instance_methods.rb,
lib/arango/requests/analyzer/list.rb,
lib/arango/requests/backup/create.rb,
lib/arango/requests/backup/delete.rb,
lib/arango/requests/backup/upload.rb,
lib/arango/requests/cursor/create.rb,
lib/arango/requests/cursor/delete.rb,
lib/arango/requests/document/head.rb,
lib/arango/requests/foxx/list_all.rb,
lib/arango/requests/user/list_all.rb,
lib/arango/requests/view/list_all.rb,
lib/arango/requests/aql/kill_query.rb,
lib/arango/requests/backup/restore.rb,
lib/arango/requests/cluster/health.rb,
lib/arango/requests/collection/get.rb,
lib/arango/requests/foxx/run_tests.rb,
lib/arango/requests/foxx/uninstall.rb,
lib/arango/requests/graph/get_edge.rb,
lib/arango/requests/graph/list_all.rb,
lib/arango/requests/index/list_all.rb,
lib/arango/database/aql_query_cache.rb,
lib/arango/document_collection/base.rb,
lib/arango/document_collection/user.rb,
lib/arango/helper/server_assignment.rb,
lib/arango/requests/analyzer/create.rb,
lib/arango/requests/analyzer/delete.rb,
lib/arango/requests/backup/download.rb,
lib/arango/requests/collection/load.rb,
lib/arango/requests/database/create.rb,
lib/arango/requests/database/delete.rb,
lib/arango/requests/document/create.rb,
lib/arango/requests/document/delete.rb,
lib/arango/requests/document/update.rb,
lib/arango/requests/foxx/run_script.rb,
lib/arango/database/edge_collections.rb,
lib/arango/document/instance_methods.rb,
lib/arango/document_collection/mixin.rb,
lib/arango/requests/bulk/import_json.rb,
lib/arango/requests/collection/count.rb,
lib/arango/requests/document/replace.rb,
lib/arango/requests/foxx/description.rb,
lib/arango/requests/graph/get_vertex.rb,
lib/arango/requests/graph_edges/read.rb,
lib/arango/requests/wal/transactions.rb,
lib/arango/helper/database_assignment.rb,
lib/arango/requests/collection/create.rb,
lib/arango/requests/collection/delete.rb,
lib/arango/requests/collection/rename.rb,
lib/arango/requests/collection/shards.rb,
lib/arango/requests/cursor/next_batch.rb,
lib/arango/requests/database/list_all.rb,
lib/arango/requests/foxx/list_scripts.rb,
lib/arango/requests/graph/create_edge.rb,
lib/arango/requests/graph/delete_edge.rb,
lib/arango/requests/graph/update_edge.rb,
lib/arango/requests/transaction/begin.rb,
lib/arango/database/system_collections.rb,
lib/arango/document_collection/indexes.rb,
lib/arango/requests/administration/log.rb,
lib/arango/requests/aql/list_functions.rb,
lib/arango/requests/cluster/statistics.rb,
lib/arango/requests/graph/replace_edge.rb,
lib/arango/requests/transaction/commit.rb,
lib/arango/requests/transaction/delete.rb,
lib/arango/requests/transaction/status.rb,
lib/arango/requests/wal/get_properties.rb,
lib/arango/requests/wal/set_properties.rb,
lib/arango/database/stream_transactions.rb,
lib/arango/edge_collection/edge_acces_2.rb,
lib/arango/requests/administration/echo.rb,
lib/arango/requests/administration/role.rb,
lib/arango/requests/administration/time.rb,
lib/arango/requests/aql/create_function.rb,
lib/arango/requests/aql/current_queries.rb,
lib/arango/requests/aql/delete_function.rb,
lib/arango/requests/cluster/maintenance.rb,
lib/arango/requests/collection/checksum.rb,
lib/arango/requests/collection/list_all.rb,
lib/arango/requests/collection/revision.rb,
lib/arango/requests/collection/truncate.rb,
lib/arango/requests/graph/create_vertex.rb,
lib/arango/requests/graph/delete_vertex.rb,
lib/arango/requests/graph/update_vertex.rb,
lib/arango/requests/task/create_with_id.rb,
lib/arango/requests/transaction/execute.rb,
lib/arango/requests/user/list_databases.rb,
lib/arango/requests/view/get_properties.rb,
lib/arango/database/document_collections.rb,
lib/arango/document_collection/documents.rb,
lib/arango/document_collection/importing.rb,
lib/arango/edge_collection/class_methods.rb,
lib/arango/requests/bulk/import_document.rb,
lib/arango/requests/foxx/download_bundle.rb,
lib/arango/requests/graph/replace_vertex.rb,
lib/arango/requests/replication/get_dump.rb,
lib/arango/requests/replication/get_tail.rb,
lib/arango/requests/administration/engine.rb,
lib/arango/requests/administration/status.rb,
lib/arango/requests/collection/statistics.rb,
lib/arango/requests/document/get_multiple.rb,
lib/arango/requests/foxx/get_dependencies.rb,
lib/arango/document_collection/replication.rb,
lib/arango/requests/administration/execute.rb,
lib/arango/requests/administration/metrics.rb,
lib/arango/requests/administration/version.rb,
lib/arango/requests/foxx/get_configuration.rb,
lib/arango/requests/replication/make_slave.rb,
lib/arango/edge_collection/instance_methods.rb,
lib/arango/requests/administration/get_mode.rb,
lib/arango/requests/administration/get_task.rb,
lib/arango/requests/administration/set_mode.rb,
lib/arango/requests/aql/get_slow_query_list.rb,
lib/arango/requests/graph_traversal/execute.rb,
lib/arango/requests/replication/synchronize.rb,
lib/arango/requests/view/create_search_view.rb,
lib/arango/document_collection/class_methods.rb,
lib/arango/requests/administration/endpoints.rb,
lib/arango/requests/administration/server_id.rb,
lib/arango/requests/database/get_information.rb,
lib/arango/requests/database/list_accessible.rb,
lib/arango/requests/document/create_multiple.rb,
lib/arango/requests/document/delete_multiple.rb,
lib/arango/requests/document/update_multiple.rb,
lib/arango/requests/foxx/update_dependencies.rb,
lib/arango/requests/replication/stop_applier.rb,
lib/arango/requests/transaction/list_running.rb,
lib/arango/requests/administration/list_tasks.rb,
lib/arango/requests/administration/statistics.rb,
lib/arango/requests/collection/get_properties.rb,
lib/arango/requests/collection/rotate_journal.rb,
lib/arango/requests/collection/set_properties.rb,
lib/arango/requests/document/replace_multiple.rb,
lib/arango/requests/foxx/replace_dependencies.rb,
lib/arango/requests/foxx/update_configuration.rb,
lib/arango/requests/graph/add_edge_definition.rb,
lib/arango/requests/replication/get_inventory.rb,
lib/arango/requests/replication/get_last_tick.rb,
lib/arango/requests/replication/get_server_id.rb,
lib/arango/requests/replication/start_applier.rb,
lib/arango/requests/administration/create_task.rb,
lib/arango/requests/administration/delete_task.rb,
lib/arango/requests/aql/delete_slow_query_list.rb,
lib/arango/requests/foxx/replace_configuration.rb,
lib/arango/requests/replication/get_log_follow.rb,
lib/arango/document_collection/instance_methods.rb,
lib/arango/requests/administration/availability.rb,
lib/arango/requests/graph/add_vertex_collection.rb,
lib/arango/requests/graph/list_edge_definitions.rb,
lib/arango/requests/replication/get_tick_ranges.rb,
lib/arango/requests/administration/get_log_level.rb,
lib/arango/requests/administration/set_log_level.rb,
lib/arango/requests/aql/clear_query_result_cache.rb,
lib/arango/requests/collection/recalculate_count.rb,
lib/arango/requests/collection/responsible_shard.rb,
lib/arango/requests/foxx/enable_development_mode.rb,
lib/arango/requests/graph/remove_edge_definition.rb,
lib/arango/requests/replication/get_logger_state.rb,
lib/arango/requests/administration/create_task_id.rb,
lib/arango/requests/administration/reload_routing.rb,
lib/arango/requests/administration/target_version.rb,
lib/arango/requests/foxx/disable_development_mode.rb,
lib/arango/requests/graph/list_vertex_collections.rb,
lib/arango/requests/graph/replace_edge_definition.rb,
lib/arango/requests/replication/create_dump_batch.rb,
lib/arango/requests/replication/delete_dump_batch.rb,
lib/arango/requests/replication/get_applier_state.rb,
lib/arango/requests/aql/query_result_cache_entries.rb,
lib/arango/requests/graph/remove_vertex_collection.rb,
lib/arango/requests/replication/get_applier_config.rb,
lib/arango/requests/replication/get_log_first_tick.rb,
lib/arango/requests/replication/prolong_dump_batch.rb,
lib/arango/requests/replication/set_applier_config.rb,
lib/arango/requests/user/get_database_access_level.rb,
lib/arango/requests/user/set_database_access_level.rb,
lib/arango/requests/view/set_search_view_properties.rb,
lib/arango/requests/administration/cluster_endpoints.rb,
lib/arango/requests/user/clear_database_access_level.rb,
lib/arango/requests/user/get_collection_access_level.rb,
lib/arango/requests/user/set_collection_access_level.rb,
lib/arango/requests/aql/get_query_tracking_properties.rb,
lib/arango/requests/aql/set_query_tracking_properties.rb,
lib/arango/requests/replication/get_cluster_inventory.rb,
lib/arango/requests/replication/get_logger_tick_ranges.rb,
lib/arango/requests/user/clear_collection_access_level.rb,
lib/arango/requests/view/update_search_view_properties.rb,
lib/arango/requests/collection/load_indexes_into_memory.rb,
lib/arango/requests/administration/statistics_description.rb,
lib/arango/requests/aql/get_query_result_cache_properties.rb,
lib/arango/requests/aql/set_query_result_cache_properties.rb

Overview

Arango toplevel module

Defined Under Namespace

Modules: Collection, Document, DocumentCollection, Driver, Edge, EdgeCollection, Graph, Helper, Requests, View Classes: AQL, Cursor, Database, Error, ErrorDB, Foxx, Index, Replication, Request, Result, SearchView, Server, Task, Transaction, User

Constant Summary collapse

VERSION =

version of arangodb-driver

'3.10.4.1'

Class Method Summary collapse

Class Method Details

.aql_request_class_method(target_class, method_name, &block) ⇒ Object

define batch_ variant

Parameters:

  • target_class (Class)
  • method_name (String)


134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/arango.rb', line 134

def self.aql_request_class_method(target_class, method_name, &block)
  promise_method_name = "batch_#{method_name}".to_sym
  target_class.define_singleton_method(method_name) do |*args|
    request_hash = instance_exec(*args, &block)
    db = if args.last.key?(:collection)
           args.last[:collection].database
         elsif args.last.key?(:edge_collection)
           args.last[:edge_collection].database
         elsif args.last.key?(:database)
           args.last[:database]
         end
    request_hash.delete(:database)
    db.execute_aql(request_hash)
  end
  target_class.define_singleton_method(promise_method_name) do |*args|
    request_hash = instance_exec(*args, &block)
    db = if args.last.key?(:collection)
           args.last[:collection].database
         elsif args.last.key?(:edge_collection)
           args.last[:edge_collection].database
         elsif args.last.key?(:database)
           args.last[:database]
         end
    db.batch_execute_aql(request_hash)
  end
end

.connect_to_database(username: "root", password:, host: "localhost", port: "8529", tls: false, database:, driver_options: nil) ⇒ Arango::Database

connect to database of current server sets current_database

Parameters:

  • username (String) (defaults to: "root")

    defaults to ‘root’

  • password (String)
  • host (String) (defaults to: "localhost")

    defaults to ‘localhost’

  • port (String) (defaults to: "8529")

    defaults to ‘8529’

  • tls (Boolean) (defaults to: false)

    ‘true’ for a secure (https) connection, default to false

  • database (String)

    name of database to connect to

  • driver_options (Hash) (defaults to: nil)

    driver specific options, defaults to nil

Returns:



47
48
49
50
51
# File 'lib/arango.rb', line 47

def connect_to_database(username: "root", password:, host: "localhost", port: "8529", tls: false, database:, driver_options: nil)
  server = connect_to_server(username: username, password: password, host: host, port: port, tls: false, driver_options: driver_options)
  database = server.get_database(database)
  server.current_database = database
end

.connect_to_server(username: "root", password:, host: "localhost", port: "8529", tls: false, driver_options: nil) ⇒ Arango::Server

connect to server sets current_server (if not set !)

Parameters:

  • username (String) (defaults to: "root")

    defaults to ‘root’

  • password (String)
  • host (String) (defaults to: "localhost")

    defaults to ‘localhost’

  • port (String) (defaults to: "8529")

    defaults to ‘8529’

  • tls (Boolean) (defaults to: false)

    ‘true’ for a secure (https) connection, default to false

  • driver_options (Hash) (defaults to: nil)

    driver specific options, defaults to nil

Returns:



62
63
64
65
66
# File 'lib/arango.rb', line 62

def connect_to_server(username: "root", password:, host: "localhost", port: "8529", tls: false, driver_options: nil)
  server = Arango::Server.new(username: username, password: password, host: host, port: port, tls: tls, driver_options: driver_options)
  @current_server = server unless @current_server
  server
end

.current_databaseArango::Database

get current server’s database

Returns:



27
28
29
# File 'lib/arango.rb', line 27

def current_database
  @current_server.current_database
end

.current_serverArango::Server

get current server

Returns:



21
22
23
# File 'lib/arango.rb', line 21

def current_server
  @current_server
end

.current_server=(s) ⇒ Object

set current server

Parameters:



33
34
35
# File 'lib/arango.rb', line 33

def current_server=(s)
  @current_server = s
end

.driverArango::Driver

get current backend driver

Returns:



9
10
11
# File 'lib/arango.rb', line 9

def driver
  @driver_class
end

.driver=(dc) ⇒ Object

set backend driver

Parameters:



15
16
17
# File 'lib/arango.rb', line 15

def driver=(dc)
  @driver_class = dc
end

.multi_request_class_method(target_class, method_name, &block) ⇒ Object

define batch_ variant

Parameters:

  • target_class (Class)
  • method_name (String)


101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/arango.rb', line 101

def self.multi_request_class_method(target_class, method_name, &block)
  promise_method_name = "batch_#{method_name}".to_sym
  target_class.define_singleton_method(method_name) do |*args|
    requests = instance_exec(*args, &block)
    db = if args.last.key?(:collection)
           args.last[:collection].database
         elsif args.last.key?(:edge_collection)
           args.last[:edge_collection].database
         elsif args.last.key?(:database)
           args.last[:database]
         end
    db.execute_requests(requests)
  end
  target_class.define_singleton_method(promise_method_name) do |*args|
    requests = instance_exec(*args, &block)
    promises = []
    db = if args.last.key?(:collection)
           args.last[:collection].database
         elsif args.last.key?(:edge_collection)
           args.last[:edge_collection].database
         elsif args.last.key?(:database)
           args.last[:database]
         end
    requests.each do |request_hash|
      promises << db.batch_request(request_hash)
    end
    Promise.when(*promises).then { |values| values.last }
  end
end

.request_class_method(target_class, method_name, &block) ⇒ Object

define batch_ variant

Parameters:

  • target_class (Class)
  • method_name (String)


72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/arango.rb', line 72

def self.request_class_method(target_class, method_name, &block)
  promise_method_name = "batch_#{method_name}".to_sym
  target_class.define_singleton_method(method_name) do |*args|
    request_hash = instance_exec(*args, &block)
    db = if args.last.key?(:collection)
           args.last[:collection].database
         elsif args.last.key?(:edge_collection)
             args.last[:edge_collection].database
         elsif args.last.key?(:database)
           args.last[:database]
         end
    db.execute_request(request_hash)
  end
  target_class.define_singleton_method(promise_method_name) do |*args|
    request_hash = instance_exec(*args, &block)
    db = if args.last.key?(:collection)
           args.last[:collection].database
         elsif args.last.key?(:edge_collection)
           args.last[:edge_collection].database
         elsif args.last.key?(:database)
           args.last[:database]
         end
    db.batch_request(request_hash)
  end
end