#!/usr/bin/env ruby ## loads the active-orient environment ## and starts an interactive shell ## ## Parameter: ## production (p) ## development (d) [default] ## test (t) require 'bundler/setup' require 'yaml' require 'logger' require 'pastel' require 'terminal-table' require 'arcade' #begin module CoreExtensions module Hash module TablePresenter def table_header keys end def table_row values end end end module Array module TablePresenter def as_table(&b) the_table_header = first.table_header(&b) the_table_rows = map &:table_row Terminal::Table.new headings: the_table_header, rows: the_table_rows , style: { border: :unicode } end end end end Array.include CoreExtensions::Array::TablePresenter Hash.include CoreExtensions::Hash::TablePresenter read_yml = -> (key) do YAML::load_file( File.expand_path('../../config.yml',__FILE__) )[key] end def list_types db= Arcade::Api.databases.first list= Arcade::Api.query(db){ "select from schema:types" } puts "list: #{list}" output = Terminal::Table.new do |t| t.title = "database: #{db}" t.headings = ["Name" , "Parents", "Type", 'Properties','Unique', 'Automatic'] t.style = { :border => :markdown } list.each do |row| t.add_row [ row['name'],row['parent_types'],row['type'] ] if !row['indexes'].empty? t.add_separator row['indexes'].each do |i| t.add_row [i['name'], i['typeName'], i['type'],i['properties'], i['unique'],i['automatic'] ] end end if !row['properties'].empty? t.add_separator row['properties'].each do |p| t.add_row[p['name'],p['id'],p['type']] end end end end end include Arcade puts "-"*80 puts "--- Namespace Arcade is included " puts "" puts " Available ArcadeDB-Statements" puts " ----------------------------" puts " Api.databases # returns an Array of known databases " puts " Api.create_database # returns true if succesfull " puts " Api.drop_database " puts "" puts " Create and fetch documents and vertices" puts " ----------------------------" puts " Api.create_document , , attribute: value , ... " puts " Api.get_record , # returns a hash " puts "" puts " submit queries" puts " ----------------------------" puts " Api.execute( ) { } #submit query as block" puts " Api.query( ) { } " puts "" puts "-"*80 puts "" #C = Arcade::Database.new #D = MiniSql::Connection.get( C.connection, {} ) #require 'pry' require 'irb' ARGV.clear IRB.start(__FILE__) #Pry.start(__FILE__)