active-orient 0.4 → 0.5
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 +4 -4
- data/.gitignore +1 -0
- data/Gemfile +8 -3
- data/Guardfile +12 -4
- data/README.md +221 -201
- data/VERSION +1 -1
- data/active-orient.gemspec +3 -2
- data/bin/active-orient-console +35 -0
- data/config/boot.rb +84 -16
- data/config/config.yml +10 -0
- data/config/connect.yml +6 -2
- data/create_project +19 -0
- data/examples/books.rb +86 -39
- data/examples/createTime.rb +91 -0
- data/examples/streets.rb +85 -84
- data/examples/test_commands.rb +92 -0
- data/examples/test_commands_2.rb +54 -0
- data/examples/test_commands_3.rb +48 -0
- data/examples/test_commands_4.rb +28 -0
- data/examples/time_graph/Gemfile +21 -0
- data/examples/time_graph/Guardfile +26 -0
- data/examples/time_graph/README.md +129 -0
- data/examples/time_graph/bin/active-orient-console +35 -0
- data/examples/time_graph/config/boot.rb +119 -0
- data/examples/time_graph/config/config.yml +8 -0
- data/examples/time_graph/config/connect.yml +17 -0
- data/examples/time_graph/config/init_db.rb +59 -0
- data/examples/time_graph/createTime.rb +51 -0
- data/examples/time_graph/lib/createTime.rb +82 -0
- data/examples/time_graph/model/day_of.rb +3 -0
- data/examples/time_graph/model/e.rb +6 -0
- data/examples/time_graph/model/edge.rb +53 -0
- data/examples/time_graph/model/monat.rb +19 -0
- data/examples/time_graph/model/stunde.rb +16 -0
- data/examples/time_graph/model/tag.rb +29 -0
- data/examples/time_graph/model/time_base.rb +6 -0
- data/examples/time_graph/model/time_of.rb +4 -0
- data/examples/time_graph/model/v.rb +3 -0
- data/examples/time_graph/model/vertex.rb +32 -0
- data/examples/time_graph/spec/lib/create_time_spec.rb +50 -0
- data/examples/time_graph/spec/rest_helper.rb +37 -0
- data/examples/time_graph/spec/spec_helper.rb +46 -0
- data/lib/active-orient.rb +56 -6
- data/lib/base.rb +149 -147
- data/lib/base_properties.rb +40 -41
- data/lib/class_utils.rb +301 -0
- data/lib/database_utils.rb +97 -0
- data/lib/init.rb +35 -0
- data/lib/java-api.rb +437 -0
- data/lib/jdbc.rb +211 -0
- data/lib/model/edge.rb +53 -0
- data/lib/model/model.rb +77 -0
- data/lib/model/the_class.rb +480 -0
- data/lib/model/the_record.rb +310 -0
- data/lib/model/vertex.rb +32 -0
- data/lib/orient.rb +113 -50
- data/lib/orientdb_private.rb +48 -0
- data/lib/other.rb +280 -0
- data/lib/query.rb +71 -73
- data/lib/rest/change.rb +124 -0
- data/lib/rest/create.rb +474 -0
- data/lib/rest/delete.rb +133 -0
- data/lib/rest/operations.rb +150 -0
- data/lib/rest/read.rb +150 -0
- data/lib/rest/rest.rb +111 -0
- data/lib/rest_disabled.rb +24 -0
- data/lib/support.rb +387 -296
- data/old_lib_functions/two_general_class.rb +139 -0
- data/usecase.md +49 -36
- data/usecase_oo.md +59 -0
- metadata +73 -9
- data/lib/model.rb +0 -461
- data/lib/rest.rb +0 -1036
- data/test.rb +0 -4
@@ -0,0 +1,139 @@
|
|
1
|
+
# NEW
|
2
|
+
|
3
|
+
def create_general_class classes, behaviour = "NORMALCLASS", extend_class, properties: nil
|
4
|
+
if @classes_available.nil?
|
5
|
+
@classes_available = get_database_classes requery: true
|
6
|
+
@classes_available = @classes_available.map!{|x| x.downcase}
|
7
|
+
end
|
8
|
+
|
9
|
+
begin
|
10
|
+
consts = Array.new
|
11
|
+
|
12
|
+
if classes.is_a? Array
|
13
|
+
if behaviour == "NORMALCLASS"
|
14
|
+
classes.each do |singleclass|
|
15
|
+
consts |= create_general_class singleclass, properties: properties
|
16
|
+
end
|
17
|
+
else
|
18
|
+
classes.each do |singleclass|
|
19
|
+
consts |= create_general_class singleclass, "EXTENDEDCLASS", extend_class, properties: properties
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
elsif classes.is_a? Hash
|
24
|
+
classes.keys.each do |superclass|
|
25
|
+
consts |= create_general_class superclass, "SUPERCLASS"
|
26
|
+
consts |= create_general_class classes[superclass], "EXTENDEDCLASS", superclass, properties: properties
|
27
|
+
end
|
28
|
+
|
29
|
+
else
|
30
|
+
name_class = classes.to_s.camelize
|
31
|
+
unless @classes_available.include?(name_class.downcase)
|
32
|
+
|
33
|
+
if behaviour == "NORMALCLASS"
|
34
|
+
command = "CREATE CLASS #{name_class}"
|
35
|
+
elsif behaviour = "SUPERCLASS"
|
36
|
+
command = "CREATE CLASS #{name_class} ABSTRACT"
|
37
|
+
elsif behaviour = "EXTENDEDCLASS"
|
38
|
+
name_superclass = extend_class.to_s.camelize
|
39
|
+
command = "CREATE CLASS #{name_class} EXTENDS #{name_superclass}"
|
40
|
+
end
|
41
|
+
|
42
|
+
execute transaction: false do
|
43
|
+
{ type: "cmd",
|
44
|
+
language: "sql",
|
45
|
+
command: command}
|
46
|
+
end
|
47
|
+
|
48
|
+
@classes_available << name_class.downcase
|
49
|
+
|
50
|
+
# Add properties
|
51
|
+
unless properties.nil?
|
52
|
+
create_properties temp_class, properties
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
temp_class = ActiveOrient::Model.orientdb_class(name: name_class)
|
57
|
+
consts << temp_class
|
58
|
+
return consts
|
59
|
+
end
|
60
|
+
rescue RestClient::InternalServerError => e
|
61
|
+
logger.progname = 'RestCreate#CreateGeneralClass'
|
62
|
+
response = JSON.parse(e.response)['errors'].pop
|
63
|
+
logger.error{"#{response['content'].split(':').last }"}
|
64
|
+
nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
alias create_classes create_general_class
|
68
|
+
|
69
|
+
# OLD
|
70
|
+
|
71
|
+
def create_general_class classes, properties: nil
|
72
|
+
begin
|
73
|
+
get_database_classes requery: true
|
74
|
+
consts = Array.new
|
75
|
+
execute transaction: false do
|
76
|
+
class_cmd = -> (s,n) do
|
77
|
+
n = n.to_s.camelize
|
78
|
+
consts << ActiveOrient::Model.orientdb_class(name: n)
|
79
|
+
classes_available = get_database_classes.map{|x| x.downcase}
|
80
|
+
unless classes_available.include?(n.downcase)
|
81
|
+
{type: "cmd", language: 'sql', command: "CREATE CLASS #{n} EXTENDS #{s}"}
|
82
|
+
end
|
83
|
+
end ## class_cmd
|
84
|
+
|
85
|
+
if classes.is_a?(Array)
|
86
|
+
classes.map do |n|
|
87
|
+
n = n.to_s.camelize
|
88
|
+
consts << ActiveOrient::Model.orientdb_class(name: n)
|
89
|
+
classes_available = get_database_classes.map{|x| x.downcase}
|
90
|
+
unless classes_available.include?(n.downcase)
|
91
|
+
{type: "cmd", language: 'sql', command: "CREATE CLASS #{n}"}
|
92
|
+
end
|
93
|
+
end
|
94
|
+
elsif classes.is_a?(Hash)
|
95
|
+
classes.keys.map do |superclass|
|
96
|
+
items = Array.new
|
97
|
+
superClass = superclass.to_s.camelize
|
98
|
+
unless get_database_classes.flatten.include?(superClass)
|
99
|
+
items << {type: "cmd", language: 'sql', command: "CREATE CLASS #{superClass} ABSTRACT"}
|
100
|
+
end
|
101
|
+
items << if classes[superclass].is_a?(String) || classes[superclass].is_a?(Symbol)
|
102
|
+
class_cmd[superClass, classes[superclass]]
|
103
|
+
elsif classes[superclass].is_a?(Array)
|
104
|
+
classes[superclass].map{|n| class_cmd[superClass, n]}
|
105
|
+
end
|
106
|
+
items # returnvalue
|
107
|
+
end.flatten
|
108
|
+
end.compact # erase nil-entries, in case the class is already allocated
|
109
|
+
end
|
110
|
+
# refresh cached class-informations
|
111
|
+
classes_available = get_database_classes requery: true
|
112
|
+
|
113
|
+
# Add properties
|
114
|
+
unless properties.nil?
|
115
|
+
classes_available.map!{|x| x.downcase}
|
116
|
+
consts = Array.new
|
117
|
+
if classes.is_a?(Hash)
|
118
|
+
superclass = classes.keys[0]
|
119
|
+
classes = [classes[superclass]]
|
120
|
+
end
|
121
|
+
classes.each do |n|
|
122
|
+
if classes_available.include?(n.downcase)
|
123
|
+
temp_class = ActiveOrient::Model.orientdb_class(name: n)
|
124
|
+
create_properties temp_class, properties
|
125
|
+
consts << temp_class
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# returns an array of allocated Constants/Classes
|
131
|
+
consts
|
132
|
+
rescue RestClient::InternalServerError => e
|
133
|
+
logger.progname = 'RestCreate#CreateGeneralClass'
|
134
|
+
response = JSON.parse(e.response)['errors'].pop
|
135
|
+
logger.error{"#{response['content'].split(':').last }"}
|
136
|
+
nil
|
137
|
+
end
|
138
|
+
end
|
139
|
+
alias create_classes create_general_class
|
data/usecase.md
CHANGED
@@ -1,67 +1,80 @@
|
|
1
1
|
## Usecase
|
2
2
|
Below some typical features are summarized by example
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
4
|
+
Initialize ActiveOrient by calling »bin/active-orient-console t«.
|
5
|
+
This connects to the Test-Database, specified in »config/connect.yml«.
|
6
|
+
|
7
|
+
```bash
|
8
|
+
topo@gamma:~/activeorient/bin$ ./active-orient-console t
|
9
|
+
Using test-environment
|
10
|
+
30.06.(21:36:09) INFO->OrientDB#Connect:..:Connected to database tempera
|
11
|
+
ORD points to the REST-Instance
|
12
|
+
Allocated Classes (Hierarchy)
|
13
|
+
-----------------------------------
|
14
|
+
---
|
15
|
+
- E
|
16
|
+
- - V
|
17
|
+
- - a
|
18
|
+
- b
|
19
|
+
- c
|
20
|
+
|
21
|
+
```
|
22
|
+
The database is almost empty. "E" and "V" are base classes for Edges and Vertices.
|
23
|
+
"a,b,c" are Vertex-Classes.
|
24
|
+
```ruby
|
25
|
+
A,B,C = * ORD.create_classes( [ :a, :b, :c ] ){ :v }
|
12
26
|
```
|
27
|
+
creates them with a single statement and assigns them to Ruby-classes "A","B" and "C".
|
28
|
+
|
13
29
|
#### Object Mapping
|
14
30
|
Lets create a class, put some content in it and perform basic oo-steps.
|
15
31
|
|
16
|
-
Attributes(Properties) do not have to be formaly declared.
|
32
|
+
Attributes(Properties) do not have to be formaly declared. One can save any Object, which
|
33
|
+
provides a 'to_orient' method. Base-Classes are supported out of the box.
|
17
34
|
»update«
|
18
35
|
|
19
36
|
``` ruby
|
20
|
-
A =
|
21
|
-
=> ActiveOrient::Model::
|
22
|
-
a = A.
|
23
|
-
a.update set: { a_array: aa= [ 1,4,'r'
|
37
|
+
A = ORD.create_class 'my_a_class'
|
38
|
+
=> ActiveOrient::Model::MyAClass
|
39
|
+
a = A.create test: 45
|
40
|
+
a.update set: { a_array: aa= [ 1,4,'r' ] ,
|
24
41
|
a_hash: { :a => 'b', b: 2 } }
|
25
42
|
a.to_human
|
26
|
-
=> <
|
43
|
+
=> <MyAClass: a_array: [1, 4, r], a_hash: { a => b , b =>2}, test: 45>
|
27
44
|
|
28
45
|
```
|
29
|
-
|
46
|
+
**Notice** Ruby-Symbols are converted to Strings and masked as ":{symbol}:".
|
47
|
+
|
48
|
+
Attibutes/properties of the Database-Record can be handled as normal ruby objects, ie.
|
30
49
|
|
31
50
|
``` ruby
|
32
|
-
a.a_array << "a new element"
|
33
|
-
a.a_hash[ :a_new_element ] = "value of the new element"
|
51
|
+
a.a_array << "a new element" # changes are updated in the DB, calling »update« is not nesessary
|
52
|
+
a.a_hash[ :a_new_element ] = "value of the new element" # changes are local, »update« stores them in the DB
|
34
53
|
a.test += 3
|
35
54
|
a.test = 567
|
36
55
|
a.update
|
37
56
|
```
|
38
|
-
Objects are synchronized with the database with »update«. To revert changes, a »reload!« method is available.
|
39
57
|
|
40
58
|
#### Contracts-Example
|
41
59
|
Assume a Database, which is defined as
|
42
60
|
```
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
create property SubCategories.contracts linkset
|
56
|
-
|
57
|
-
create property Contracts.subcategory link
|
58
|
-
create property Contracts.details link
|
59
|
-
create property OpenInterest.contracts linkset
|
61
|
+
ORD.create_classes [ :Industry, :Category, :SubCategory ]
|
62
|
+
ORD.create_class :OpenInterest, abstract: true
|
63
|
+
ORD.create_classes { :Contract => [ :Stock, Future, Option, Forex ]}
|
64
|
+
ORD.create_property Industry.categories linkset
|
65
|
+
ORD.create_property Category.subcategories linkset
|
66
|
+
ORD.create_property Category.industry link
|
67
|
+
ORD.create_property SubCategory.category link
|
68
|
+
ORD.create_property SubCategory.contracts linkset
|
69
|
+
|
70
|
+
ORD.create_property Contracts.subcategory link
|
71
|
+
ORD.create_property Contracts.details link
|
72
|
+
ORD.create_property OpenInterest.contracts linkset
|
60
73
|
|
61
74
|
```
|
62
75
|
This defines some conventional relations:
|
63
76
|
|
64
|
-
OpenInterest ->
|
77
|
+
OpenInterest -> Contract <- Subcategory <- Category <- Industry
|
65
78
|
|
66
79
|
with some oo-Behavior
|
67
80
|
```ruby
|
data/usecase_oo.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
## Usecase
|
2
|
+
Below some typical features are summarized by example
|
3
|
+
|
4
|
+
Initialize ActiveOrient by calling »bin/actibe-orient-console t«.
|
5
|
+
This connects to the Test-Database.
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
topo@gamma:~/activeorient/bin$ ./active-orient-console t
|
9
|
+
Using test-environment
|
10
|
+
30.06.(21:36:09) INFO->OrientDB#Connect:..:Connected to database tempera
|
11
|
+
ORD points to the REST-Instance
|
12
|
+
Allocated Classes (Hierarchy)
|
13
|
+
-----------------------------------
|
14
|
+
---
|
15
|
+
- E
|
16
|
+
- - V
|
17
|
+
- - a
|
18
|
+
- b
|
19
|
+
- c
|
20
|
+
|
21
|
+
```
|
22
|
+
The database is almost empty. "E" and "V" are base classes for Edges and Vertices.
|
23
|
+
"a,b,c" are Vertex-Classes.
|
24
|
+
```ruby
|
25
|
+
ORD.create_classes( [ :a, :b, :c ] ){ :V }
|
26
|
+
```
|
27
|
+
creates them with a single statement. They are mapped to Ruby-classes "A","B" and "C".
|
28
|
+
|
29
|
+
#### Object Mapping
|
30
|
+
Lets create a class, put some content in it and perform basic oo-steps.
|
31
|
+
|
32
|
+
Attributes(Properties) do not have to be formaly declared. One can save any Object, which
|
33
|
+
provides a 'to_orient' method. Base-Classes are supported out of the box.
|
34
|
+
»update«
|
35
|
+
|
36
|
+
``` ruby
|
37
|
+
ORD.create_class 'my_a_class'
|
38
|
+
=> MyAClass
|
39
|
+
my_class = MyAClass.create test: 45
|
40
|
+
my_class.update set: { a_array: aa= [ 1,4,'r' ] ,
|
41
|
+
a_hash: { :a => 'b', b: 2 } }
|
42
|
+
my_class.to_human
|
43
|
+
=> "<MyAClass: a_array: [1, 4, r], a_hash: { a => b , b =>2}, test: 45>"
|
44
|
+
|
45
|
+
```
|
46
|
+
**Notice** Ruby-Symbols are converted to Strings and masked as ":{symbol}:".
|
47
|
+
There is a method: String#from_orient, which reverses the prodedure.
|
48
|
+
|
49
|
+
Attibutes/properties of the Database-Record can be handled as normal ruby objects ie.
|
50
|
+
|
51
|
+
``` ruby
|
52
|
+
my_class.a_array << "a new element"
|
53
|
+
my_class.a_hash[ :a_new_element ] = "value of the new element"
|
54
|
+
my_class.test += 3
|
55
|
+
my_class.test = 567
|
56
|
+
my_class.update
|
57
|
+
```
|
58
|
+
|
59
|
+
## Inherence
|
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.5'
|
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: 2016-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -53,19 +53,33 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '4.2'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: activemodel
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '2
|
61
|
+
version: '4.2'
|
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: '2
|
68
|
+
version: '4.2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rest-client
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: Persistent ORM for OrientDB, based on ActiveModel
|
70
84
|
email:
|
71
85
|
- topofocus@gmail.com
|
@@ -81,20 +95,70 @@ files:
|
|
81
95
|
- README.md
|
82
96
|
- VERSION
|
83
97
|
- active-orient.gemspec
|
98
|
+
- bin/active-orient-console
|
84
99
|
- config/boot.rb
|
100
|
+
- config/config.yml
|
85
101
|
- config/connect.yml
|
102
|
+
- create_project
|
86
103
|
- examples/books.rb
|
104
|
+
- examples/createTime.rb
|
87
105
|
- examples/streets.rb
|
106
|
+
- examples/test_commands.rb
|
107
|
+
- examples/test_commands_2.rb
|
108
|
+
- examples/test_commands_2.rb~
|
109
|
+
- examples/test_commands_3.rb
|
110
|
+
- examples/test_commands_4.rb
|
111
|
+
- examples/time_graph/Gemfile
|
112
|
+
- examples/time_graph/Guardfile
|
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
|
88
134
|
- lib/active-orient.rb
|
89
135
|
- lib/base.rb
|
90
136
|
- lib/base_properties.rb
|
91
|
-
- lib/
|
137
|
+
- lib/class_utils.rb
|
138
|
+
- lib/database_utils.rb
|
139
|
+
- lib/init.rb
|
140
|
+
- lib/java-api.rb
|
141
|
+
- lib/jdbc.rb
|
142
|
+
- lib/model/edge.rb
|
143
|
+
- lib/model/model.rb
|
144
|
+
- lib/model/the_class.rb
|
145
|
+
- lib/model/the_record.rb
|
146
|
+
- lib/model/vertex.rb
|
92
147
|
- lib/orient.rb
|
148
|
+
- lib/orientdb_private.rb
|
149
|
+
- lib/other.rb
|
93
150
|
- lib/query.rb
|
94
|
-
- lib/rest.rb
|
151
|
+
- lib/rest/change.rb
|
152
|
+
- lib/rest/create.rb
|
153
|
+
- lib/rest/delete.rb
|
154
|
+
- lib/rest/operations.rb
|
155
|
+
- lib/rest/read.rb
|
156
|
+
- lib/rest/rest.rb
|
157
|
+
- lib/rest_disabled.rb
|
95
158
|
- lib/support.rb
|
96
|
-
-
|
159
|
+
- old_lib_functions/two_general_class.rb
|
97
160
|
- usecase.md
|
161
|
+
- usecase_oo.md
|
98
162
|
homepage: https://github.com/topofocus/active-orient
|
99
163
|
licenses:
|
100
164
|
- MIT
|
@@ -107,7 +171,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
171
|
requirements:
|
108
172
|
- - ">="
|
109
173
|
- !ruby/object:Gem::Version
|
110
|
-
version: 2.2.
|
174
|
+
version: 2.2.5
|
111
175
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
176
|
requirements:
|
113
177
|
- - ">="
|