active-orient 0.4 → 0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile +8 -3
  4. data/Guardfile +12 -4
  5. data/README.md +221 -201
  6. data/VERSION +1 -1
  7. data/active-orient.gemspec +3 -2
  8. data/bin/active-orient-console +35 -0
  9. data/config/boot.rb +84 -16
  10. data/config/config.yml +10 -0
  11. data/config/connect.yml +6 -2
  12. data/create_project +19 -0
  13. data/examples/books.rb +86 -39
  14. data/examples/createTime.rb +91 -0
  15. data/examples/streets.rb +85 -84
  16. data/examples/test_commands.rb +92 -0
  17. data/examples/test_commands_2.rb +54 -0
  18. data/examples/test_commands_3.rb +48 -0
  19. data/examples/test_commands_4.rb +28 -0
  20. data/examples/time_graph/Gemfile +21 -0
  21. data/examples/time_graph/Guardfile +26 -0
  22. data/examples/time_graph/README.md +129 -0
  23. data/examples/time_graph/bin/active-orient-console +35 -0
  24. data/examples/time_graph/config/boot.rb +119 -0
  25. data/examples/time_graph/config/config.yml +8 -0
  26. data/examples/time_graph/config/connect.yml +17 -0
  27. data/examples/time_graph/config/init_db.rb +59 -0
  28. data/examples/time_graph/createTime.rb +51 -0
  29. data/examples/time_graph/lib/createTime.rb +82 -0
  30. data/examples/time_graph/model/day_of.rb +3 -0
  31. data/examples/time_graph/model/e.rb +6 -0
  32. data/examples/time_graph/model/edge.rb +53 -0
  33. data/examples/time_graph/model/monat.rb +19 -0
  34. data/examples/time_graph/model/stunde.rb +16 -0
  35. data/examples/time_graph/model/tag.rb +29 -0
  36. data/examples/time_graph/model/time_base.rb +6 -0
  37. data/examples/time_graph/model/time_of.rb +4 -0
  38. data/examples/time_graph/model/v.rb +3 -0
  39. data/examples/time_graph/model/vertex.rb +32 -0
  40. data/examples/time_graph/spec/lib/create_time_spec.rb +50 -0
  41. data/examples/time_graph/spec/rest_helper.rb +37 -0
  42. data/examples/time_graph/spec/spec_helper.rb +46 -0
  43. data/lib/active-orient.rb +56 -6
  44. data/lib/base.rb +149 -147
  45. data/lib/base_properties.rb +40 -41
  46. data/lib/class_utils.rb +301 -0
  47. data/lib/database_utils.rb +97 -0
  48. data/lib/init.rb +35 -0
  49. data/lib/java-api.rb +437 -0
  50. data/lib/jdbc.rb +211 -0
  51. data/lib/model/edge.rb +53 -0
  52. data/lib/model/model.rb +77 -0
  53. data/lib/model/the_class.rb +480 -0
  54. data/lib/model/the_record.rb +310 -0
  55. data/lib/model/vertex.rb +32 -0
  56. data/lib/orient.rb +113 -50
  57. data/lib/orientdb_private.rb +48 -0
  58. data/lib/other.rb +280 -0
  59. data/lib/query.rb +71 -73
  60. data/lib/rest/change.rb +124 -0
  61. data/lib/rest/create.rb +474 -0
  62. data/lib/rest/delete.rb +133 -0
  63. data/lib/rest/operations.rb +150 -0
  64. data/lib/rest/read.rb +150 -0
  65. data/lib/rest/rest.rb +111 -0
  66. data/lib/rest_disabled.rb +24 -0
  67. data/lib/support.rb +387 -296
  68. data/old_lib_functions/two_general_class.rb +139 -0
  69. data/usecase.md +49 -36
  70. data/usecase_oo.md +59 -0
  71. metadata +73 -9
  72. data/lib/model.rb +0 -461
  73. data/lib/rest.rb +0 -1036
  74. data/test.rb +0 -4
@@ -1,7 +1,6 @@
1
1
  =begin
2
2
  Streets Example
3
3
 
4
-
5
4
  We load german cities from wikipedia and parse the document for cities and countries(states).
6
5
  Further we load a collection of popular streetnames from a web-side called »strassen-in-deutschland«
7
6
 
@@ -15,115 +14,117 @@ At last we print the connected cities.
15
14
  module DataImport
16
15
  def read_german_street_names
17
16
  doc = Nokogiri::HTML(open('http://www.strassen-in-deutschland.de/die-haeufigsten-strassennamen-in-deutschland.html'))
18
- strassen = doc.css('#strassen-in-deutschland_main a' ) # identified via css-inspector in browser
17
+ strassen = doc.css("td[data-header='Straßenname: '] a") # identified via css-inspector in browser
19
18
  # search for the css and include only links, then display the text-part
20
19
  strassen.children.map( &:to_s )[3..-1] # omit the first three (strassen in deutschland, straßenverzeichnis, straßen)
21
20
  end
22
21
 
23
- def read_german_cities_from_wikipedia
24
- # we extract <li> -elements and use the text until "("
22
+ def read_german_cities_from_wikipedia
23
+ # we extract <li> -elements and use the text until "("
25
24
  #doc.xpath("//li").at(80)
26
- # => #<Nokogiri::XML::Element:0x1ba551c name="li" children=[#<Nokogiri::XML::Element:0x1ba533c name="a" attributes=[#<Nokogiri::XML::Attr:0x1ba52d8 name="href" value="/wiki/Angerm%C3%BCnde">, #<Nokogiri::XML::Attr:0x1ba52c4 name="title" value="Angermünde">] children=[#<Nokogiri::XML::Text:0x1ba4c84 "Angermünde">]>, #<Nokogiri::XML::Text:0x1ba4ae0 " (Brandenburg)">]>
25
+ # => #<Nokogiri::XML::Element:0x1ba551c name="li" children=[#<Nokogiri::XML::Element:0x1ba533c name="a" attributes=[#<Nokogiri::XML::Attr:0x1ba52d8 name="href" value="/wiki/Angerm%C3%BCnde">, #<Nokogiri::XML::Attr:0x1ba52c4 name="title" value="Angermünde">] children=[#<Nokogiri::XML::Text:0x1ba4c84 "Angermünde">]>, #<Nokogiri::XML::Text:0x1ba4ae0 " (Brandenburg)">]>
27
26
 
28
27
  doc = Nokogiri::HTML(open('https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Germany'))
28
+ print doc
29
29
  doc.xpath("//li").map{|x| x.text[0 .. x.text.index('(')-2] if x.text.index('(').present? }.compact
30
30
  end
31
31
 
32
- def read_german_cities_and_states_fom_wikipedia
32
+ def read_german_cities_and_states_from_wikipedia
33
33
  doc =
34
- Nokogiri::HTML(open('https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Germany'))
35
- doc.xpath("//li").map do |x|
36
- if x.text.index('(').present?
37
- [ x.text[0 .. x.text.index('(')-2] , x.text[ x.text.index('(')+1 .. x.text.index(')')-1] ]
34
+ Nokogiri::HTML(open('https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Germany'))
35
+ doc.xpath("//li").map do |x|
36
+ if x.text.index('(').present?
37
+ [ x.text[0 .. x.text.index('(')-2] , x.text[ x.text.index('(')+1 .. x.text.index(')')-1] ]
38
38
  end
39
39
  end.compact
40
- end
40
+ end
41
41
 
42
42
  end # module
43
43
 
44
- class StreetExample
45
-
46
- include DataImport
47
- def initialize db, rebuild: true
48
- if rebuild
49
- ActiveOrient::OrientDB.logger.progname = "StreetsExample#Initialize"
50
- db.delete_class :state
51
- db.delete_class :city
52
- db.delete_class :street
53
- db.delete_class :connects
54
- db.create_vertex_class :state
55
- db.create_vertex_class :city
56
- db.create_vertex_class :street
57
- db.create_edge_class :connects
58
- ActiveOrient::Model::State.create_property( :name, type: :string, index: :unique )
59
- ActiveOrient::Model::City.create_properties( { name: { type: :string },
60
- state: { type: :link, :linked_class => 'State' } }
61
- ) do
62
- { citi_idx: :unique }
63
- end
64
- ActiveOrient::Model::Street.create_property :name , type: :string, index: :notunique
65
- ActiveOrient::Model::Connects.create_property :distance, type: :integer, index: :notunique
66
- ActiveOrient::OrientDB.logger.info { "Vertex- and Edge-Classes rebuilded" }
44
+ class StreetExample
45
+
46
+ include DataImport
47
+ def initialize db, rebuild: true
48
+ if rebuild
49
+ db.delete_class :State
50
+ db.delete_class :City
51
+ db.delete_class :Street
52
+ db.delete_class :CONNECTS
53
+ db.create_vertex_class :State
54
+ db.create_vertex_class :City
55
+ db.create_vertex_class :Street
56
+ db.create_edge_class :CONNECTS
57
+ ActiveOrient::Model::State.create_property( :name, type: :string, index: :unique )
58
+ ActiveOrient::Model::City.create_properties( { name: { type: :string },
59
+ state: { type: :link, :linked_class => 'State' } }
60
+ ) do
61
+ { citi_idx: :unique }
67
62
  end
63
+ ActiveOrient::Model::Street.create_property :name , type: :string, index: :notunique
64
+ ActiveOrient::Model::CONNECTS.create_property :distance, type: :integer, index: :notunique
65
+ ActiveOrient::OrientDB.logger.progname = "StreetsExample#Initialize"
66
+ ActiveOrient::OrientDB.logger.info { "Vertex- and Edge-Classes rebuilded" }
68
67
  end
68
+ end
69
69
 
70
70
 
71
- def read_from_web
72
- ActiveOrient::OrientDB.logger.progname = "StreetsExample#ReadFromWeb"
73
- read_german_cities_and_states_fom_wikipedia.each do |city,state|
74
- state = State.update_or_create( where: { name: state }).first
75
- City.create name: city, state: state.link
76
- end
77
- ActiveOrient::OrientDB.logger.info { "#{City.count} Cities imported from Wikipedia " }
78
-
79
- cities_rids = City.all.map &:link
80
- read_german_street_names.each_with_index do |street, i|
81
- street_record = Street.create name: street
82
- count = i
83
- cities = Array.new
84
- while count < cities_rids.size && cities.size < 5 do
85
- cities << cities_rids[count]
86
- count = count + i
87
- end
88
- C.create_edge :from => street_record, :to => cities
71
+ def read_from_web
72
+ read_german_cities_and_states_from_wikipedia.each do |city,state|
73
+ state = State.update_or_create( where: { name: state }).first
74
+ City.create name: city, state: "##{state.rid}"
75
+ end
76
+ ActiveOrient::OrientDB.logger.progname = "StreetsExample#ReadFromWeb"
77
+ ActiveOrient::OrientDB.logger.info { "#{City.count} Cities imported from Wikipedia " }
78
+
79
+ cities_rids = City.all.map &:rid
80
+ read_german_street_names.each_with_index do |street, i|
81
+ street_record = Street.create name: street
82
+ count = i
83
+ cities = Array.new
84
+ while count < cities_rids.size && cities.size < 5 do
85
+ cities << cities_rids[count]
86
+ count = count + i
89
87
  end
90
- ActiveOrient::OrientDB.logger.info { "#{C.count} Edges between Streets and Cities created " }
88
+ C.create_edge :from => street_record, :to => cities
91
89
  end
92
-
93
- def display_streets_per_state
94
- State.all.each do |state|
95
- streets= Street.all.map do |street |
96
- if street.connects.in.detect{|x| x.state == state }
97
- street.name + " verbindet " + street.connects.in.map( &:name ).join('; ')
98
- end
99
- end.compact
100
- unless streets.empty?
101
- puts "..................................."
102
- puts state.name
103
- puts "..................................."
104
- puts streets.join("\n")
105
- end
90
+ ActiveOrient::OrientDB.logger.progname = "StreetsExample#ReadFromWeb"
91
+ ActiveOrient::OrientDB.logger.info { "#{C.count} Edges between Streets and Cities created " }
92
+ end
93
+
94
+ def display_streets_per_state
95
+ State.all.each do |state|
96
+ streets= Street.all.map do |street |
97
+ if street.connects.in.detect{|x| x.state == state }
98
+ street.name + " connects " + street.connects.in.map( &:name ).join('; ')
99
+ end
100
+ end.compact
101
+ unless streets.empty?
102
+ puts "..................................."
103
+ puts state.name
104
+ puts "..................................."
105
+ puts streets.join("\n")
106
106
  end
107
107
  end
108
- end
108
+ end
109
+ end
109
110
 
110
111
  if $0 == __FILE__
111
112
 
112
- require '../config/boot'
113
- require 'open-uri'
114
- require 'nokogiri'
115
-
116
- ActiveOrient::OrientDB.default_server= { user: 'hctw', password: 'hc' }
117
- r = ActiveOrient::OrientDB.new database: 'StreetTest'
118
- ActiveOrient::OrientDB.logger.level = Logger::INFO
119
- s= StreetExample.new r, rebuild: true
120
-
121
- City = r.open_class :city
122
- State = r.open_class :state
123
- Street = r.open_class :street
124
- C = r.open_class :connects
125
-
126
- s.read_from_web if City.count.zero?
127
- s.display_streets_per_state
113
+ require '../config/boot'
114
+ require 'open-uri'
115
+ require 'nokogiri'
116
+
117
+ ActiveOrient::OrientDB.default_server= { user: 'root', password: 'tretretre' }
118
+ r = ActiveOrient::OrientDB.new database: 'StreetTest'
119
+ ActiveOrient::OrientDB.logger.level = Logger::INFO
120
+ s= StreetExample.new r, rebuild: true
121
+
122
+ City = r.open_class :City
123
+ State = r.open_class :State
124
+ Street = r.open_class :Street
125
+ C = r.open_class :CONNECTS
126
+
127
+ s.read_from_web if City.count.zero?
128
+ s.display_streets_per_state
128
129
 
129
130
  end
@@ -0,0 +1,92 @@
1
+ require 'awesome_print'
2
+ require_relative "../lib/active-orient.rb"
3
+
4
+ # Start server
5
+ ActiveOrient::OrientDB.default_server = { user: 'root', password: 'tretretre' }
6
+
7
+ # Select database
8
+ r = ActiveOrient::OrientDB.new database: 'NewTest'
9
+ r.delete_database database: 'NewTest'
10
+ r = ActiveOrient::OrientDB.new database: 'NewTest'
11
+
12
+ print "\n"+"*"*20+"DATABASE"+"*"*20+"\n"
13
+
14
+ print "#{r.get_resource} \n" # <--- See the address of the server
15
+ print "#{r.get_databases} \n" # <--- List available databases
16
+
17
+ # r.create_database(database: "Onetwothree") # <--- Create a new database
18
+ print "#{r.database} \n" # <--- See the working database
19
+
20
+ # r.delete_database database: "Onetwothree" # <--- Delete an old database
21
+
22
+ print "\n"+"*"*20+"CLASSES"+"*"*20+"\n"
23
+
24
+ ap r.get_classes, :indent => -2 # <--- See available classes
25
+ print "#{r.get_classes 'name'} \n" # <--- See the names of the available classes
26
+
27
+ print "#{r.class_hierarchy} \n" # <--- See hierarchy of the classes
28
+ print "#{r.class_hierarchy base_class: 'V'} \n" # <--- See hierarchy under V (Vectors classes)
29
+ print "#{r.class_hierarchy base_class: 'E'} \n" # <--- See hierarchy under E (Edges classes)
30
+
31
+ print "#{r.database_classes} \n" # See classes without including System classes
32
+ print "#{r.database_classes include_system_classes: true} \n " # See classes including System classes
33
+ print "#{r.inspect_classes} \n" # Same as r.database_classes
34
+
35
+
36
+ doc1 = r.create_class "DocumentTest" # Create Document/Vertex/Edge class
37
+ doc2 = r.create_class "DocumentArriveTest"
38
+ ver1 = r.create_vertex_class "VertexTest"
39
+ ver2 = r.create_vertex_class "Vertex_ArriveTest"
40
+ edg1 = r.create_edge_class "EdgeTest"
41
+ ver1 = r.open_class "VertexTest" # Same as create_class
42
+
43
+ print "\n"+"*"*20+"RECORDS"+"*"*20+"\n"
44
+
45
+ a = doc1.create name: "Doc1"
46
+ a2 = doc1.create name: "Doc12"
47
+ b = doc2.create name: "Doc2"
48
+ b2 = doc2.create name: "Doc22"
49
+ aver = ver1.create vname: "Ver1"
50
+ aver2 = ver1.create vname: "Ver12"
51
+ bver = ver2.create vname: "Ver2"
52
+ bver2 = ver2.create vname: "Ver22"
53
+
54
+ edg1.create_edge attributes: {famname: "edg1"}, from: aver, to: [bver, bver2], unique: true
55
+ nex = edg1.create_edge attributes: {familyname: "edg2"}, from: aver, to: [bver, bver2], unique: true # <--- We don't overwrite since we select a unique
56
+ nex1 = edg1.create_edge attributes: {familyname: "edg3"}, from: aver, to: [bver, bver2]
57
+ nex2 = edg1.create_edge attributes: {familyname: "edg4"}, from: aver, to: [bver, bver2]
58
+
59
+ print "#{nex1}"
60
+ print "\n\n BVER = #{bver.rid} \n" # Check the RID of the vertex
61
+ r.delete_edge nex1, nex2 # Used to delete edges
62
+ r.delete_class doc2 # Used to delete a class
63
+ doc2 = r.create_class "Document_Arrive_Test"
64
+
65
+ print "\n"+"*"*20+"PROPERTY"+"*"*20+"\n"
66
+
67
+ r.create_property doc2, :name, type: :string, index: :string #add one property
68
+ doc2.create_property :familyname, type: :string, index: :string #the same but starting directly from the class
69
+ r.create_properties doc2, {age: {type: :integer}, address: {type: :string}} #add more properties
70
+ doc2.create_properties({feetsize: {type: :integer}, country: {type: :string}})
71
+ b = doc2.create name: "Lucas", age: 91 #add more properties directly from the class
72
+
73
+ print "\n"+"*"*20+"\n"
74
+ r.delete_property doc2, "age" #delete one property
75
+ doc2.delete_property "country" #delete one property directly from the class
76
+ print "\n"+"*"*20+"\n"
77
+
78
+ ap r.get_class_properties doc2 #get the properties of a class
79
+ ap doc2.get_class_properties #get the properties of a class directly from the class
80
+
81
+ print "\n"+"*"*20+"\n"
82
+
83
+ r.print_class_properties doc2 #get the properties of a class in nice way
84
+ doc2.print_class_properties #get the properties of a class in nice way directly from the class
85
+
86
+ gg = r.create_document doc2, attributes: {name: "Test"}
87
+ hh = doc2.create_document attributes: {name: "Code"}
88
+
89
+ r.delete_document gg, hh # delete a document from database
90
+ doc2.delete_document hh # delete a document from a class
91
+
92
+ r.create_index doc2, name: "name" #Create index
@@ -0,0 +1,54 @@
1
+ require 'awesome_print'
2
+ require_relative "../lib/active-orient.rb"
3
+
4
+ # Start server
5
+ ActiveOrient::OrientDB.default_server= { user: 'root', password: 'tretretre' }
6
+
7
+ # Select database
8
+ r = ActiveOrient::OrientDB.new database: 'NewTest'
9
+
10
+ #r.delete_class "Document_Test"
11
+ doc1 = r.create_class "DocumentTest" # Create Document/Vertex/Edge class
12
+ doc2 = r.create_class "DocumentArrive_Test"
13
+ ver1 = r.create_vertex_class "VertexTest"
14
+ ver2 = r.create_vertex_class "VertexArriveTest"
15
+ edg1 = r.create_edge_class "EdgeTest"
16
+ ver1 = r.open_class "VertexTest" # Same as create_class
17
+
18
+ par = r.get_documents from: "DocumentTest", where: {name: "Doc1"} # Get documents
19
+ par = doc1.get_documents where: {name: "Doc1"} # Same as above
20
+ print "0 "
21
+ ap par, :indent => -2
22
+
23
+ num = r.count_documents from: "DocumentTest", where: {name: "Doc1"}
24
+ num2 = doc1.count where: {name: "Doc1"}
25
+ print "\n1 COUNT: #{num2} \n\n"
26
+
27
+ r.create_or_update_document doc1, set: {familyname: "John"}, where: {name: "Doc1"}
28
+ r.update_or_create_documents doc1, where: {name: "Doc1"}, set: {age: 91}
29
+ doc1.update_or_create_documents where: {name: "Doc1"}, set: {age: 91}
30
+ doc1.update_or_create_documents where: {name: "Doc2"}, set: {age: 91}
31
+ par = doc1.get_documents where: {name: "Doc1"}
32
+ #ap par, :indent => -2
33
+
34
+ print "2 #{par[0].attributes} \n\n" # Access attributes
35
+ print "3 #{par[0].metadata} \n\n" # Access metadata
36
+
37
+ r.delete_documents doc1, where: {name: "Doc2"}
38
+ doc1.delete_documents where: {name: "Doc2"}
39
+
40
+ a = r.get_document "1:0" # Get by RID
41
+
42
+ r.patch_document "1:0" do {name: "is a test"} end
43
+
44
+ r.update_documents doc1, set: {age: 191}, where: {name: "Doc1"} # Update a document
45
+ doc1.update_documents set: {age: 191}, where: {name: "Doc1"}
46
+
47
+ a = r.execute "Document_Test" do # To execute commands
48
+ [{type: "cmd", language: 'sql', command: "SELECT * FROM DocumentTest WHERE name = 'Doc1'"}]
49
+ end
50
+ print "\n4 #{a} \n \n"
51
+
52
+ a = r.classname doc1
53
+ a = doc1.classname
54
+ print "5 #{a} \n \n"
@@ -0,0 +1,48 @@
1
+ require 'awesome_print'
2
+ require_relative "../lib/active-orient.rb"
3
+
4
+ # Start server
5
+ ActiveOrient::OrientDB.default_server= { user: 'root', password: 'tretretre' }
6
+
7
+ # Select database
8
+ r = ActiveOrient::OrientDB.new database: 'NewTest'
9
+
10
+ doc1 = r.create_class "DocumentTest"
11
+ ver1 = r.create_vertex_class "VertexTest"
12
+ a = doc1.create name: "Doc1"
13
+ v = ver1.create name: "Ver"
14
+
15
+ out = doc1.orientdb_class name: "Doc2345" # Used to instantiate an ActiveOrient Model
16
+ print "1 #{out} \n"
17
+
18
+ out = ver1.autoload_object "16:35" # Used to get a record by rid
19
+ print "2 #{out} \n"
20
+
21
+ print "3 #{ver1.superClass} \n" # Check superClass of the class
22
+
23
+ print "4 #{v.class} \n"
24
+
25
+ print "5 #{doc1} \n"
26
+
27
+ print "6 #{a} \n"
28
+
29
+ print "7 #{v} \n"
30
+
31
+ a = v.classname # Class of v
32
+ print "8 #{a} \n"
33
+
34
+ a = v.rid
35
+ print "9 #{a} \n" # RID of v
36
+
37
+ a = ver1.count where: {name: "Ver"}
38
+ print "10 #{a} \n"
39
+
40
+ print "11 #{v.to_human} \n" # Human version
41
+
42
+ print "12 #{v.content_attributes} \n" # Return attributes
43
+
44
+ print "13 #{v.default_attributes} \n" # Return created and updated
45
+
46
+ print "14 #{v.set_attribute_defaults} \n" # Set up
47
+
48
+ print "15 #{v.metadata} \n" # Set up
@@ -0,0 +1,28 @@
1
+ require_relative "../lib/active-orient.rb"
2
+
3
+ ActiveOrient::OrientDB.default_server = { user: 'root', password: 'tretretre' }
4
+ r = ActiveOrient::OrientDB.new database: 'NewTest'
5
+
6
+ doc1 = r.open_class "DocumentTest" # Create Document/Vertex/Edge class
7
+ doc2 = r.open_class "DocumentArrive_Test"
8
+ doc1.create_property :familyname, type: :string
9
+ doc1.create_property :family, type: :linkset, other_class: "DocumentTest"
10
+
11
+ a1 = doc1.create name: "DocA", value: 34
12
+ a2 = doc1.create name: "DocB", value: 34
13
+ a3 = doc1.create name: "DocC", value: 34
14
+ a4 = doc1.create name: "DocD", value: 30
15
+ doc1.create name: "DocE", value: 30
16
+ doc1.create name: "DocF", value: 30
17
+
18
+ print "#{a1.ciao} \n"
19
+ a1.family = [a2, a3]
20
+ print "#{a1["family"].name} \n"
21
+ print "---> #{a1.family.class}\n"
22
+ a1["family"] << a4
23
+ print "#{a1.family.name} \n"
24
+
25
+
26
+ # ActiveOrient::OrientDB.methods.each do |m|
27
+ # print "#{m} \n"
28
+ # end
@@ -0,0 +1,21 @@
1
+ source "https://rubygems.org"
2
+ #gemspec
3
+ gem 'orientdb' , :path => '/home/topo/orientdb-jruby' , :platforms => :jruby
4
+ ## change here to the location of ActiveOrient
5
+ gem 'active-orient' , :path => '/home/topo/activeorient'
6
+
7
+
8
+ group :development, :test do
9
+ gem "awesome_print"
10
+ gem "rspec"
11
+ gem 'rspec-legacy_formatters'
12
+ gem 'rspec-its'
13
+ gem 'rspec-collection_matchers'
14
+ gem 'rspec-context-private'
15
+ gem 'guard-jruby-rspec', :platforms => :jruby, :git => 'git://github.com/jkutner/guard-jruby-rspec.git'
16
+ gem 'guard'#, :platforms => :ruby
17
+ gem 'guard-rspec'
18
+ ## gem 'database_cleaner'
19
+ gem 'rb-inotify'
20
+ gem 'pry'
21
+ end