active-orient 0.42 → 0.79

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.
Files changed (60) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/Gemfile +13 -5
  4. data/Guardfile +12 -4
  5. data/README.md +67 -280
  6. data/VERSION +1 -1
  7. data/active-orient.gemspec +6 -5
  8. data/bin/active-orient-0.6.gem +0 -0
  9. data/bin/active-orient-console +85 -0
  10. data/config/boot.rb +72 -1
  11. data/config/config.yml +10 -0
  12. data/config/connect.yml +9 -4
  13. data/examples/books.rb +92 -40
  14. data/examples/streets.rb +89 -85
  15. data/examples/test_commands.rb +97 -0
  16. data/examples/test_commands_2.rb +59 -0
  17. data/examples/test_commands_3.rb +55 -0
  18. data/examples/test_commands_4.rb +33 -0
  19. data/examples/time_graph.md +162 -0
  20. data/lib/active-orient.rb +75 -9
  21. data/lib/base.rb +238 -169
  22. data/lib/base_properties.rb +68 -60
  23. data/lib/class_utils.rb +226 -0
  24. data/lib/database_utils.rb +98 -0
  25. data/lib/init.rb +79 -0
  26. data/lib/java-api.rb +442 -0
  27. data/lib/jdbc.rb +211 -0
  28. data/lib/model/custom.rb +26 -0
  29. data/lib/model/edge.rb +70 -0
  30. data/lib/model/model.rb +134 -0
  31. data/lib/model/the_class.rb +607 -0
  32. data/lib/model/the_record.rb +266 -0
  33. data/lib/model/vertex.rb +236 -0
  34. data/lib/orientdb_private.rb +48 -0
  35. data/lib/other.rb +371 -0
  36. data/lib/railtie.rb +68 -0
  37. data/lib/rest/change.rb +147 -0
  38. data/lib/rest/create.rb +279 -0
  39. data/lib/rest/delete.rb +134 -0
  40. data/lib/rest/operations.rb +211 -0
  41. data/lib/rest/read.rb +171 -0
  42. data/lib/rest/rest.rb +112 -0
  43. data/lib/rest_disabled.rb +24 -0
  44. data/lib/support/logging.rb +38 -0
  45. data/lib/support/orient.rb +196 -0
  46. data/lib/support/orientquery.rb +469 -0
  47. data/rails.md +154 -0
  48. data/rails/activeorient.rb +32 -0
  49. data/rails/config.yml +10 -0
  50. data/rails/connect.yml +17 -0
  51. metadata +65 -24
  52. data/active-orient-0.4.gem +0 -0
  53. data/active-orient-0.41.gem +0 -0
  54. data/lib/model.rb +0 -468
  55. data/lib/orient.rb +0 -98
  56. data/lib/query.rb +0 -88
  57. data/lib/rest.rb +0 -1059
  58. data/lib/support.rb +0 -372
  59. data/test.rb +0 -4
  60. data/usecase.md +0 -91
@@ -0,0 +1,97 @@
1
+ ### OUTDATED ####
2
+ ### Please do not use anymore.
3
+ ### Insteed take a look to the Rspec-files in /spec/lib
4
+
5
+
6
+ require 'awesome_print'
7
+ require_relative "../lib/active-orient.rb"
8
+
9
+ # Start server
10
+ ActiveOrient::OrientDB.default_server = { user: 'root', password: 'tretretre' }
11
+
12
+ # Select database
13
+ r = ActiveOrient::OrientDB.new database: 'NewTest'
14
+ r.delete_database database: 'NewTest'
15
+ r = ActiveOrient::OrientDB.new database: 'NewTest'
16
+
17
+ print "\n"+"*"*20+"DATABASE"+"*"*20+"\n"
18
+
19
+ print "#{r.get_resource} \n" # <--- See the address of the server
20
+ print "#{r.get_databases} \n" # <--- List available databases
21
+
22
+ # r.create_database(database: "Onetwothree") # <--- Create a new database
23
+ print "#{r.database} \n" # <--- See the working database
24
+
25
+ # r.delete_database database: "Onetwothree" # <--- Delete an old database
26
+
27
+ print "\n"+"*"*20+"CLASSES"+"*"*20+"\n"
28
+
29
+ ap r.get_classes, :indent => -2 # <--- See available classes
30
+ print "#{r.get_classes 'name'} \n" # <--- See the names of the available classes
31
+
32
+ print "#{r.class_hierarchy} \n" # <--- See hierarchy of the classes
33
+ print "#{r.class_hierarchy base_class: 'V'} \n" # <--- See hierarchy under V (Vectors classes)
34
+ print "#{r.class_hierarchy base_class: 'E'} \n" # <--- See hierarchy under E (Edges classes)
35
+
36
+ print "#{r.database_classes} \n" # See classes without including System classes
37
+ print "#{r.database_classes include_system_classes: true} \n " # See classes including System classes
38
+ print "#{r.inspect_classes} \n" # Same as r.database_classes
39
+
40
+
41
+ doc1 = r.create_class "DocumentTest" # Create Document/Vertex/Edge class
42
+ doc2 = r.create_class "DocumentArriveTest"
43
+ ver1 = r.create_vertex_class "VertexTest"
44
+ ver2 = r.create_vertex_class "Vertex_ArriveTest"
45
+ edg1 = r.create_edge_class "EdgeTest"
46
+ ver1 = r.open_class "VertexTest" # Same as create_class
47
+
48
+ print "\n"+"*"*20+"RECORDS"+"*"*20+"\n"
49
+
50
+ a = doc1.create name: "Doc1"
51
+ a2 = doc1.create name: "Doc12"
52
+ b = doc2.create name: "Doc2"
53
+ b2 = doc2.create name: "Doc22"
54
+ aver = ver1.create vname: "Ver1"
55
+ aver2 = ver1.create vname: "Ver12"
56
+ bver = ver2.create vname: "Ver2"
57
+ bver2 = ver2.create vname: "Ver22"
58
+
59
+ edg1.create_edge attributes: {famname: "edg1"}, from: aver, to: [bver, bver2], unique: true
60
+ nex = edg1.create_edge attributes: {familyname: "edg2"}, from: aver, to: [bver, bver2], unique: true # <--- We don't overwrite since we select a unique
61
+ nex1 = edg1.create_edge attributes: {familyname: "edg3"}, from: aver, to: [bver, bver2]
62
+ nex2 = edg1.create_edge attributes: {familyname: "edg4"}, from: aver, to: [bver, bver2]
63
+
64
+ print "#{nex1}"
65
+ print "\n\n BVER = #{bver.rid} \n" # Check the RID of the vertex
66
+ r.delete_edge nex1, nex2 # Used to delete edges
67
+ r.delete_class doc2 # Used to delete a class
68
+ doc2 = r.create_class "Document_Arrive_Test"
69
+
70
+ print "\n"+"*"*20+"PROPERTY"+"*"*20+"\n"
71
+
72
+ r.create_property doc2, :name, type: :string, index: :string #add one property
73
+ doc2.create_property :familyname, type: :string, index: :string #the same but starting directly from the class
74
+ r.create_properties doc2, {age: {type: :integer}, address: {type: :string}} #add more properties
75
+ doc2.create_properties({feetsize: {type: :integer}, country: {type: :string}})
76
+ b = doc2.create name: "Lucas", age: 91 #add more properties directly from the class
77
+
78
+ print "\n"+"*"*20+"\n"
79
+ r.delete_property doc2, "age" #delete one property
80
+ doc2.delete_property "country" #delete one property directly from the class
81
+ print "\n"+"*"*20+"\n"
82
+
83
+ ap r.get_class_properties doc2 #get the properties of a class
84
+ ap doc2.get_class_properties #get the properties of a class directly from the class
85
+
86
+ print "\n"+"*"*20+"\n"
87
+
88
+ r.print_class_properties doc2 #get the properties of a class in nice way
89
+ doc2.print_class_properties #get the properties of a class in nice way directly from the class
90
+
91
+ gg = r.create_document doc2, attributes: {name: "Test"}
92
+ hh = doc2.create_document attributes: {name: "Code"}
93
+
94
+ r.delete_document gg, hh # delete a document from database
95
+ doc2.delete_document hh # delete a document from a class
96
+
97
+ r.create_index doc2, name: "name" #Create index
@@ -0,0 +1,59 @@
1
+ ### OUTDATED ####
2
+ ### Please do not use anymore.
3
+ ### Insteed take a look to the Rspec-files in /spec/lib
4
+
5
+
6
+ require 'awesome_print'
7
+ require_relative "../lib/active-orient.rb"
8
+
9
+ # Start server
10
+ ActiveOrient::OrientDB.default_server= { user: 'root', password: 'tretretre' }
11
+
12
+ # Select database
13
+ r = ActiveOrient::OrientDB.new database: 'NewTest'
14
+
15
+ #r.delete_class "Document_Test"
16
+ doc1 = r.create_class "DocumentTest" # Create Document/Vertex/Edge class
17
+ doc2 = r.create_class "DocumentArrive_Test"
18
+ ver1 = r.create_vertex_class "VertexTest"
19
+ ver2 = r.create_vertex_class "VertexArriveTest"
20
+ edg1 = r.create_edge_class "EdgeTest"
21
+ ver1 = r.open_class "VertexTest" # Same as create_class
22
+
23
+ par = r.get_documents from: "DocumentTest", where: {name: "Doc1"} # Get documents
24
+ par = doc1.get_documents where: {name: "Doc1"} # Same as above
25
+ print "0 "
26
+ ap par, :indent => -2
27
+
28
+ num = r.count_documents from: "DocumentTest", where: {name: "Doc1"}
29
+ num2 = doc1.count where: {name: "Doc1"}
30
+ print "\n1 COUNT: #{num2} \n\n"
31
+
32
+ r.create_or_update_document doc1, set: {familyname: "John"}, where: {name: "Doc1"}
33
+ r.update_or_create_documents doc1, where: {name: "Doc1"}, set: {age: 91}
34
+ doc1.update_or_create_documents where: {name: "Doc1"}, set: {age: 91}
35
+ doc1.update_or_create_documents where: {name: "Doc2"}, set: {age: 91}
36
+ par = doc1.get_documents where: {name: "Doc1"}
37
+ #ap par, :indent => -2
38
+
39
+ print "2 #{par[0].attributes} \n\n" # Access attributes
40
+ print "3 #{par[0].metadata} \n\n" # Access metadata
41
+
42
+ r.delete_documents doc1, where: {name: "Doc2"}
43
+ doc1.delete_documents where: {name: "Doc2"}
44
+
45
+ a = r.get_document "1:0" # Get by RID
46
+
47
+ r.patch_document "1:0" do {name: "is a test"} end
48
+
49
+ r.update_documents doc1, set: {age: 191}, where: {name: "Doc1"} # Update a document
50
+ doc1.update_documents set: {age: 191}, where: {name: "Doc1"}
51
+
52
+ a = r.execute "Document_Test" do # To execute commands
53
+ [{type: "cmd", language: 'sql', command: "SELECT * FROM DocumentTest WHERE name = 'Doc1'"}]
54
+ end
55
+ print "\n4 #{a} \n \n"
56
+
57
+ a = r.classname doc1
58
+ a = doc1.classname
59
+ print "5 #{a} \n \n"
@@ -0,0 +1,55 @@
1
+ ### OUTDATED ####
2
+ ### Please do not use anymore.
3
+ ### Insteed take a look to the Rspec-files in /spec/lib
4
+
5
+
6
+
7
+
8
+ require 'awesome_print'
9
+ require_relative "../lib/active-orient.rb"
10
+
11
+ # Start server
12
+ ActiveOrient::OrientDB.default_server= { user: 'root', password: 'tretretre' }
13
+
14
+ # Select database
15
+ r = ActiveOrient::OrientDB.new database: 'NewTest'
16
+
17
+ doc1 = r.create_class "DocumentTest"
18
+ ver1 = r.create_vertex_class "VertexTest"
19
+ a = doc1.create name: "Doc1"
20
+ v = ver1.create name: "Ver"
21
+
22
+ out = doc1.orientdb_class name: "Doc2345" # Used to instantiate an ActiveOrient Model
23
+ print "1 #{out} \n"
24
+
25
+ out = ver1.autoload_object "16:35" # Used to get a record by rid
26
+ print "2 #{out} \n"
27
+
28
+ print "3 #{ver1.superClass} \n" # Check superClass of the class
29
+
30
+ print "4 #{v.class} \n"
31
+
32
+ print "5 #{doc1} \n"
33
+
34
+ print "6 #{a} \n"
35
+
36
+ print "7 #{v} \n"
37
+
38
+ a = v.classname # Class of v
39
+ print "8 #{a} \n"
40
+
41
+ a = v.rid
42
+ print "9 #{a} \n" # RID of v
43
+
44
+ a = ver1.count where: {name: "Ver"}
45
+ print "10 #{a} \n"
46
+
47
+ print "11 #{v.to_human} \n" # Human version
48
+
49
+ print "12 #{v.content_attributes} \n" # Return attributes
50
+
51
+ print "13 #{v.default_attributes} \n" # Return created and updated
52
+
53
+ print "14 #{v.set_attribute_defaults} \n" # Set up
54
+
55
+ print "15 #{v.metadata} \n" # Set up
@@ -0,0 +1,33 @@
1
+
2
+ ### OUTDATED ####
3
+ ### Please do not use anymore.
4
+ ### Insteed take a look to the Rspec-files in /spec/lib
5
+
6
+ require_relative "../lib/active-orient.rb"
7
+
8
+ ActiveOrient::OrientDB.default_server = { user: 'root', password: 'tretretre' }
9
+ r = ActiveOrient::OrientDB.new database: 'NewTest'
10
+
11
+ doc1 = r.open_class "DocumentTest" # Create Document/Vertex/Edge class
12
+ doc2 = r.open_class "DocumentArrive_Test"
13
+ doc1.create_property :familyname, type: :string
14
+ doc1.create_property :family, type: :linkset, other_class: "DocumentTest"
15
+
16
+ a1 = doc1.create name: "DocA", value: 34
17
+ a2 = doc1.create name: "DocB", value: 34
18
+ a3 = doc1.create name: "DocC", value: 34
19
+ a4 = doc1.create name: "DocD", value: 30
20
+ doc1.create name: "DocE", value: 30
21
+ doc1.create name: "DocF", value: 30
22
+
23
+ print "#{a1.ciao} \n"
24
+ a1.family = [a2, a3]
25
+ print "#{a1["family"].name} \n"
26
+ print "---> #{a1.family.class}\n"
27
+ a1["family"] << a4
28
+ print "#{a1.family.name} \n"
29
+
30
+
31
+ # ActiveOrient::OrientDB.methods.each do |m|
32
+ # print "#{m} \n"
33
+ # end
@@ -0,0 +1,162 @@
1
+ The Time-Graph Example is outsourced and lives as a seperate gem.
2
+
3
+ https://github.com/topofocus/orientdb_time_graph
4
+
5
+ from the readme:
6
+
7
+ # Time Graph
8
+
9
+ Simple Time Graph using ActiveOrient/OrientDB.
10
+
11
+ *Prerequisites* :
12
+ * Install and setup OrientDB
13
+ * Run "Bundle install" and "Bundle update"
14
+ * customize config/connect.yml
15
+
16
+ **or** start a new project and include the gem in the usual manner.
17
+
18
+ To play around, start the console by
19
+ ```
20
+ cd bin
21
+ ./active-orient-console t # test-modus
22
+ ```
23
+ The Database is automatically initialized and the following hierarchy is build:
24
+
25
+ ```ruby
26
+ - E # ruby-class
27
+ - - month_of TG::MONTH_OF
28
+ - - day_of TG::DAY_OF
29
+ - - time_of TG::TIME_OF
30
+ - - grid_of TG::GRID_OF
31
+ - V
32
+ - - time_base TG::TimeBase
33
+ - - - jahr TG::Jahr
34
+ - - - monat TG::Monat
35
+ - - - stunde TG::Stunde
36
+ - - - tag TG::Tag
37
+ ```
38
+ This Graph is realized
39
+
40
+ ```ruby
41
+ Jahr -- [Month_of] -- Monat --[DAY_OF]-- Tag --[TIME_OF]-- Stunde
42
+ ```
43
+ and populated by calling
44
+
45
+ ```ruby
46
+ TG::TimeGraph.populate( a single year or a range ) # default: 1900 .. 2050
47
+ ```
48
+ If only one year is specified, a Monat--Tag--Stunde-Grid is build, otherwise a Jahr--Monat--Tag one.
49
+ You can check the Status by calling
50
+
51
+ ```ruby
52
+ TG::TimeGraph.populate 2000 -2003
53
+ TG.info
54
+ -------------- TIME GRAPH ------------------
55
+ Allocated Years :
56
+ 2000; 2001; 2002; 2003
57
+
58
+ ```
59
+ In the Model-directory, customized methods simplify the usage of the graph.
60
+
61
+ Some Examples:
62
+ Assuming, you build a standard day-based grid
63
+
64
+ ```ruby
65
+
66
+ include TG # we can omit the TG prefix
67
+
68
+ Jahr[2000] # --> returns a single object
69
+ => #<TG::Jahr:0x00000004ced160 @metadata={"type"=>"d", "class"=>"jahr", "version"=>13, "fieldTypes"=>"out_month_of=g", "cluster"=>34, "record"=>101}, @d=nil, @attributes={"value"=>2000, "out_month_of"=>["#53:1209", "#54:1209", "#55:1209", "#56:1209", "#53:1210", "#54:1210", "#55:1210", "#56:1210", "#53:1211", "#54:1211", "#55:1211", "#56:1211"], "created_at"=>Fri, 09 Sep 2016 10:14:30 +0200}>
70
+
71
+
72
+ Jahr[2000 .. 2005].value # returns an array
73
+ => [2003, 2000, 2004, 2001, 2005, 2002]
74
+
75
+ Jahr[2000 .. 2005].monat(5..7).value # returns the result of the month-attribute (or method)
76
+ => [[5, 6, 7], [5, 6, 7], [5, 6, 7], [5, 6, 7], [5, 6, 7], [5, 6, 7]]
77
+
78
+ Jahr[2000].monat(4, 7).tag(4, 15,24 ).datum # adresses methods or attributes of the specified day's
79
+ => [["4.4.2000", "15.4.2000", "24.4.2000"], ["4.7.2000", "15.7.2000", "24.7.2000"]]
80
+ ## unfortunatly »Jahr[2000 .. 2015].monat( 3,5 ).tag( 4 ..6 ).datum « does not fits now
81
+ ## instead »Jahr[2000..2015].map{|y| y.monat( 3,5 ).tag( 4 ..6 ).datum } « does the job.
82
+ ```
83
+
84
+ To filter datasets in that way, anything represented is queried from the database. In contrast to
85
+ a pure ruby implementation, this works for small and large grid's.
86
+
87
+ Obviously, you can do neat ruby-array playings, which are limited to the usual sizes.
88
+ For example. As »TAG[31]« returns an array, the elements can be treated with ruby flavour:
89
+
90
+ ```ruby
91
+
92
+ Tag[31][2..4].datum # display three months with 31 days
93
+ => ["31.10.1901", "31.1.1902", "31.5.1902"]
94
+
95
+ ```
96
+ First all Tag-Objects with the Value 31 are queried. This gives »Jan, Mar, May ..«. Then one can inspect the array, in this case by slicing a range.
97
+
98
+ Not surprisingly, the first occurence of the day is not the earliest date in the grid. Its just the first one,
99
+ fetched from the database.
100
+
101
+ ``` ruby
102
+ Tag[1][1].datum
103
+ => "1.5.1900" # Tag[1][0] correctly fetches "1.1.1900"
104
+ Tag[1].last.datum
105
+ => "1.11.2050"
106
+ ## however,
107
+ Jahr[2050].monat(12).tag(1) # exists:
108
+ => [["1.12.2050"]]
109
+ ```
110
+
111
+ ## Horizontal Connections
112
+
113
+ Besides the hierarchically TimeGraph »Jahr <-->Monat <--> Tag <--> Stunde« the Vertices are connected
114
+ horizontally via »grid_to«-Edges. This enables an easy access to the neighbours.
115
+
116
+ On the TG::TimeBase-Level a method »environment« is implemented, that gathers the adjacent vertices
117
+ via traverse.
118
+
119
+ ``` ruby
120
+ start = TG::Jahr[2000].monat(4).tag(7).first.first
121
+ start.environment(3).datum
122
+ => ["4.4.2000", "5.4.2000", "6.4.2000", "7.4.2000", "8.4.2000", "9.4.2000", "10.4.2000"]
123
+
124
+ 2.3.1 :003 > start.environment(3,4).datum
125
+ => ["4.4.2000", "5.4.2000", "6.4.2000", "7.4.2000", "8.4.2000", "9.4.2000", "10.4.2000", "11.4.2000"]
126
+
127
+ start.environment(0,3).datum
128
+ => ["7.4.2000", "8.4.2000", "9.4.2000", "10.4.2000"]
129
+ ```
130
+
131
+
132
+
133
+ ## Diary
134
+
135
+ lets create a simple diary
136
+
137
+ ```ruby
138
+ include TG
139
+ TimeiGraph.populate 2016
140
+ ORD.create_vertex_class :termin
141
+ => Termin
142
+ ORD.create_edge_class :date_of
143
+ => DATE_OF
144
+ DATE_OF.uniq_index # put contrains to the edge-class, accept only one entry per item
145
+
146
+ DATE_OF.create from: Monat[8].tag(9).stunde(12),
147
+ to: Termin.create( short: 'Mittagessen',
148
+ long: 'Schweinshaxen essen mit Lieschen Müller',
149
+ location: 'Hofbauhaus, München' )
150
+ => #<DATE_OF:0x0000000334e038 (..) @attributes={"out"=>"#21:57", "in"=>"#41:0", (..)}>
151
+ # create some regular events
152
+ # attach breakfirst at 9 o clock from the 10th to the 21st Day in the current month
153
+ DATE_OF.create from: Monat[8].tag(10 .. 21).stunde( 9 ), to: Termin.create( :short => 'Frühstück' )
154
+ => #<DATE_OF:0x000000028d5688 @metadata={(..) "cluster"=>45, "record"=>8},
155
+ @attributes={"out"=>"#22:188", "in"=>"#42:0",(..)}>
156
+
157
+ t = Termin.where short: 'Frühstück'
158
+ t.in_date_of.out.first.datum
159
+ => ["10.8.2016 9:00", "11.8.2016 9:00", "12.8.2016 9:00", "13.8.2016 9:00", "14.8.2016 9:00", "15.8.2016 9:00", "16.8.2016 9:00", "17.8.2016 9:00", "18.8.2016 9:00", "19.8.2016 9:00", "20.8.2016 9:00", "21.8.2016 9:00"]
160
+
161
+ ```
162
+
@@ -1,11 +1,77 @@
1
- require "support.rb"
2
- require "base.rb"
3
- require "base_properties.rb"
4
1
 
5
- require "model.rb"
6
- require "orient.rb"
7
- require "rest.rb"
2
+ module OrientDB
3
+ UsingJava = RUBY_PLATFORM == 'java' ? true : false
4
+ unless UsingJava
5
+ DocumentDatabase = nil
6
+ DocumentDatabasePool = nil
7
+ DocumentDatabasePooled = nil
8
+ GraphDatabase = nil
9
+ OTraverse = nil
10
+ Document = nil
11
+ IndexType = nil
12
+ OClassImpl = nil
13
+ PropertyImpl = nil
14
+ Schema = nil
15
+ SchemaProxy = nil
16
+ SchemaType = nil
17
+ SQLCommand = nil
18
+ SQLSynchQuery = nil
19
+ User = nil
20
+ RemoteStorage = nil
21
+ ServerAdmin = nil
22
+ # defined in other.rb
23
+ #JavaDate
24
+ #RecordList = nil
25
+ # RidBag = nil
26
+ # RecordSet = nil
27
+ end
28
+ end # module OrientDB
29
+ require 'active_model'
30
+ #require 'active_model/serializers'
31
+ require_relative "support/orientquery.rb"
32
+ require_relative "support/conversions.rb"
33
+ #require_relative "support/logging.rb"
34
+ require_relative "base.rb"
35
+ require_relative "base_properties.rb"
36
+ require_relative "support/orient.rb"
37
+ #require_relative "query.rb"
38
+ if OrientDB::UsingJava
39
+ require_relative 'java-api.rb'
40
+ end
41
+ require_relative "orientdb_private.rb" # manage private functions
42
+ require_relative "database_utils.rb" #common methods without rest.specific content
43
+ require_relative "class_utils.rb" #common methods without rest.specific content
44
+ require_relative "other.rb"
45
+ require_relative "rest/rest.rb"
46
+ require_relative "model/model.rb"
47
+ require 'active_support/core_ext/string' # provides blank?, present?, presence etc
48
+ require_relative 'init.rb'
49
+ # create Base Classes
50
+
51
+ require_relative "model/vertex.rb"
52
+ require_relative "model/edge.rb"
53
+
54
+ require_relative "railtie" if defined?(Rails)
55
+
56
+ module ActiveOrient
57
+ mattr_accessor :database
58
+ mattr_accessor :database_classes
59
+ mattr_accessor :default_server
60
+
61
+ ## displays all allocated classes
62
+ ##
63
+ ## usage:
64
+ ## puts ActiveOrient::show_classes
65
+ #
66
+ #
67
+ def self.show_classes
68
+
69
+ '-'* 45+"\n"+
70
+ "Database Class -> ActiveOrient ClassName\n"+
71
+ '-'* 45+"\n"+
72
+ ActiveOrient.database_classes.map{|x,y| "#{"%15s"% x} -> #{y.to_s}" }.join("\n") + "\n"+
73
+ '-'* 45 + "\n"
74
+ end
75
+
76
+ end
8
77
 
9
- logger = Logger.new '/dev/stdout'
10
- ActiveOrient::Model.logger = logger
11
- ActiveOrient::OrientDB.logger = logger