active-orient 0.5 → 0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -2
- data/README.md +78 -35
- data/VERSION +1 -1
- data/active-orient.gemspec +4 -4
- data/bin/active-orient-console +8 -5
- data/config/boot.rb +2 -4
- data/config/config.yml +1 -1
- data/config/connect.yml +2 -2
- data/examples/time_graph.md +162 -0
- data/gratefuldeadconcerts.md +94 -0
- data/lib/active-orient.rb +4 -2
- data/lib/base.rb +53 -20
- data/lib/base_properties.rb +2 -3
- data/lib/class_utils.rb +3 -4
- data/lib/database_utils.rb +14 -5
- data/lib/init.rb +11 -1
- data/lib/model/edge.rb +12 -10
- data/lib/model/model.rb +17 -3
- data/lib/model/the_class.rb +60 -40
- data/lib/model/the_record.rb +63 -51
- data/lib/model/vertex.rb +114 -10
- data/lib/orient.rb +24 -33
- data/lib/orientdb_private.rb +31 -31
- data/lib/other.rb +55 -5
- data/lib/rest/change.rb +17 -4
- data/lib/rest/create.rb +38 -24
- data/lib/rest/delete.rb +3 -2
- data/lib/rest/operations.rb +37 -27
- data/lib/rest/read.rb +2 -2
- data/lib/rest/rest.rb +4 -3
- data/lib/support.rb +17 -16
- data/linkmap.md +75 -0
- data/namespace.md +111 -0
- data/rails.md +125 -0
- data/rails/activeorient.rb +53 -0
- data/{examples/time_graph/config → rails}/config.yml +3 -1
- data/{examples/time_graph/config → rails}/connect.yml +2 -2
- data/usecase_oo.md +3 -1
- metadata +21 -38
- data/examples/createTime.rb +0 -91
- data/examples/time_graph/Gemfile +0 -21
- data/examples/time_graph/Guardfile +0 -26
- data/examples/time_graph/README.md +0 -129
- data/examples/time_graph/bin/active-orient-console +0 -35
- data/examples/time_graph/config/boot.rb +0 -119
- data/examples/time_graph/config/init_db.rb +0 -59
- data/examples/time_graph/createTime.rb +0 -51
- data/examples/time_graph/lib/createTime.rb +0 -82
- data/examples/time_graph/model/day_of.rb +0 -3
- data/examples/time_graph/model/e.rb +0 -6
- data/examples/time_graph/model/edge.rb +0 -53
- data/examples/time_graph/model/monat.rb +0 -19
- data/examples/time_graph/model/stunde.rb +0 -16
- data/examples/time_graph/model/tag.rb +0 -29
- data/examples/time_graph/model/time_base.rb +0 -6
- data/examples/time_graph/model/time_of.rb +0 -4
- data/examples/time_graph/model/v.rb +0 -3
- data/examples/time_graph/model/vertex.rb +0 -32
- data/examples/time_graph/spec/lib/create_time_spec.rb +0 -50
- data/examples/time_graph/spec/rest_helper.rb +0 -37
- data/examples/time_graph/spec/spec_helper.rb +0 -46
- data/usecase.md +0 -104
data/linkmap.md
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
# Joining Tables
|
2
|
+
|
3
|
+
The most important difference between OrientDB and a Relational Database is that relationships are represented by LINKS instead of JOINs.
|
4
|
+
|
5
|
+
For this reason, the classic JOIN syntax is not supported. OrientDB uses the "dot (.) notation" to navigate LINKS
|
6
|
+
(OrientDB-documation)
|
7
|
+
|
8
|
+
This is supported by ActiveOrient in a very convient way.
|
9
|
+
|
10
|
+
## Playing with Arrays and Linkmaps
|
11
|
+
|
12
|
+
Linkmaps are the OrientDB equivalent to joined tables
|
13
|
+
Formally, they are ordinary arrays.
|
14
|
+
|
15
|
+
They can be created schemaless
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
DB.create_class :industry
|
19
|
+
DB.create_class :property
|
20
|
+
property_record= Property.create con_id: 12346, property: []
|
21
|
+
industries = ['Construction','HealthCare','Bevarage']
|
22
|
+
industries.each{| industry | property_record.property << Industry.create( label: industry ) }
|
23
|
+
|
24
|
+
Property.last
|
25
|
+
=> #<Property:0x00000001d1a938 @metadata={"type"=>"d", (...)},
|
26
|
+
@attributes={"con_id"=>12346, "property"=>["#34:0", "#35:0", "#36:0"],
|
27
|
+
"created_at"=>"2017-02-01T06:28:17.332 01:00", "updated_at"=>"2017-02-01T06:28:17.344 01:00"}>
|
28
|
+
```
|
29
|
+
|
30
|
+
Stored data in this array is accessible via
|
31
|
+
|
32
|
+
```ruby
|
33
|
+
p = Property.last
|
34
|
+
p.property.label
|
35
|
+
=> ["Construction", "HealthCare", "Bevarage"]
|
36
|
+
p.property[2].label
|
37
|
+
=> "Bevarage"
|
38
|
+
p.property.label[2]
|
39
|
+
=> "Bevarage"
|
40
|
+
p.property[2].label[2]
|
41
|
+
=> "v"
|
42
|
+
|
43
|
+
p.property.remove_at 2
|
44
|
+
p.property.label
|
45
|
+
=> ["Construction", "HealthCare"]
|
46
|
+
|
47
|
+
p.property[2] = Industry.where(label:'Bevarage').first
|
48
|
+
p.property.label
|
49
|
+
=> ["Construction", "HealthCare", "Bevarage"]
|
50
|
+
```
|
51
|
+
|
52
|
+
The Elements of the Array can be treated like common ruby Arrays. Manipulations are
|
53
|
+
performed in ruby-spac. Simply call
|
54
|
+
```ruby
|
55
|
+
p.update
|
56
|
+
```
|
57
|
+
to transfer the changes into the database. This approach can be extended to linked records as well
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
p.property[2].label = 'zu'
|
61
|
+
p.property[2].update
|
62
|
+
p.property.label
|
63
|
+
=> ["Construction", "HealthCare", "zu"]
|
64
|
+
Industry.last.label
|
65
|
+
=> "zu"
|
66
|
+
|
67
|
+
|
68
|
+
```
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
(to be continued)
|
74
|
+
|
75
|
+
|
data/namespace.md
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
## Namespace Support
|
2
|
+
|
3
|
+
Consider a project, where different tasks are clearly separated.
|
4
|
+
|
5
|
+
A common case is, to concentrate any gathering of raw data in a separate module, maybe even in a gem.
|
6
|
+
|
7
|
+
ActiveOrient enables this by switching the "ActiveOrient::Model.namespace" directive.
|
8
|
+
|
9
|
+
In out case, the "ib-ruby" gem gets data through an api
|
10
|
+
The gem provides the logic to convert the raw-data from the server to ActiveOrient::Model-Objects.
|
11
|
+
Its located in the model-directory of the gem.
|
12
|
+
|
13
|
+
Just by including the gem in the Gemfile and requiring the gem, anything is available in our project.
|
14
|
+
|
15
|
+
The gem defines the ActiveOrient-Environment as follows:
|
16
|
+
```ruby
|
17
|
+
module IB
|
18
|
+
module ORD
|
19
|
+
include ActiveOrient::Init # namespace support
|
20
|
+
mattr_accessor :login
|
21
|
+
|
22
|
+
# establishes a connection to the Database and returns the Connection-Object (an ActiveOrient::OrientDB. …instance)
|
23
|
+
def self.connect
|
24
|
+
|
25
|
+
c = { :server => 'localhost', :port => 2480, :protocol => 'http',
|
26
|
+
:user => 'root', :password => 'root', :database => 'temp' }.merge login.presence || {}
|
27
|
+
ActiveOrient.default_server= { user: c[:user], password: c[:password] , server: c[:server], port: c[:port] }
|
28
|
+
ActiveOrient.database = c[:database]
|
29
|
+
logger = Logger.new '/dev/stdout'
|
30
|
+
ActiveOrient::Init.define_namespace { IB }
|
31
|
+
project_root = File.expand_path('../..', __FILE__)
|
32
|
+
|
33
|
+
ActiveOrient::Model.model_dir = "#{project_root}/models"
|
34
|
+
ActiveOrient::OrientDB.new preallocate: true # connect via http-rest
|
35
|
+
|
36
|
+
(...)
|
37
|
+
```
|
38
|
+
The gem scans through all database classes present, and allocates only those, where a model-file
|
39
|
+
is found in the model-directory.
|
40
|
+
|
41
|
+
This takes place by requiring 'ib-ruby' in 'config/boot.rb'
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
76 #read the configuration and model-files from the ib-ruby gem directotry
|
45
|
+
77 require 'ib/ord'
|
46
|
+
78 IB::ORD.login= ActiveOrient.default_server.merge database: ActiveOrient.database
|
47
|
+
79 require 'ib-ruby' # automatically connects to the database
|
48
|
+
80
|
49
|
+
81 # set the model-file for the time-graph
|
50
|
+
82 module TG
|
51
|
+
83 end
|
52
|
+
84 ActiveOrient::Model.model_dir = "#{project_root}/model"
|
53
|
+
85 ActiveOrient::Init.define_namespace { TG }
|
54
|
+
86 puts "Namespace changed: #{ActiveOrient::Model.namespace}"
|
55
|
+
87 ActiveOrient::OrientDB.new preallocate: true
|
56
|
+
|
57
|
+
```
|
58
|
+
|
59
|
+
After row 80, the namspace is changed to "TG" (TimeGraph). The example provides a gem as well. Just
|
60
|
+
»require 'orientdb_time_graph'« and call »TG.connect« to include it properly.
|
61
|
+
|
62
|
+
The code above shows how to integrate the classes within the structure of the project. The difference is the placement
|
63
|
+
of the model-files. With the gem, they are located in the root-directory of the gem. The other approach looks in the model-directory of the project (model/tg).
|
64
|
+
|
65
|
+
Before we start, we switch to the object-layer, where we want to define the working-classes. Their
|
66
|
+
logic is defined in model-files in 'model'. And we want to make shure, that all database-classes are allocated
|
67
|
+
to ruby classes.
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
97 ActiveOrient::Init.define_namespace :object
|
71
|
+
98 ActiveOrient::Model.keep_models_without_file = true
|
72
|
+
99 ORD = ActiveOrient::OrientDB.new preallocate: true
|
73
|
+
```
|
74
|
+
|
75
|
+
**note** The preallocation-algorithm trys to load any class. If »ActiveOrient::Model.keep_models_without_file«
|
76
|
+
is set to false, classes are allocated only, if a model-file is present. As a consequence, any appropopiate
|
77
|
+
model-file is loaded.
|
78
|
+
|
79
|
+
Any previously allocated class can thus be extended, providing a proper model-file. For example: If we
|
80
|
+
allocated a class «Contract« in the namspace »IB«, methods for this class are included from the model-dir specified in the gem *and* in the actual-model-directory ( in this case: model/ib/contract.rb ).
|
81
|
+
|
82
|
+
|
83
|
+
As a result something like this appears:
|
84
|
+
|
85
|
+
```
|
86
|
+
DB-Class -> Ruby-Object
|
87
|
+
V -> V
|
88
|
+
E -> E
|
89
|
+
contract -> IB::Contract
|
90
|
+
bag -> IB::Bag
|
91
|
+
forex -> IB::Forex
|
92
|
+
future -> IB::Future
|
93
|
+
option -> IB::Option
|
94
|
+
stock -> IB::Stock
|
95
|
+
account -> IB::Account
|
96
|
+
bar -> IB::Bar
|
97
|
+
contract_detail -> IB::ContractDetail
|
98
|
+
day_of -> TG::DAY_OF
|
99
|
+
time_of -> TG::TIME_OF
|
100
|
+
time_base -> TG::TimeBase
|
101
|
+
monat -> TG::Monat
|
102
|
+
stunde -> TG::Stunde
|
103
|
+
tag -> TG::Tag
|
104
|
+
|
105
|
+
new_test -> NewTest
|
106
|
+
|
107
|
+
```
|
108
|
+
|
109
|
+
By changing the namespace-scope with 'ActiveOrient::Init.define_namespace' its always possible to
|
110
|
+
change properties, include links and edges or to add and remove classes in the Sub-Modules.
|
111
|
+
|
data/rails.md
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
# Active Orient and Rails
|
2
|
+
|
3
|
+
The usage of Orientdb via ActiveOrient in Rails requires just a few steps.
|
4
|
+
Based on a Rails 5 installation
|
5
|
+
|
6
|
+
```ruby
|
7
|
+
rvm install 2.4
|
8
|
+
rvm use 2.4
|
9
|
+
gem install bundler
|
10
|
+
gem install nokogiri
|
11
|
+
gem install rails
|
12
|
+
rails -v # Rails 5.0.1
|
13
|
+
|
14
|
+
```
|
15
|
+
|
16
|
+
create your working directory and initialize the system
|
17
|
+
|
18
|
+
```ruby
|
19
|
+
mkdir rails_project; cd rails_project
|
20
|
+
rails -OCT .
|
21
|
+
```
|
22
|
+
This initializes a Rails-Stack, without active-record, action-cable and the test-suite.
|
23
|
+
(We will use rspec later)
|
24
|
+
|
25
|
+
This can be checked by inspecting «/config/application.rb «
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
rails s puma
|
29
|
+
```
|
30
|
+
should work at this stage.
|
31
|
+
|
32
|
+
## Modify the Gemfile
|
33
|
+
Inform rails to use orientdb and active-orient
|
34
|
+
|
35
|
+
```
|
36
|
+
echo " gem 'active-orient' , :path => '/home/your_cloned_active_orient_path/activeorient' " >> Gemfile
|
37
|
+
# or
|
38
|
+
|
39
|
+
echo " gem 'active-orient' , :git => 'https://github.com/topofocus/active-orient.git' " >> Gemfile
|
40
|
+
```
|
41
|
+
|
42
|
+
After that, copy
|
43
|
+
|
44
|
+
* __active_orient/rails/activeorient.rb__ to /config/initializers in the rails-project dir
|
45
|
+
* __active_orient/rails/connect.yml__ to /config
|
46
|
+
* __active_orient/rails/config.yml__ to /config
|
47
|
+
|
48
|
+
and modify the yml-files accordingly.
|
49
|
+
|
50
|
+
Run the bundler
|
51
|
+
|
52
|
+
```
|
53
|
+
bundle install & bundle update
|
54
|
+
```
|
55
|
+
|
56
|
+
The database should be present in the rails console, and
|
57
|
+
```ruby
|
58
|
+
rails c
|
59
|
+
|
60
|
+
V.count
|
61
|
+
V.first
|
62
|
+
E.count
|
63
|
+
puts ActiveOrient::Model.allocated_classes.map{|x,y| "#{"%15s"% x} -> #{y.to_s}" }.join("\n")
|
64
|
+
|
65
|
+
```
|
66
|
+
should work.
|
67
|
+
|
68
|
+
**Notice** The spring-facility is running in the background. Stop the server prior reloading
|
69
|
+
the console ( ./bin/spring stop ).
|
70
|
+
|
71
|
+
The final step is to generate Model-Files. In «/config/config.yml» the «:model_dir»-var points to
|
72
|
+
the location of the model-files. The default is 'lib/orient'.
|
73
|
+
|
74
|
+
Upon startup this directory is scanned for autoloading database-files.
|
75
|
+
|
76
|
+
After envoking the rails console, the logfile displays sucessfully loaded and missing files, ie.
|
77
|
+
|
78
|
+
```
|
79
|
+
14.01.(08:28:45) INFO->ModelClass#RequireModelFile:..:model-file not present: /home/topo/workspace/orient-rails/lib/orient/followed_by.rb
|
80
|
+
14.01.(08:28:45) INFO->ModelClass#RequireModelFile:..:/home/topo/workspace/orient-rails/lib/orient/v.rb sucessfully loaded
|
81
|
+
```
|
82
|
+
|
83
|
+
## Model-file Example
|
84
|
+
|
85
|
+
To query the GratefulDeadConcerts Database, «v.rb» hosts the essential model methods.
|
86
|
+
As always, use «def self.{method}« for class methods and simply «def {method}» for methods working on the record level.
|
87
|
+
|
88
|
+
```
|
89
|
+
1 class V
|
90
|
+
2 def self.artists **attributes
|
91
|
+
3 names 'artist', **attributes
|
92
|
+
4 end
|
93
|
+
5
|
94
|
+
6 def self.songs **attributes
|
95
|
+
7 names 'song', **attributes
|
96
|
+
8 end
|
97
|
+
9
|
98
|
+
10 def self.types
|
99
|
+
11 oo = OrientSupport::OrientQuery
|
100
|
+
12 this_query = oo.new distinct: [:type, :a ]
|
101
|
+
13 query_database( this_query ).a
|
102
|
+
14 end
|
103
|
+
15 private
|
104
|
+
16 def self.names type, sort: :asc, limit: 20, skip: 0
|
105
|
+
17 puts "in names"
|
106
|
+
18 oo = OrientSupport::OrientQuery
|
107
|
+
19 query_database oo.new( where: {type: type },
|
108
|
+
20 order: { name: sort } ,
|
109
|
+
21 limit: limit ,
|
110
|
+
22 skip: skip )
|
111
|
+
23 end
|
112
|
+
24 end
|
113
|
+
|
114
|
+
```
|
115
|
+
|
116
|
+
Now
|
117
|
+
|
118
|
+
```ruby
|
119
|
+
V.types
|
120
|
+
V.artists limit: 15, skip: 34, sort: :desc
|
121
|
+
```
|
122
|
+
queries the database, fetches 15 artists and can be used everywhere.
|
123
|
+
|
124
|
+
|
125
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
project_root = File.expand_path('../../..', __FILE__)
|
2
|
+
config_root = File.expand_path('../..', __FILE__)
|
3
|
+
begin
|
4
|
+
connect_file = File.expand_path('../../connect.yml', __FILE__)
|
5
|
+
config_file = File.expand_path('../../config.yml', __FILE__)
|
6
|
+
connectyml = YAML.load_file( connect_file )[:orientdb][:admin] if connect_file.present?
|
7
|
+
configyml = YAML.load_file( config_file )[:active_orient] if config_file.present?
|
8
|
+
databaseyml = YAML.load_file( connect_file )[:orientdb][:database] if connect_file.present?
|
9
|
+
rescue Errno::ENOENT => e
|
10
|
+
Rails.logger.error{ "config/connect.yml not present" }
|
11
|
+
puts "config/connectyml not present"
|
12
|
+
Rails.logger.error{ "Using defaults to connect database-server" }
|
13
|
+
puts "Using defaults to connect database-server"
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
ActiveOrient::Model.model_dir = "#{project_root}/#{ configyml.present? ? configyml[:model_dir] : "model" }"
|
18
|
+
ActiveOrient::Model.keep_models_without_file = true
|
19
|
+
# lib/init.rb
|
20
|
+
ActiveOrient::Init.define_namespace yml: configyml, namespace: @namespace
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
Rails.logger.formatter = proc do |severity, datetime, progname, msg|
|
25
|
+
"#{datetime.strftime("%d.%m.(%X)")}#{"%5s" % severity}->#{progname}:..:#{msg}\n"
|
26
|
+
end
|
27
|
+
ActiveOrient::Base.logger = Rails.logger
|
28
|
+
ActiveOrient::OrientDB.logger = Rails.logger
|
29
|
+
|
30
|
+
if connectyml.present? and connectyml[:user].present? and connectyml[:pass].present?
|
31
|
+
ActiveOrient.default_server= { user: connectyml[:user], password: connectyml[:pass] ,
|
32
|
+
server: 'localhost', port: 2480 }
|
33
|
+
ActiveOrient.database = @configDatabase.presence || databaseyml[Rails.env.to_sym]
|
34
|
+
|
35
|
+
ORD = ActiveOrient::OrientDB.new preallocate: @do_not_preallocate.present? ? false : true
|
36
|
+
if RUBY_PLATFORM == 'java'
|
37
|
+
DB = ActiveOrient::API.new preallocate: false
|
38
|
+
else
|
39
|
+
DB = ORD
|
40
|
+
end
|
41
|
+
# ActiveOrient::Init.vertex_and_edge_class
|
42
|
+
|
43
|
+
ORD.create_classes 'E', 'V'
|
44
|
+
E.ref_name = 'E'
|
45
|
+
V.ref_name = 'V'
|
46
|
+
else
|
47
|
+
logger = Logger.new('/dev/stdout')
|
48
|
+
logger.error{ "config/connectyml is misconfigurated" }
|
49
|
+
logger.error{ "Database Server is NOT available"}
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
|
data/usecase_oo.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
## Usecase
|
2
2
|
Below some typical features are summarized by example
|
3
3
|
|
4
|
-
Initialize ActiveOrient by calling »bin/
|
4
|
+
Initialize ActiveOrient by calling »bin/active-orient-console t«.
|
5
5
|
This connects to the Test-Database.
|
6
6
|
|
7
7
|
```ruby
|
@@ -57,3 +57,5 @@ Attibutes/properties of the Database-Record can be handled as normal ruby objec
|
|
57
57
|
```
|
58
58
|
|
59
59
|
## Inherence
|
60
|
+
|
61
|
+
( to be continued )
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active-orient
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.6'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hartmut Bischoff
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -42,30 +42,30 @@ dependencies:
|
|
42
42
|
name: activesupport
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: activemodel
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rest-client
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,7 +80,7 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
description: Persistent ORM for OrientDB, based on ActiveModel
|
83
|
+
description: Persistent ORM for OrientDB(V.2.2), based on ActiveModel. Rails 5 compatible
|
84
84
|
email:
|
85
85
|
- topofocus@gmail.com
|
86
86
|
executables: []
|
@@ -101,36 +101,14 @@ files:
|
|
101
101
|
- config/connect.yml
|
102
102
|
- create_project
|
103
103
|
- examples/books.rb
|
104
|
-
- examples/createTime.rb
|
105
104
|
- examples/streets.rb
|
106
105
|
- examples/test_commands.rb
|
107
106
|
- examples/test_commands_2.rb
|
108
107
|
- examples/test_commands_2.rb~
|
109
108
|
- examples/test_commands_3.rb
|
110
109
|
- examples/test_commands_4.rb
|
111
|
-
- examples/time_graph
|
112
|
-
-
|
113
|
-
- examples/time_graph/README.md
|
114
|
-
- examples/time_graph/bin/active-orient-console
|
115
|
-
- examples/time_graph/config/boot.rb
|
116
|
-
- examples/time_graph/config/config.yml
|
117
|
-
- examples/time_graph/config/connect.yml
|
118
|
-
- examples/time_graph/config/init_db.rb
|
119
|
-
- examples/time_graph/createTime.rb
|
120
|
-
- examples/time_graph/lib/createTime.rb
|
121
|
-
- examples/time_graph/model/day_of.rb
|
122
|
-
- examples/time_graph/model/e.rb
|
123
|
-
- examples/time_graph/model/edge.rb
|
124
|
-
- examples/time_graph/model/monat.rb
|
125
|
-
- examples/time_graph/model/stunde.rb
|
126
|
-
- examples/time_graph/model/tag.rb
|
127
|
-
- examples/time_graph/model/time_base.rb
|
128
|
-
- examples/time_graph/model/time_of.rb
|
129
|
-
- examples/time_graph/model/v.rb
|
130
|
-
- examples/time_graph/model/vertex.rb
|
131
|
-
- examples/time_graph/spec/lib/create_time_spec.rb
|
132
|
-
- examples/time_graph/spec/rest_helper.rb
|
133
|
-
- examples/time_graph/spec/spec_helper.rb
|
110
|
+
- examples/time_graph.md
|
111
|
+
- gratefuldeadconcerts.md
|
134
112
|
- lib/active-orient.rb
|
135
113
|
- lib/base.rb
|
136
114
|
- lib/base_properties.rb
|
@@ -156,8 +134,13 @@ files:
|
|
156
134
|
- lib/rest/rest.rb
|
157
135
|
- lib/rest_disabled.rb
|
158
136
|
- lib/support.rb
|
137
|
+
- linkmap.md
|
138
|
+
- namespace.md
|
159
139
|
- old_lib_functions/two_general_class.rb
|
160
|
-
-
|
140
|
+
- rails.md
|
141
|
+
- rails/activeorient.rb
|
142
|
+
- rails/config.yml
|
143
|
+
- rails/connect.yml
|
161
144
|
- usecase_oo.md
|
162
145
|
homepage: https://github.com/topofocus/active-orient
|
163
146
|
licenses:
|
@@ -179,8 +162,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
162
|
version: '0'
|
180
163
|
requirements: []
|
181
164
|
rubyforge_project:
|
182
|
-
rubygems_version: 2.
|
165
|
+
rubygems_version: 2.6.8
|
183
166
|
signing_key:
|
184
167
|
specification_version: 4
|
185
|
-
summary: Pure ruby client for OrientDB based on ActiveModel
|
168
|
+
summary: Pure ruby client for OrientDB(V.2.2) based on ActiveModel
|
186
169
|
test_files: []
|