arcadedb 0.3.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e052fea79d83b5cd35961dcc01af0ba617e80c3e0c26d058c5b69a3733a8edc
4
- data.tar.gz: 92ef4c2900fee458959b01becf8fc2789fce5e87fb39e1cfc25b0f0df1e08d20
3
+ metadata.gz: 7d7f1f29472b0fb31734654c9456ec5bdfb31cd42fd46b658139ac840691c6f6
4
+ data.tar.gz: 4c1c95707c8e2c528654f2a7509b1b6943ef9615fe203c81cd421d52636dcac7
5
5
  SHA512:
6
- metadata.gz: f74869fa3afe8f87250e94358b2b18a1fdcfdfa092ec0ef5a0293f970f1976b755463f070f0224aa276f4df3acd5555500d800b389c8463889347f8ef2d10ee7
7
- data.tar.gz: a16c82bf62d9e30898de4e439a7fca37f470944cb92293fa11e4847146eac3a5c066447c1293d3fc73d1a078b348bdcdac21b44b10308ba9c10f141d793f17e2
6
+ metadata.gz: f54746f04760ebfbc8c1588e66fb0bb52e820eef83df564e3563e37219835ff86c93e5b3d2e2a7617452218938c30a5aabff099361d0fd829890e2ac83411fc8
7
+ data.tar.gz: 0f8bf3623302c5204ca56552fb41694bfd506c493dc72463b8000e66c82aacddb7f42188f41508c84e9fc5bf93fa78e42e4235ed904982b97d38a4a5c8d4ff40
data/CHANGELOG.md CHANGED
@@ -12,4 +12,22 @@ All notable changes to this project will be documented in this file.
12
12
  - Support for embedded Dokuments and Maps
13
13
  - iruby support
14
14
 
15
-
15
+ ## 0.4.0 - 2023.10.28
16
+ - completely remove pg-stuff
17
+ - substitute typhoreous with HTTPX
18
+
19
+ ## 0.4.1 - 2023.10.31
20
+ - redesign of transactions.
21
+ - Type.execute performs non idempotent queries in a (nested) transaction
22
+ - Type.transmit performs non idempotent queries
23
+ - Type.query performs idempotent queries
24
+ - Type.create returns a rid
25
+ - Type.insert returns a type-object
26
+ - Vertex.nodes supports conditions on edges
27
+ - Vertex.in, Vertex.out Vertex.inE, Vertex.outE support depth as second parameter
28
+ - IRuby-Support. Formatted output for Base-Objects
29
+
30
+ ## 0.5.0 - 2023-12-12
31
+ - Arcade::Match simple match-statement generator
32
+ - return to Arcade::QueryError messages instead of HTTPX::HTTPError
33
+ - The ProjectRoot Const is used to read configuration files (Changed from Arcade::ProjectRoot)
data/Gemfile CHANGED
@@ -5,17 +5,12 @@ source "https://rubygems.org"
5
5
  #git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
6
6
  gemspec
7
7
  gem 'sdoc'
8
- gem 'dry-configurable'
9
- gem 'pry'
10
- #gem 'sequel'
11
-
12
- #gem 'mini_sql' #, path: '../mini_sql/'
13
8
  group :development, :test do
14
9
  gem "awesome_print"
15
10
  gem 'pastel'
16
11
  gem 'zeitwerk'
17
12
  gem 'terminal-table'
18
- gem 'rubocop'
13
+ # gem 'rubocop'
19
14
  gem "rspec"
20
15
  gem 'rspec-legacy_formatters'
21
16
  gem 'rspec-its'
@@ -26,5 +21,5 @@ group :development, :test do
26
21
  gem 'guard'#, :platforms => :ruby
27
22
  gem 'guard-rspec'
28
23
  gem 'rb-inotify'
29
- gem 'pry'
24
+ # gem 'pry'
30
25
  end
data/Gemfile.lock CHANGED
@@ -1,56 +1,56 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- arcadedb (0.3.2)
4
+ arcadedb (0.4.1)
5
+ dry-configurable
5
6
  dry-core
6
7
  dry-schema
7
8
  dry-struct
8
- typhoeus
9
+ httpx
9
10
 
10
11
  GEM
11
12
  remote: https://rubygems.org/
12
13
  specs:
13
- ast (2.4.2)
14
14
  awesome_print (1.9.2)
15
15
  coderay (1.1.3)
16
- concurrent-ruby (1.1.10)
16
+ concurrent-ruby (1.2.2)
17
17
  diff-lcs (1.5.0)
18
- dry-configurable (0.15.0)
18
+ dry-configurable (1.1.0)
19
+ dry-core (~> 1.0, < 2)
20
+ zeitwerk (~> 2.6)
21
+ dry-core (1.0.1)
19
22
  concurrent-ruby (~> 1.0)
20
- dry-core (~> 0.6)
21
- dry-container (0.11.0)
22
- concurrent-ruby (~> 1.0)
23
- dry-core (0.7.1)
24
- concurrent-ruby (~> 1.0)
25
- dry-inflector (0.3.0)
23
+ zeitwerk (~> 2.6)
24
+ dry-inflector (1.0.0)
26
25
  dry-initializer (3.1.1)
27
- dry-logic (1.2.0)
26
+ dry-logic (1.5.0)
28
27
  concurrent-ruby (~> 1.0)
29
- dry-core (~> 0.5, >= 0.5)
30
- dry-schema (1.10.6)
28
+ dry-core (~> 1.0, < 2)
29
+ zeitwerk (~> 2.6)
30
+ dry-schema (1.13.3)
31
31
  concurrent-ruby (~> 1.0)
32
- dry-configurable (~> 0.13, >= 0.13.0)
33
- dry-core (~> 0.5, >= 0.5)
32
+ dry-configurable (~> 1.0, >= 1.0.1)
33
+ dry-core (~> 1.0, < 2)
34
34
  dry-initializer (~> 3.0)
35
- dry-logic (~> 1.2)
36
- dry-types (~> 1.5)
37
- dry-struct (1.4.0)
38
- dry-core (~> 0.5, >= 0.5)
39
- dry-types (~> 1.5)
35
+ dry-logic (>= 1.4, < 2)
36
+ dry-types (>= 1.7, < 2)
37
+ zeitwerk (~> 2.6)
38
+ dry-struct (1.6.0)
39
+ dry-core (~> 1.0, < 2)
40
+ dry-types (>= 1.7, < 2)
40
41
  ice_nine (~> 0.11)
41
- dry-types (1.5.1)
42
+ zeitwerk (~> 2.6)
43
+ dry-types (1.7.1)
42
44
  concurrent-ruby (~> 1.0)
43
- dry-container (~> 0.3)
44
- dry-core (~> 0.5, >= 0.5)
45
- dry-inflector (~> 0.1, >= 0.1.2)
46
- dry-logic (~> 1.0, >= 1.0.2)
47
- ethon (0.16.0)
48
- ffi (>= 1.15.0)
49
- ffi (1.15.5)
45
+ dry-core (~> 1.0)
46
+ dry-inflector (~> 1.0)
47
+ dry-logic (~> 1.4)
48
+ zeitwerk (~> 2.6)
49
+ ffi (1.16.3)
50
50
  formatador (1.1.0)
51
51
  given_core (3.8.2)
52
52
  sorcerer (>= 0.3.7)
53
- guard (2.18.0)
53
+ guard (2.18.1)
54
54
  formatador (>= 0.2.4)
55
55
  listen (>= 2.7, < 4.0)
56
56
  lumberjack (>= 1.0.12, < 2.0)
@@ -64,44 +64,44 @@ GEM
64
64
  guard (~> 2.1)
65
65
  guard-compat (~> 1.1)
66
66
  rspec (>= 2.99.0, < 4.0)
67
+ http-2-next (1.0.1)
68
+ httpx (1.1.0)
69
+ http-2-next (>= 1.0.1)
67
70
  ice_nine (0.11.2)
68
- listen (3.7.1)
71
+ listen (3.8.0)
69
72
  rb-fsevent (~> 0.10, >= 0.10.3)
70
73
  rb-inotify (~> 0.9, >= 0.9.10)
71
- lumberjack (1.2.8)
74
+ lumberjack (1.2.9)
72
75
  method_source (1.0.0)
73
76
  nenv (0.3.0)
74
77
  notiffany (0.1.3)
75
78
  nenv (~> 0.1)
76
79
  shellany (~> 0.0)
77
- parallel (1.22.1)
78
- parser (3.1.2.0)
79
- ast (~> 2.4.1)
80
80
  pastel (0.8.0)
81
81
  tty-color (~> 0.5)
82
- pry (0.14.1)
82
+ pry (0.14.2)
83
83
  coderay (~> 1.1)
84
84
  method_source (~> 1.0)
85
- rainbow (3.1.1)
85
+ psych (5.1.1.1)
86
+ stringio
86
87
  rake (13.0.6)
87
- rb-fsevent (0.11.1)
88
+ rb-fsevent (0.11.2)
88
89
  rb-inotify (0.10.1)
89
90
  ffi (~> 1.0)
90
- rdoc (6.3.3)
91
- regexp_parser (2.4.0)
92
- rexml (3.2.5)
93
- rspec (3.11.0)
94
- rspec-core (~> 3.11.0)
95
- rspec-expectations (~> 3.11.0)
96
- rspec-mocks (~> 3.11.0)
97
- rspec-collection_matchers (1.2.0)
91
+ rdoc (6.5.0)
92
+ psych (>= 4.0.0)
93
+ rspec (3.12.0)
94
+ rspec-core (~> 3.12.0)
95
+ rspec-expectations (~> 3.12.0)
96
+ rspec-mocks (~> 3.12.0)
97
+ rspec-collection_matchers (1.2.1)
98
98
  rspec-expectations (>= 2.99.0.beta1)
99
99
  rspec-context-private (0.0.1)
100
- rspec-core (3.11.0)
101
- rspec-support (~> 3.11.0)
102
- rspec-expectations (3.11.0)
100
+ rspec-core (3.12.2)
101
+ rspec-support (~> 3.12.0)
102
+ rspec-expectations (3.12.3)
103
103
  diff-lcs (>= 1.2.0, < 2.0)
104
- rspec-support (~> 3.11.0)
104
+ rspec-support (~> 3.12.0)
105
105
  rspec-given (3.8.2)
106
106
  given_core (= 3.8.2)
107
107
  rspec (>= 2.14.0)
@@ -110,34 +110,21 @@ GEM
110
110
  rspec-expectations (>= 3.0.0)
111
111
  rspec-legacy_formatters (1.0.2)
112
112
  rspec (~> 3.0)
113
- rspec-mocks (3.11.1)
113
+ rspec-mocks (3.12.6)
114
114
  diff-lcs (>= 1.2.0, < 2.0)
115
- rspec-support (~> 3.11.0)
116
- rspec-support (3.11.0)
117
- rubocop (1.29.1)
118
- parallel (~> 1.10)
119
- parser (>= 3.1.0.0)
120
- rainbow (>= 2.2.2, < 4.0)
121
- regexp_parser (>= 1.8, < 3.0)
122
- rexml (>= 3.2.5, < 4.0)
123
- rubocop-ast (>= 1.17.0, < 2.0)
124
- ruby-progressbar (~> 1.7)
125
- unicode-display_width (>= 1.4.0, < 3.0)
126
- rubocop-ast (1.18.0)
127
- parser (>= 3.1.1.0)
128
- ruby-progressbar (1.11.0)
129
- sdoc (2.3.1)
130
- rdoc (>= 5.0, < 6.4.0)
115
+ rspec-support (~> 3.12.0)
116
+ rspec-support (3.12.1)
117
+ sdoc (2.6.1)
118
+ rdoc (>= 5.0)
131
119
  shellany (0.0.1)
132
120
  sorcerer (2.0.1)
121
+ stringio (3.0.8)
133
122
  terminal-table (3.0.2)
134
123
  unicode-display_width (>= 1.1.1, < 3)
135
- thor (1.2.1)
124
+ thor (1.3.0)
136
125
  tty-color (0.6.0)
137
- typhoeus (1.4.0)
138
- ethon (>= 0.9.0)
139
- unicode-display_width (2.1.0)
140
- zeitwerk (2.5.4)
126
+ unicode-display_width (2.5.0)
127
+ zeitwerk (2.6.12)
141
128
 
142
129
  PLATFORMS
143
130
  x86_64-linux
@@ -146,11 +133,9 @@ DEPENDENCIES
146
133
  arcadedb!
147
134
  awesome_print
148
135
  bundler (~> 2)
149
- dry-configurable
150
136
  guard
151
137
  guard-rspec
152
138
  pastel
153
- pry
154
139
  rake (~> 13.0)
155
140
  rb-inotify
156
141
  rspec
@@ -159,7 +144,6 @@ DEPENDENCIES
159
144
  rspec-given
160
145
  rspec-its
161
146
  rspec-legacy_formatters
162
- rubocop
163
147
  sdoc
164
148
  terminal-table
165
149
  zeitwerk
data/README.md CHANGED
@@ -5,7 +5,7 @@ Ruby Interface to a [Arcade Database](https://arcadedb.com/).
5
5
  The program utilizes the HTTP-JSON API to direct database queries to an ArcadeDB server.
6
6
  The server's response is then mapped to an ORM (Object-Relational Mapping) based on DRY::Struct.
7
7
  Each database type is represented by a dedicated Model Class, where complex queries are encapsulated.
8
- The program also includes a Query-Preprocessor for constructing custom queries in ruby fashion.
8
+ The program also includes a Query-Preprocessor and Match-statment generator for constructing custom queries in ruby fashion.
9
9
 
10
10
  ***ArcadeDB internally uses `Arcade` as primary namespace****
11
11
 
@@ -13,11 +13,18 @@ The program also includes a Query-Preprocessor for constructing custom queries
13
13
 
14
14
  A running AracdeDB-Instance. [Quick-Start-Guide](https://docs.arcadedb.com/#Quick-Start-Docker).
15
15
 
16
- [ArcadeDB V 22.10.1](https://github.com/ArcadeData/arcadedb/releases/tag/22.10.1)ff is supported
16
+ ## New Project
17
17
 
18
- ## Config
19
-
20
- Edit the file `arcade.yml` and provide suitable databases for test, development and production environment.
18
+ ```
19
+ mkdir project && cd project
20
+ bundle init
21
+ bundle add arcadedb
22
+ bundle add pastel # for console output
23
+ mkdir model
24
+ mkdir bin
25
+ ```
26
+ copy `https://github.com/topofocus/arcadedb/blob/main/bin/console` to the `bin` directory
27
+ copy `https://github.com/topofocus/arcadedb/blob/main/arcade.yml` to the project root and modify to your needs
21
28
 
22
29
  ## Console
23
30
 
@@ -25,9 +32,19 @@ To start an interactive console, a script is provided in the bin-directory.
25
32
  ```
26
33
  $ cd bin && ./console.rb t ( or "d" or "p" for Test, Development and Production environment)
27
34
 
28
- **Database definitions (model-files) of the test-suite are included!**
35
+ **in Test environment Database definitions (model-files) of the test-suite are included!**
29
36
  ```
30
37
 
38
+ ## Add to a project
39
+ Just require it in your program:
40
+ ```ruby
41
+ require "arcade"
42
+ ```
43
+ ## Config
44
+
45
+ Add a file `arcade.yml` at the root of your program or in the `config`-dir and provide suitable databases for test, development and production environment.
46
+
47
+
31
48
  ## Examples & Specs
32
49
 
33
50
  The `example` directory contains documented sample files for typical usecases
@@ -39,14 +56,13 @@ The `spec`-files in the rspec-test-suite-section are worth reading, too.
39
56
  The adapter uses a 3 layer concept.
40
57
 
41
58
  Top-Layer : `Arcade::Base`-Model-Objects.
42
- They operate similar to ActiveRecord Model Objects but are based on [Dry-Struct](https://dry-rb.org/gems/dry-struct/1.0/).
59
+ Similar to ActiveRecord Model Objects but based on [Dry-Struct](https://dry-rb.org/gems/dry-struct/1.0/).
43
60
 
44
61
  ```ruby
45
62
  # Example model file /model/demo/user.rb
46
63
  module Demo
47
- class Person < Arcade::Vertex
64
+ class User < Arcade::Vertex
48
65
  attribute :name, Types::Nominal::String
49
- timestamps true
50
66
 
51
67
  def grandparents
52
68
  db.query( "select in('is_family') from #{rid} ") &.allocate_model
@@ -58,14 +74,14 @@ __END__
58
74
  CREATE INDEX on demo_user( name ) UNIQUE
59
75
  ```
60
76
 
61
- Only the `name` attribute is declared. Timestamps (created & updated attributes) are included, too
77
+ Only the `name` attribute is declared.
62
78
 
63
- `Demo::User.create_type` creates the type and executes the database-commands after __END__.
79
+ `Demo::User.create_type` creates the type and executes provided database-commands after __END__.
64
80
 
65
- Other properties are schemaless.
81
+ Other properties are schemaless, but have to be declared in the model-file.
66
82
 
67
83
  ```ruby
68
- Person.create name: "Hubert", age: 35
84
+ Person.insert name: "Hubert", age: 35
69
85
  Person.update set: { age: 36 }, where: { name: 'Hubert' }
70
86
  persons = Person.where "age > 40"
71
87
  persons.first.update age: 37
@@ -75,9 +91,66 @@ Person.all
75
91
  Person.delete all: true || where: age: 56 , ...
76
92
  ```
77
93
 
94
+ ### Nodes and Traverse
95
+
96
+ `ArcadeDB` wraps common queries of bidirectional connected vertices.
97
+
98
+ Suppose
99
+ ```ruby
100
+ m = Person.create name: 'Hubert', age: '25'
101
+ f = Person.create name: 'Pauline', age: '28'
102
+ m.assign via: IsMarriedTo, vertex: f , divorced: false
103
+
104
+ ```
105
+ This creates the simple graph
106
+ > Hubert --- is_married_to --> Pauline
107
+ > |
108
+ > -- divorced (attribute on the edge)
109
+
110
+ This can be queried through
111
+
112
+ ```ruby
113
+ hubert = Person.find name: 'Hubert'
114
+ pauline = hubert.nodes( :out, via: IsMarriedTo ).first
115
+ # or simply
116
+ pauline = hubert.out.first
117
+
118
+ ```
119
+ Conditions may be set, to.
120
+ ```ruby
121
+ hubert.nodes( :out, via: IsMarriedTo, where: "age < 30" )
122
+ ```
123
+ gets all wives of hubert, who are younger then 30 years.
124
+ or
125
+ ```ruby
126
+ Person.nodes( :outE, via: IsMarriedTo, where: { divorced: false } )
127
+
128
+ ```
129
+ gets all wives where the divorced-condition, which is set on the edge, is false.
130
+
131
+ ## Query
132
+
78
133
  A **Query Preprocessor** is implemented. Its adapted from ActiveOrient. The [documentation](https://github.com/topofocus/active-orient/wiki/OrientQuery)
79
134
  is still valid, however the class has changed to `Arcade::Query`.
80
135
 
136
+ ## Match
137
+
138
+ A simple **Match Statement Generator** is provided for convenience. As the [declarative syntax](https://github.com/ArcadeData/arcadedb-docs/blob/main/src/main/asciidoc/sql/SQL-Match.adoc) seems to be very intuitive, a preprocessor should not be
139
+ necessary. With the help of some ruby magic, the creation of match-statements is simply an no-brainer.
140
+
141
+ ```ruby
142
+ a = Arcade::Match.new( type: Person, as: :persons)
143
+ .out( IsMarriedTo )
144
+ .node( where: 'age < 30')
145
+ a.to_s
146
+ => Match { type: person, as: persons }.out('is_married_to'){ where: ( age < 30) } RETURN persons
147
+
148
+ a.execute.select_results # sends the statement to the database and returns Arcade Objects.
149
+ ```
150
+
151
+ Arcade::Match-objects can be used as `from:` argument to Arcade::Query-Statements, thus hybrid queries are
152
+ easily constructed without extensive string-manipulations.
153
+
81
154
  The **second Layer** handles Database-Requests.
82
155
  In its actual implementation, these requests are delegated to the HTTP/JSON-API.
83
156
 
@@ -90,20 +163,18 @@ DB = Arcade::Init.db
90
163
  $ DB.get nn, mm # returns a Aracde:Base object
91
164
  # rid is either "#11:10:" or two numbers
92
165
  $ DB.query querystring # returns either an Array of results (as Hash)
93
- $ DB.execute { querystring } #
166
+ $ DB.execute { querystring } # execute a non idempotent query within a (nested) transaction
94
167
  $ DB.create <name>, attribute: value .... # Creates a new <Document | Vertex> and returns the rid
95
168
  # Operation is performed as Database-Transaction and is rolled back on error
96
- $ DB.insert <name>, attribute: value .... # Inserts a new <Document | Vertex> and returns the rid
169
+ $ DB.insert <name>, attribute: value .... # Inserts a new <Document | Vertex> and returns the new object
97
170
  $ DB.create_edge <name>, from: <rid> or [rid, rid, ..] , to: <rid> or [rid, rid, ..]
98
171
 
99
- DB.query " Select from person where age > 40 "
100
- DB.execute { " Update person set name='Hubert' return after $current where age = 36 " }
101
172
  ```
102
173
 
103
174
  **Convert database input to Arcade::Base Models**
104
175
 
105
176
  Either `DB.query` or `DB.execute` return the raw JSON-input from the database. It can always converted to model-objects by chaining
106
- `allocatet_model`.
177
+ `allocate_model` or `select_result`.
107
178
 
108
179
  ```ruby
109
180
  $ DB.query "select from my_names limit 1"
@@ -217,20 +288,24 @@ Select a range of nodes and perform a mathematical operation
217
288
  -=> select median(note_count) from ( traverse out(connects) from #52:0 while $depth < 100 ) where $depth>=50
218
289
  => {:"median(note_count)"=>75.5 }
219
290
  ```
220
- ## Include in your own project
221
291
 
222
- Until a gem is released, first clone the project and set up your project environment
292
+ ### Transactions
293
+
294
+ Database-Transactions are largely encapsulated
295
+
296
+ ```
297
+ db = Arcade::Init.db
298
+ db.begin_transaction
299
+
300
+ { perform insert, update, query, etc tasks in the database }
301
+
302
+ db.commit
303
+
304
+ # or
305
+
306
+ db.rollback
307
+
223
308
  ```
224
- mkdir workspace && cd workspace
225
- git clone https://github.com/topofocus/arcadedb
226
- mkdir my-project && cd my-project
227
- bundle init
228
- cat "gem arcadedb, path='../arcadedb' " >> Gemfile
229
- bundle install && bundle upate
230
- cp ../arcadedb/config.yml .
231
- mkdir bin
232
- cp ../arcadedb/bin/console bin/
233
- ````
234
309
 
235
310
 
236
311
  ## Contributing
data/arcade.yml CHANGED
@@ -1,26 +1,22 @@
1
1
  ---
2
- ## absolute path to the oetl-script
3
- :pg:
4
- :host: 10.247.8.109 # hierdevel
5
- :port: 5432
6
2
  :environment:
7
3
  :test:
8
4
  dbname: playground
9
5
  user: root
10
- pass: topo1focus
6
+ pass: ***
11
7
  :development:
12
8
  dbname: devel
13
9
  user: root
14
- pass: topo1focus
10
+ pass: ***
15
11
  :production:
16
12
  dbname: production
17
13
  user: root
18
- pass: topo1focus
14
+ pass: ***
19
15
  :admin:
20
16
  :host: 10.247.8.109
21
17
  :port: 2480
22
18
  :user: root
23
- :pass: topo1focus
19
+ :pass: ***
24
20
  :logger: stdout # 'file' or 'stdout'
25
21
  :namespace: Arcade # Default Namespace
26
22
  :autoload: true # load model if a link is detected in a record
data/arcadedb.gemspec CHANGED
@@ -23,13 +23,10 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "bundler", "~> 2"
24
24
  spec.add_development_dependency "rake", "~> 13.0"
25
25
  spec.add_development_dependency "rspec", "~> 4.0"
26
- # 'activesupport', '>= 6.0'
27
- # spec.add_dependency 'activemodel'
28
- spec.add_dependency "typhoeus"
26
+ spec.add_dependency "httpx"
29
27
  spec.add_dependency 'dry-schema'
30
28
  spec.add_dependency 'dry-struct'
31
29
  spec.add_dependency 'dry-core'
32
- ## Database-Access via Postgres is not implemented
33
- # spec.add_dependency 'pg'
34
- # spec.add_dependency 'mini_sql'
30
+ spec.add_dependency 'dry-configurable'
31
+ # spec.add_dependency 'dry-monads' # future use
35
32
  end
data/bin/console CHANGED
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
- ## loads the active-orient environment
2
+ ## loads the arcadeDB environment
3
3
  ## and starts an interactive shell
4
4
  ##
5
- ## Parameter:
5
+ ## Parameter:
6
6
  ## production (p)
7
7
  ## development (d) [default]
8
8
  ## test (t)
9
9
  require 'bundler/setup'
10
- require 'terminal-table'
10
+ #require 'terminal-table'
11
11
  require 'zeitwerk'
12
12
  require 'pastel'
13
13
  require 'arcade'
14
- require 'pry'
14
+ #require 'pry'
15
15
  #begin
16
16
 
17
17
 
@@ -66,10 +66,6 @@ def browse db: Arcade::Api.databases.first , extended: false
66
66
  end
67
67
 
68
68
 
69
-
70
-
71
-
72
-
73
69
  include Arcade
74
70
 
75
71
  def help
@@ -106,21 +102,25 @@ end
106
102
 
107
103
  help
108
104
  e= ARGV.empty? ? :development : ARGV.last.downcase.to_sym
109
- ## load test model files
110
- #require "#{__dir__}/../spec/model_helper"
111
-
112
105
  loader = Zeitwerk::Loader.new
113
- loader.push_dir ("#{__dir__}/../spec/model")
106
+ if e.to_s[0] == 't'
107
+ loader.push_dir ("#{__dir__}/../spec/model")
108
+ else
109
+ loader.push_dir ("#{__dir__}/../lib/model")
110
+
111
+ end
114
112
  loader.setup
115
113
  puts "DB = Arcade::Database-instance"
116
114
  DB = Arcade::Init.connect e
117
115
  #require 'pry'
116
+ #if e.to_s[0] == 't'
117
+ # DB.create_type :document, 'test_document'
118
+ # DB.create_type :vertex, :test_vertex
119
+ #
120
+ #end
118
121
  require 'irb'
119
122
  ARGV.clear
120
- #begin
121
- #IRB.start(__FILE__)
122
- #rescue ArgumentError => e
123
- # puts e
124
- ## retry
125
- #end
126
- Pry.start(__FILE__)
123
+
124
+ IRB.start(__FILE__)
125
+
126
+ #Pry.start(__FILE__)