Class: ArangoIndex
- Inherits:
-
ArangoServer
- Object
- ArangoServer
- ArangoIndex
- Defined in:
- lib/ArangoRB_Index.rb
Overview
INDEXES ===
Instance Attribute Summary collapse
-
#body ⇒ Object
readonly
Returns the value of attribute body.
-
#fields ⇒ Object
readonly
Returns the value of attribute fields.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#idCache ⇒ Object
readonly
Returns the value of attribute idCache.
-
#key ⇒ Object
readonly
Returns the value of attribute key.
-
#sparse ⇒ Object
readonly
Returns the value of attribute sparse.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
-
#unique ⇒ Object
readonly
Returns the value of attribute unique.
Class Method Summary collapse
Instance Method Summary collapse
- #collection ⇒ Object
-
#create ⇒ Object
TESTED.
- #database ⇒ Object
-
#destroy ⇒ Object
TESTED.
-
#initialize(collection: @@collection, database: @@database, body: {}, id: nil, type: nil, unique: nil, fields:, sparse: nil) ⇒ ArangoIndex
constructor
TESTED.
-
#retrieve ⇒ Object
TESTED.
-
#to_hash ⇒ Object
(also: #to_h)
RETRIEVE ###.
Methods inherited from ArangoServer
address, async, async=, batch, cancelAsync, changePropertyWAL, checkPort, cluster, cluster=, clusterRoundtrip, clusterStatistics, collection, collection=, createDumpBatch, database, database=, databaseVersion, databases, default_server, destroyAllAsync, destroyAsync, destroyCluster, destroyDumpBatch, destroyExpiredAsync, echo, endpoints, execute, executeCluster, executeClusterHead, executeClusterPut, fetchAsync, flushWAL, graph, graph=, log, pendingAsync, prolongDumpBatch, propertyWAL, reload, request, restart, retrieveAsync, retrieveDoneAsync, retrievePendingAsync, return_result, return_result_async, role, server, serverId, shutdown, sleep, statistics, tasks, test, time, transactions, updateCluster, user, user=, username, users, verbose, verbose=, version
Constructor Details
#initialize(collection: @@collection, database: @@database, body: {}, id: nil, type: nil, unique: nil, fields:, sparse: nil) ⇒ ArangoIndex
TESTED
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/ArangoRB_Index.rb', line 4 def initialize(collection: @@collection, database: @@database, body: {}, id: nil, type: nil, unique: nil, fields:, sparse: nil) # TESTED if collection.is_a?(String) @collection = collection elsif collection.is_a?(ArangoCollection) @collection = collection.collection else raise "collection should be a String or a ArangoCollection instance, not a #{collection.class}" end if database.is_a?(String) @database = database elsif database.is_a?(ArangoDatabase) @database = database.database else raise "database should be a String or a ArangoDatabase instance, not a #{database.class}" end if body.is_a?(Hash) @body = body else raise "body should be a Hash, not a #{body.class}" end unless id.nil? @key = id.split("/")[1] @id = id end @type = type @sparse = sparse @unique = unique unless unique.nil? if fields.is_a?(String) @fields = [fields] elsif fields.is_a?(Array) @fields = fields else raise "fields should be a String or an Array, not a #{database.class}" end @idCache = "IND_#{@id}" end |
Instance Attribute Details
#body ⇒ Object (readonly)
Returns the value of attribute body.
46 47 48 |
# File 'lib/ArangoRB_Index.rb', line 46 def body @body end |
#fields ⇒ Object (readonly)
Returns the value of attribute fields.
46 47 48 |
# File 'lib/ArangoRB_Index.rb', line 46 def fields @fields end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
46 47 48 |
# File 'lib/ArangoRB_Index.rb', line 46 def id @id end |
#idCache ⇒ Object (readonly)
Returns the value of attribute idCache.
46 47 48 |
# File 'lib/ArangoRB_Index.rb', line 46 def idCache @idCache end |
#key ⇒ Object (readonly)
Returns the value of attribute key.
46 47 48 |
# File 'lib/ArangoRB_Index.rb', line 46 def key @key end |
#sparse ⇒ Object (readonly)
Returns the value of attribute sparse.
46 47 48 |
# File 'lib/ArangoRB_Index.rb', line 46 def sparse @sparse end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
46 47 48 |
# File 'lib/ArangoRB_Index.rb', line 46 def type @type end |
#unique ⇒ Object (readonly)
Returns the value of attribute unique.
46 47 48 |
# File 'lib/ArangoRB_Index.rb', line 46 def unique @unique end |
Class Method Details
.indexes(database: @@database, collection: @@collection) ⇒ Object
TESTED
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/ArangoRB_Index.rb', line 90 def self.indexes(database: @@database, collection: @@collection) # TESTED database = database.database if database.is_a?(ArangoDatabase) collection = collection.collection if collection.is_a?(ArangoCollection) query = { "collection": collection } request = @@request.merge({ :query => query }) result = get("/_db/#{database}/_api/index", request) return result.headers["x-arango-async-id"] if @@async == "store" return true if @@async result = result.parsed_response return result if @@verbose return result["errorMessage"] if result["error"] result.delete_if{|k,v| k == "error" || k == "code"} result["indexes"] = result["indexes"].map{|x| ArangoIndex.new(body: x, id: x["id"], database: database, collection: collection, type: x["type"], unique: x["unique"], fields: x["fields"], sparse: x["sparse"])} result end |
Instance Method Details
#collection ⇒ Object
70 71 72 |
# File 'lib/ArangoRB_Index.rb', line 70 def collection ArangoCollection.new(collection: @collection, database: @database) end |
#create ⇒ Object
TESTED
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/ArangoRB_Index.rb', line 106 def create # TESTED body = @body.merge({ "fields" => @fields, "unique" => @unique, "type" => @type, "id" => @id }.delete_if{|k,v| v.nil?}) query = { "collection": @collection } request = @@request.merge({ :body => body.to_json, :query => query }) result = self.class.post("/_db/#{@database}/_api/index", request) return result.headers["x-arango-async-id"] if @@async == "store" return true if @@async result = result.parsed_response return result if @@verbose return result["errorMessage"] if result["error"] result.delete_if{|k,v| k == "error" || k == "code"} @body = result @id = result["id"] @key = @id.split("/")[1] self end |
#database ⇒ Object
66 67 68 |
# File 'lib/ArangoRB_Index.rb', line 66 def database ArangoDatabase.new(database: @database) end |
#destroy ⇒ Object
TESTED
128 129 130 131 132 133 134 |
# File 'lib/ArangoRB_Index.rb', line 128 def destroy # TESTED result = self.class.delete("/_db/#{@database}/_api/index/#{id}", @@request) return result.headers["x-arango-async-id"] if @@async == "store" return true if @@async result = result.parsed_response @@verbose ? result : result["error"] ? result["errorMessage"] : true end |
#retrieve ⇒ Object
TESTED
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/ArangoRB_Index.rb', line 74 def retrieve # TESTED result = self.class.get("/_db/#{@database}/_api/index/#{@id}", @@request) return result.headers["x-arango-async-id"] if @@async == "store" return true if @@async result = result.parsed_response return result if @@verbose return result["errorMessage"] if result["error"] result.delete_if{|k,v| k == "error" || k == "code"} @body = result @type = result["type"] @unique = result["unique"] @fields = result["fields"] @sparse = result["sparse"] self end |
#to_hash ⇒ Object Also known as: to_h
RETRIEVE ###
50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/ArangoRB_Index.rb', line 50 def to_hash { "key" => @key, "id" => @id, "collection" => @collection, "database" => @database, "body" => @body, "type" => @type, "sparse" => @sparse, "unique" => @unique, "fields" => @fields, "idCache" => @idCache }.delete_if{|k,v| v.nil?} end |