orientdb 0.0.4-jruby → 0.0.5-jruby

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.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Adrian Madrid
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile CHANGED
@@ -1,10 +1,56 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
1
+ require 'rubygems'
2
+ require 'rake'
3
3
 
4
- require 'spec/rake/spectask'
4
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
5
5
 
6
- Spec::Rake::SpecTask.new(:spec) do |t|
7
- t.spec_files = Dir.glob('spec/**/*_spec.rb')
8
- t.spec_opts << '--format specdoc'
9
- # t.rcov = true
10
- end
6
+ begin
7
+ require 'jeweler'
8
+ Jeweler::Tasks.new do |gem|
9
+ gem.name = "orientdb"
10
+ gem.platform = "jruby"
11
+ gem.authors = ["Adrian Madrid"]
12
+ gem.email = ["aemadrid@gmail.com"]
13
+ gem.homepage = "http://rubygems.org/gems/orientdb"
14
+ gem.summary = "JRuby wrapper for OrientDB"
15
+ gem.description = "Simple JRuby wrapper for the OrientDB."
16
+
17
+ gem.required_rubygems_version = ">= 1.3.6"
18
+ gem.rubyforge_project = "orientdb"
19
+
20
+ gem.add_development_dependency "awesome_print"
21
+ gem.add_development_dependency "rspec", ">= 2.4"
22
+
23
+ gem.files = `git ls-files`.split("\n")
24
+ gem.test_files = Dir["test/test*.rb"]
25
+ gem.executables = `git ls-files`.split("\n").map { |f| f =~ /^bin\/(.*)/ ? $1 : nil }.compact
26
+ gem.require_path = 'lib'
27
+ end
28
+ Jeweler::GemcutterTasks.new
29
+ rescue LoadError
30
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
31
+ end
32
+
33
+ require 'rspec/core/rake_task'
34
+ RSpec::Core::RakeTask.new(:spec)
35
+
36
+ desc "Run all examples using rcov"
37
+ RSpec::Core::RakeTask.new :rcov => :cleanup_rcov_files do |t|
38
+ t.rcov = true
39
+ t.rcov_opts = %[-Ilib -Ispec --exclude "spec/*,gems/*" --text-report --sort coverage --aggregate coverage.data]
40
+ end
41
+
42
+ task :cleanup_rcov_files do
43
+ rm_rf 'coverage.data'
44
+ end
45
+
46
+ task :spec => :check_dependencies
47
+
48
+ task :default => :spec
49
+
50
+ require 'rake/rdoctask'
51
+ Rake::RDocTask.new do |rdoc|
52
+ rdoc.rdoc_dir = 'rdoc'
53
+ rdoc.title = "orientdb #{version}"
54
+ rdoc.rdoc_files.include('README*')
55
+ rdoc.rdoc_files.include('lib/**/*.rb')
56
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.5
data/bin/orientdb_console CHANGED
@@ -12,7 +12,7 @@ if ARGV.include?('test:db')
12
12
 
13
13
  require 'fileutils'
14
14
  FileUtils.mkdir_p TEST_DB_PATH
15
- @db = OrientDB::Database.new("local:#{TEST_DB_PATH}/test").create
15
+ DB = OrientDB::Database.new("local:#{TEST_DB_PATH}/test").create
16
16
  end
17
17
 
18
18
  include OrientDB
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/lib/orientdb.rb CHANGED
@@ -4,7 +4,7 @@ $: << File.dirname(__FILE__)
4
4
  $: << File.expand_path('../../jars/', __FILE__)
5
5
 
6
6
  require 'java'
7
- require 'orientdb-client-0.9.23'
7
+ require 'orientdb-client-0.9.24'
8
8
 
9
9
  module OrientDB
10
10
 
@@ -16,9 +16,12 @@ module OrientDB
16
16
  end
17
17
 
18
18
  require 'orientdb/ext'
19
+ require 'orientdb/constants'
19
20
  require 'orientdb/version'
20
21
  require 'orientdb/user'
22
+ require 'orientdb/property'
21
23
  require 'orientdb/schema'
22
24
  require 'orientdb/database'
23
25
  require 'orientdb/document'
26
+ require 'orientdb/sql_query'
24
27
  require 'orientdb/oclass'
@@ -0,0 +1,47 @@
1
+ module OrientDB
2
+
3
+ ClusterType = com.orientechnologies.orient.core.storage.OStorage::CLUSTER_TYPE
4
+ Database = com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx
5
+ DatabasePool = com.orientechnologies.orient.core.db.document.ODatabaseDocumentPool
6
+ Document = com.orientechnologies.orient.core.record.impl.ODocument
7
+ IndexType = com.orientechnologies.orient.core.metadata.schema.OProperty::INDEX_TYPE
8
+ OClass = com.orientechnologies.orient.core.metadata.schema.OClass
9
+ Property = com.orientechnologies.orient.core.metadata.schema.OProperty
10
+ Schema = com.orientechnologies.orient.core.metadata.schema.OSchema
11
+ SchemaType = com.orientechnologies.orient.core.metadata.schema.OType
12
+ SQLQuery = com.orientechnologies.orient.core.sql.query.OSQLSynchQuery
13
+ SQLCommand = com.orientechnologies.orient.core.sql.OCommandSQL
14
+ User = com.orientechnologies.orient.core.metadata.security.OUser
15
+
16
+ STORAGE_TYPES = %w{ LOGICAL MEMORY PHYSICAL }.inject({}) { |h, s| h[s.downcase.to_sym] = ClusterType.const_get s; h }
17
+ INDEX_TYPES = %w{ FULLTEXT NOTUNIQUE UNIQUE }.inject({}) { |h, s| h[s.downcase.to_sym] = IndexType.const_get s; h }
18
+
19
+ FIELD_TYPES = {
20
+ :binary => "BINARY",
21
+ :bool => "BOOLEAN",
22
+ :boolean => "BOOLEAN",
23
+ :double => "BYTE",
24
+ :date => "DATE",
25
+ :datetime => "DATE",
26
+ :decimal => "FLOAT",
27
+ :double => "DOUBLE",
28
+ :embedded => "EMBEDDED",
29
+ :embedded_list => "EMBEDDEDLIST",
30
+ :embedded_map => "EMBEDDEDMAP",
31
+ :embedded_set => "EMBEDDEDSET",
32
+ :float => "FLOAT",
33
+ :int => "INTEGER",
34
+ :integer => "INTEGER",
35
+ :link => "LINK",
36
+ :link_list => "LINKLIST",
37
+ :link_map => "LINKMAP",
38
+ :link_set => "LINKSET",
39
+ :long => "LONG",
40
+ :short => "SHORT",
41
+ :string => "STRING",
42
+ }.inject({}) do |h, (k, v)|
43
+ h[k] = SchemaType.const_get v
44
+ h
45
+ end
46
+
47
+ end
@@ -1,104 +1,141 @@
1
- module OrientDB
1
+ class OrientDB::Database
2
2
 
3
- Database = com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx
3
+ def auth(username, password)
4
+ open username, password
5
+ end
4
6
 
5
- SQLQuery = com.orientechnologies.orient.core.sql.query.OSQLSynchQuery
7
+ alias_method :native_command, :command
6
8
 
7
- class Database
9
+ def command(sql_command = nil)
10
+ sql_command = prepare_sql_command sql_command
11
+ exc_cmd = sql_command.execute
12
+ native_command exc_cmd
13
+ end
8
14
 
9
- def auth(username, password)
10
- open username, password
15
+ def prepare_sql_command(sql_command)
16
+ return if sql_command.nil?
17
+ case sql_command
18
+ when SQLCommand
19
+ sql_command
20
+ when String
21
+ SQLCommand.new sql_command
22
+ else
23
+ raise "Unknown command type"
11
24
  end
25
+ end
12
26
 
13
- alias_method :native_query, :query
27
+ alias_method :native_query, :query
14
28
 
15
- def query(sql_query = nil)
16
- sql_query = prepare_sql_query sql_query
17
- native_query sql_query
18
- end
29
+ def query(sql_query = nil)
30
+ sql_query = prepare_sql_query sql_query
31
+ native_query sql_query
32
+ end
19
33
 
20
- alias :find :query
34
+ alias :find :query
35
+ alias :all :query
21
36
 
22
- def first(sql_query = nil)
23
- sql_query = prepare_sql_query sql_query
24
- query(sql_query).setLimit(1).map { |x| x }.first
25
- end
37
+ def first(sql_query = nil)
38
+ sql_query = prepare_sql_query(sql_query).setLimit(1)
39
+ query(sql_query).first
40
+ end
26
41
 
27
- def prepare_sql_query(sql_query)
28
- return if sql_query.nil?
29
- case sql_query
30
- when SQLQuery
31
- sql_query
32
- when String
33
- SQLQuery.new sql_query
34
- when Hash
35
- SQLQuery.new sql_query_from_hash(sql_query)
36
- else
37
- raise "Unknown query type"
38
- end
42
+ def prepare_sql_query(sql_query)
43
+ return if sql_query.nil?
44
+ case sql_query
45
+ when com.orientechnologies.orient.core.sql.query.OSQLSynchQuery
46
+ sql_query
47
+ when String
48
+ com.orientechnologies.orient.core.sql.query.OSQLSynchQuery.new sql_query
49
+ when Hash
50
+ com.orientechnologies.orient.core.sql.query.OSQLSynchQuery.new sql_query_from_hash(sql_query)
51
+ else
52
+ raise "Unknown query type"
39
53
  end
54
+ end
40
55
 
41
- def sql_query_from_hash(options = {})
42
- klass_name = options.delete :class
43
- raise "Missing class name" unless klass_name
44
- columns = options.delete(:columns) || '*'
45
- order = options.delete :order
46
- order_sql = order ? " ORDER BY #{order}" : ''
47
- fields = options.map do |field, value|
48
- cmp = '='
49
- if value.is_a?(String)
50
- value = "'" + value + "'"
51
- cmp = 'LIKE' if value.index('%')
52
- end
53
- "#{field} #{cmp} #{value}"
54
- end
55
- "SELECT #{columns} FROM #{klass_name} WHERE #{fields.join(' AND ')}#{order_sql}"
56
- end
56
+ def sql_query_from_hash(options = {})
57
+ target = options.delete :oclass
58
+ raise "Missing oclass name" unless target
59
+
60
+ columns = options.delete(:columns) || '*'
61
+ order = options.delete :order
62
+ order_sql = order ? " ORDER BY #{order}" : ''
63
+ limit = options.delete :limit
64
+ limit_sql = limit ? " LIMIT #{limit}" : ''
65
+ range_low = options.delete(:range_low) || options.delete(:range)
66
+ range_high = options.delete :range_high
67
+ range_sql = range_low ? " RANGE #{range_low}#{range_high ? ",#{range_high}" : ''}" : ''
68
+ fields = options.map { |field, value| "#{field} #{operator_for(value)} #{quote(value)}" }
69
+ where_sql = fields.size > 0 ? " WHERE #{fields.join(' AND ')}" : ''
70
+
71
+ "SELECT #{columns} FROM #{target}" + where_sql + order_sql + limit_sql + range_sql
72
+ end
57
73
 
58
- def schema
59
- metadata.schema
74
+ def operator_for(value)
75
+ case value
76
+ when Integer, Float, Symbol
77
+ "="
78
+ when String
79
+ value.index('%') ? "LIKE" : "="
80
+ when Array
81
+ "IN"
60
82
  end
83
+ end
61
84
 
62
- def get_class(klass_name)
63
- schema.get_class klass_name.to_s
85
+ def quote(value)
86
+ case value
87
+ when Integer, Float, Symbol
88
+ value.to_s
89
+ when String
90
+ "'#{value}'"
91
+ when Array
92
+ "[" + value.map { |x| quote(x) }.join(", ") + "]"
64
93
  end
94
+ end
65
95
 
66
- def create_class(klass_name, fields = {})
67
- OrientDB::OClass.create self, klass_name.to_s, fields
68
- end
96
+ def schema
97
+ metadata.schema
98
+ end
69
99
 
70
- def get_or_create_class(klass_name)
71
- get_class(klass_name) || create_class(klass_name)
72
- end
100
+ def get_class(klass_name)
101
+ schema.get_class klass_name.to_s
102
+ end
73
103
 
74
- alias :each_in_class :browseClass
104
+ def create_class(klass_name, fields = {})
105
+ OrientDB::OClass.create self, klass_name.to_s, fields
106
+ end
75
107
 
76
- def all_in_class(klass_name)
77
- browse_class(klass_name.to_s).map
78
- end
108
+ def get_or_create_class(klass_name)
109
+ get_class(klass_name) || create_class(klass_name)
110
+ end
79
111
 
80
- alias :each_in_cluster :browseCluster
112
+ alias :each_in_class :browseClass
81
113
 
82
- def all_in_cluster(cluster_name)
83
- browse_cluster(cluster_name.to_s).map
84
- end
114
+ def all_in_class(klass_name)
115
+ browse_class(klass_name.to_s).map
116
+ end
117
+
118
+ alias :each_in_cluster :browseCluster
85
119
 
86
- class << self
120
+ def all_in_cluster(cluster_name)
121
+ browse_cluster(cluster_name.to_s).map
122
+ end
87
123
 
88
- def create(database_url)
89
- obj = new(database_url)
90
- obj.create
91
- obj
92
- end
124
+ class << self
93
125
 
94
- def connect(database_url, username, password)
95
- obj = new(database_url)
96
- obj.auth(username, password)
97
- obj
98
- end
126
+ def create(database_url)
127
+ obj = new(database_url)
128
+ obj.create
129
+ obj
130
+ end
99
131
 
132
+ def connect(database_url, username, password)
133
+ obj = new(database_url)
134
+ obj.auth(username, password)
135
+ obj
100
136
  end
137
+
101
138
  end
139
+ end
102
140
 
103
141
 
104
- end
@@ -1,7 +1,5 @@
1
1
  module OrientDB
2
2
 
3
- DatabasePool = com.orientechnologies.orient.core.db.document.ODatabaseDocumentPool
4
-
5
3
  class DatabasePool
6
4
 
7
5
  def initialize(database_url, username, password)
@@ -1,7 +1,5 @@
1
1
  module OrientDB
2
2
 
3
- Document = com.orientechnologies.orient.core.record.impl.ODocument
4
-
5
3
  class Document
6
4
 
7
5
  def values
@@ -20,6 +18,8 @@ module OrientDB
20
18
 
21
19
  def method_missing(method_name, *args, &blk)
22
20
  return self[method_name] if contains_field(method_name.to_s)
21
+ return nil if schema_class.exists_property?(method_name.to_s)
22
+
23
23
  match = method_name.to_s.match(/(.*?)([?=!]?)$/)
24
24
  case match[2]
25
25
  when "="
@@ -31,9 +31,13 @@ module OrientDB
31
31
  end
32
32
  end
33
33
 
34
+ def rid
35
+ identity.to_s
36
+ end
37
+
34
38
  def inspect
35
- props = values.map { |k, v| "#{k}:#{v}" }.join(' ')
36
- %{#<OrientDB::Document:#{get_class_name}#{props.empty? ? '' : ' ' + props}>}
39
+ props = values.map { |k, v| "#{k}:#{v.inspect}" }.join(' ')
40
+ %{#<OrientDB::Document:#{class_name}:#{rid}#{props.empty? ? '' : ' ' + props}>}
37
41
  end
38
42
 
39
43
  alias :to_s :inspect
@@ -43,9 +47,10 @@ module OrientDB
43
47
  alias_method :native_new, :new
44
48
 
45
49
  def new(db, klass_name, fields = {})
46
- obj = native_new db, klass_name
50
+ puts "new : #{db} : #{klass_name} : #{fields.inspect}"
51
+ obj = native_new db, klass_name.to_s
47
52
  fields.each do |name, value|
48
- obj.field name, value
53
+ obj.field name.to_s, value
49
54
  end
50
55
  obj
51
56
  end
data/lib/orientdb/ext.rb CHANGED
@@ -2,12 +2,12 @@ require 'date'
2
2
 
3
3
  class Date
4
4
  def proxy_object
5
- java.util.Date.new year, month - 1, day - 1, 0, 0, 0
5
+ java.util.Date.new year, month - 1, day, 0, 0, 0
6
6
  end
7
7
  end
8
8
 
9
9
  class DateTime
10
10
  def proxy_object
11
- java.util.Date.new year, month - 1, day - 1, hour, min, sec
11
+ java.util.Date.new year, month - 1, day, hour, min, sec
12
12
  end
13
13
  end
@@ -1,44 +1,5 @@
1
1
  module OrientDB
2
2
 
3
-
4
- OClass = com.orientechnologies.orient.core.metadata.schema.OClass
5
-
6
- # SchemaType = com.orientechnologies.orient.core.metadata.schema.OType
7
- ClusterType = com.orientechnologies.orient.core.storage.OStorage::CLUSTER_TYPE
8
- IndexType = com.orientechnologies.orient.core.metadata.schema.OProperty::INDEX_TYPE
9
-
10
-
11
- FIELD_TYPES = {
12
- :binary => "BINARY",
13
- :bool => "BOOLEAN",
14
- :boolean => "BOOLEAN",
15
- :double => "BYTE",
16
- :date => "DATE",
17
- :datetime => "DATE",
18
- :decimal => "FLOAT",
19
- :double => "DOUBLE",
20
- :embedded => "EMBEDDED",
21
- :embedded_list => "EMBEDDEDLIST",
22
- :embedded_map => "EMBEDDEDMAP",
23
- :embedded_set => "EMBEDDEDSET",
24
- :float => "FLOAT",
25
- :int => "INTEGER",
26
- :integer => "INTEGER",
27
- :link => "LINK",
28
- :link_list => "LINKLIST",
29
- :link_map => "LINKMAP",
30
- :link_set => "LINKSET",
31
- :long => "LONG",
32
- :short => "SHORT",
33
- :string => "STRING",
34
- }.inject({}) do |h, (k, v)|
35
- h[k] = SchemaType.const_get v
36
- h
37
- end
38
-
39
- STORAGE_TYPES = %w{ LOGICAL MEMORY PHYSICAL }.inject({}) { |h, s| h[s.downcase.to_sym] = ClusterType.const_get s; h }
40
- INDEX_TYPES = %w{ FULLTEXT NOT_UNIQUE UNIQUE }.inject({}) { |h, s| h[s.downcase.to_sym] = IndexType.const_get s; h }
41
-
42
3
  class OClass
43
4
 
44
5
  def add(property_name, type)
@@ -55,6 +16,7 @@ module OrientDB
55
16
  create_property property_name, FIELD_TYPES[:link], type
56
17
  when Array
57
18
  type[0] = FIELD_TYPES[type[0]] if type[0].is_a?(Symbol)
19
+ type[1] = FIELD_TYPES[type[1]] if type[1].is_a?(Symbol)
58
20
  create_property property_name, *type
59
21
  when Hash
60
22
  raise "Missing property type for [#{property_name}]" unless type[:type]
@@ -68,7 +30,7 @@ module OrientDB
68
30
  prop.set_mandatory !!type[:mandatory] unless type[:mandatory].nil?
69
31
  prop.set_not_null type[:not_null] unless type[:not_null].nil?
70
32
  unless type[:index].nil?
71
- index_type = type[:index] == true ? INDEX_TYPES[:not_unique] : INDEX_TYPES[type[:index]]
33
+ index_type = type[:index] == true ? INDEX_TYPES[:notunique] : INDEX_TYPES[type[:index]]
72
34
  prop.createIndex index_type
73
35
  end
74
36
  else
@@ -91,13 +53,15 @@ module OrientDB
91
53
  end
92
54
 
93
55
  def inspect
94
- props = properties.map { |x| "#{x.name}:#{x.type.to_s.downcase}" }.join(' ')
95
- %{#<OrientDB::OClass:#{name}#{props.empty? ? '' : ' ' + props}>}
56
+ props = properties.map { |x| "#{x.name}=#{x.type.to_s.downcase}#{x.is_indexed? ? '(idx)' : ''}" }.join(' ')
57
+ "#<OrientDB::OClass:" + name +
58
+ (getSuperClass ? ' super=' + getSuperClass.name : '') +
59
+ (props.empty? ? '' : ' ' + props) +
60
+ ">"
96
61
  end
97
62
 
98
63
  alias :to_s :inspect
99
64
 
100
-
101
65
  class << self
102
66
 
103
67
  def create(db, name, fields = {})
@@ -105,11 +69,16 @@ module OrientDB
105
69
  add_cluster = fields.delete :add_cluster
106
70
  add_cluster = true if add_cluster.nil?
107
71
 
108
- if add_cluster
109
- cluster = db.storage.add_cluster name.downcase, STORAGE_TYPES[:physical]
110
- klass = db.schema.create_class name, cluster
72
+ if db.schema.exists_class? name
73
+ klass = db.get_class name
111
74
  else
112
- klass = db.schema.create_class name
75
+ if add_cluster && !db.storage.cluster_names.include?(name.downcase)
76
+ cluster = db.storage.add_cluster name.downcase, STORAGE_TYPES[:physical]
77
+ klass = db.schema.create_class name, cluster
78
+ else
79
+ klass = db.schema.create_class name
80
+ cluster = db.storage.get_cluster_by_name name.downcase
81
+ end
113
82
  end
114
83
 
115
84
  super_klass = fields.delete :super
@@ -0,0 +1,39 @@
1
+ module OrientDB
2
+
3
+ class Property
4
+
5
+ def type_short
6
+ @type_short ||= OrientDB::FIELD_TYPES.select { |k, v| v.name == getType.name }.first.first
7
+ end
8
+
9
+ def linked_type_short
10
+ @linked_type_short ||= getLinkedType && OrientDB::FIELD_TYPES.select { |k, v| v.name == getLinkedType.name }.first.first
11
+ end
12
+
13
+ def info
14
+ {
15
+ :name => name,
16
+ :type => type_short,
17
+ :index => indexed? ? getIndex.name : nil,
18
+ :min => min,
19
+ :max => max,
20
+ :mandatory => is_mandatory?,
21
+ :not_null => is_not_null?,
22
+ :linked_type => linked_type_short,
23
+ :linked_class => linked_type_short ? getLinkedClass.name : nil,
24
+ }
25
+ end
26
+
27
+ def inspect
28
+ "#<OrientDB::Propery:#{name} type=#{type_short} " +
29
+ "#{linked_type_short ? "linked_type=#{linked_type_short} linked_class=#{getLinkedClass.name}" : ''}" +
30
+ "indexed=#{is_indexed?} mandatory=#{is_mandatory?} not_null=#{is_not_null}" +
31
+ "#{min ? " min=#{min}" : ''}#{max ? " max=#{max}" : ''}" +
32
+ ">"
33
+ end
34
+
35
+ alias :to_s :inspect
36
+
37
+ end
38
+
39
+ end
@@ -1,6 +1,7 @@
1
1
  module OrientDB
2
2
 
3
- Schema = com.orientechnologies.orient.core.metadata.schema.OSchema
4
- SchemaType = com.orientechnologies.orient.core.metadata.schema.OType
3
+ class Schema
4
+
5
+ end
5
6
 
6
7
  end
@@ -0,0 +1,13 @@
1
+ module OrientDB
2
+
3
+ class SqlQuery
4
+
5
+ def inspect
6
+ %{#<OrientDB::SqlQuery:#{name} text="#{text}">}
7
+ end
8
+
9
+ alias :to_s :inspect
10
+
11
+ end
12
+
13
+ end
data/lib/orientdb/user.rb CHANGED
@@ -1,5 +1,3 @@
1
1
  module OrientDB
2
2
 
3
- User = com.orientechnologies.orient.core.metadata.security.OUser
4
-
5
3
  end
data/orientdb.gemspec CHANGED
@@ -1,26 +1,96 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
1
4
  # -*- encoding: utf-8 -*-
2
- require File.expand_path("../lib/orientdb/version", __FILE__)
3
5
 
4
6
  Gem::Specification.new do |s|
5
- s.name = "orientdb"
6
- s.version = OrientDB::VERSION
7
- s.platform = "jruby"
8
- s.authors = ["Adrian Madrid"]
9
- s.email = ["aemadrid@gmail.com"]
10
- s.homepage = "http://rubygems.org/gems/orientdb"
11
- s.summary = "JRuby wrapper for OrientDB"
12
- s.description = "JRuby wrapper for OrientDB"
7
+ s.name = %q{orientdb}
8
+ s.version = "0.0.5"
9
+ s.platform = %q{jruby}
13
10
 
14
- s.required_rubygems_version = ">= 1.3.6"
15
- s.rubyforge_project = "orientdb"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.3.6") if s.respond_to? :required_rubygems_version=
12
+ s.authors = ["Adrian Madrid"]
13
+ s.date = %q{2011-01-12}
14
+ s.default_executable = %q{orientdb_console}
15
+ s.description = %q{Simple JRuby wrapper for the OrientDB.}
16
+ s.email = ["aemadrid@gmail.com"]
17
+ s.executables = ["orientdb_console"]
18
+ s.extra_rdoc_files = [
19
+ "LICENSE",
20
+ "README.rdoc"
21
+ ]
22
+ s.files = [
23
+ ".document",
24
+ ".gitignore",
25
+ ".rvmrc",
26
+ "Gemfile",
27
+ "Gemfile.lock",
28
+ "LICENSE",
29
+ "README.rdoc",
30
+ "Rakefile",
31
+ "VERSION",
32
+ "bin/orientdb_console",
33
+ "jars/orient-commons-0.9.24.jar",
34
+ "jars/orientdb-client-0.9.24.jar",
35
+ "jars/orientdb-core-0.9.24.jar",
36
+ "jars/orientdb-enterprise-0.9.24.jar",
37
+ "jars/orientdb-server-0.9.24.jar",
38
+ "jars/orientdb-tools-0.9.24.jar",
39
+ "jars/persistence-api-1.0.jar",
40
+ "lib/orientdb.rb",
41
+ "lib/orientdb/constants.rb",
42
+ "lib/orientdb/database.rb",
43
+ "lib/orientdb/database_pool.rb",
44
+ "lib/orientdb/document.rb",
45
+ "lib/orientdb/ext.rb",
46
+ "lib/orientdb/oclass.rb",
47
+ "lib/orientdb/property.rb",
48
+ "lib/orientdb/schema.rb",
49
+ "lib/orientdb/sql_query.rb",
50
+ "lib/orientdb/user.rb",
51
+ "lib/orientdb/version.rb",
52
+ "orientdb.gemspec",
53
+ "spec/database_spec.rb",
54
+ "spec/document_spec.rb",
55
+ "spec/orientdb_spec.rb",
56
+ "spec/spec.opts",
57
+ "spec/spec_helper.rb"
58
+ ]
59
+ s.homepage = %q{http://rubygems.org/gems/orientdb}
60
+ s.require_paths = ["lib"]
61
+ s.rubyforge_project = %q{orientdb}
62
+ s.rubygems_version = %q{1.3.6}
63
+ s.summary = %q{JRuby wrapper for OrientDB}
16
64
 
17
- s.add_dependency "hashie"
18
- s.add_development_dependency "bundler", ">= 1.0.0"
19
- s.add_development_dependency "awesome_print"
20
- s.add_development_dependency "rspec", ">= 2.1"
65
+ if s.respond_to? :specification_version then
66
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
67
+ s.specification_version = 3
21
68
 
22
- s.files = `git ls-files`.split("\n")
23
- s.test_files = Dir["test/test*.rb"]
24
- s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
25
- s.require_path = 'lib'
69
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
70
+ s.add_runtime_dependency(%q<orientdb>, [">= 0"])
71
+ s.add_runtime_dependency(%q<hashie>, [">= 0"])
72
+ s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
73
+ s.add_development_dependency(%q<awesome_print>, [">= 0"])
74
+ s.add_development_dependency(%q<rspec>, [">= 2.1"])
75
+ s.add_development_dependency(%q<awesome_print>, [">= 0"])
76
+ s.add_development_dependency(%q<rspec>, [">= 2.4"])
77
+ else
78
+ s.add_dependency(%q<orientdb>, [">= 0"])
79
+ s.add_dependency(%q<hashie>, [">= 0"])
80
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
81
+ s.add_dependency(%q<awesome_print>, [">= 0"])
82
+ s.add_dependency(%q<rspec>, [">= 2.1"])
83
+ s.add_dependency(%q<awesome_print>, [">= 0"])
84
+ s.add_dependency(%q<rspec>, [">= 2.4"])
85
+ end
86
+ else
87
+ s.add_dependency(%q<orientdb>, [">= 0"])
88
+ s.add_dependency(%q<hashie>, [">= 0"])
89
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
90
+ s.add_dependency(%q<awesome_print>, [">= 0"])
91
+ s.add_dependency(%q<rspec>, [">= 2.1"])
92
+ s.add_dependency(%q<awesome_print>, [">= 0"])
93
+ s.add_dependency(%q<rspec>, [">= 2.4"])
94
+ end
26
95
  end
96
+
@@ -0,0 +1,91 @@
1
+ require File.expand_path("../spec_helper", __FILE__)
2
+
3
+ describe "OrientDB" do
4
+
5
+ describe "Database" do
6
+
7
+ before :all do
8
+ create_classes
9
+ end
10
+
11
+ it "should create a valid simple table" do
12
+ exp_class = "#<OrientDB::OClass:person name=string>"
13
+ exp_props = ["#<OrientDB::Propery:name type=string indexed=false mandatory=false not_null=false>"]
14
+ @person_class.to_s.should == exp_class
15
+ @person_class.properties.map { |x| x.to_s }.should == exp_props
16
+ end
17
+
18
+ it "should create a valid simple descendant table" do
19
+ exp_class = "#<OrientDB::OClass:customer super=person tab=float name=string>"
20
+ exp_props = [
21
+ "#<OrientDB::Propery:tab type=decimal indexed=false mandatory=false not_null=false>",
22
+ "#<OrientDB::Propery:name type=string indexed=false mandatory=false not_null=false>"
23
+ ]
24
+ @customer_class.to_s.should == exp_class
25
+ @customer_class.properties.map { |x| x.to_s }.should == exp_props
26
+ end
27
+
28
+ it "should create a complex table" do
29
+ exp_class = "#<OrientDB::OClass:invoice number=integer(idx) customer=link sold_on=date total=float lines=linklist>"
30
+ exp_props = [
31
+ "#<OrientDB::Propery:number type=int indexed=true mandatory=true not_null=false>",
32
+ "#<OrientDB::Propery:customer type=link indexed=false mandatory=false not_null=true>",
33
+ "#<OrientDB::Propery:sold_on type=date indexed=false mandatory=false not_null=false>",
34
+ "#<OrientDB::Propery:total type=decimal indexed=false mandatory=false not_null=false>",
35
+ "#<OrientDB::Propery:lines type=link_list indexed=false mandatory=false not_null=false>"
36
+ ]
37
+ @invoice_class.to_s.should == exp_class
38
+ @invoice_class.properties.map { |x| x.to_s }.should == exp_props
39
+ end
40
+
41
+ describe "Query" do
42
+
43
+ before :all do
44
+ create_classes
45
+
46
+ @oclass = @employee_class.name
47
+ @e1 = OrientDB::Document.create DB, @oclass, :name => "Mark", :age => 36, :groups => %w{admin sales}
48
+ @e2 = OrientDB::Document.create DB, @oclass, :name => "John", :age => 37, :groups => %w{admin tech}
49
+ @e3 = OrientDB::Document.create DB, @oclass, :name => "Luke", :age => 38, :groups => %w{tech support}
50
+ @e4 = OrientDB::Document.create DB, @oclass, :name => "Matt", :age => 39, :groups => %w{admin office}
51
+ @e5 = OrientDB::Document.create DB, @oclass, :name => "Pete", :age => 40, :groups => %w{vp office}
52
+ @employees = [@e1,@e2,@e3,@e4,@e5]
53
+ end
54
+
55
+ it "should prepare valid queries" do
56
+ qry1 = DB.prepare_sql_query :oclass => "person"
57
+ qry1.should be_a_kind_of OrientDB::SQLQuery
58
+ qry1.text.should == "SELECT * FROM person"
59
+
60
+ qry2 = DB.prepare_sql_query :oclass => "person", :name => "John"
61
+ qry2.should be_a_kind_of OrientDB::SQLQuery
62
+ qry2.text.should == "SELECT * FROM person WHERE name = 'John'"
63
+
64
+ qry3 = DB.prepare_sql_query qry2.text
65
+ qry3.should be_a_kind_of OrientDB::SQLQuery
66
+ qry3.text.should == qry2.text
67
+
68
+ qry4 = DB.prepare_sql_query qry3
69
+ qry4.should be_a_kind_of OrientDB::SQLQuery
70
+ qry4.text.should == qry2.text
71
+ end
72
+
73
+ it "should get all rows for a class" do
74
+ DB.all(:oclass => @oclass).map.should == @employees
75
+ end
76
+
77
+ it "should find rows by simple field values" do
78
+ DB.first(:oclass => @oclass, :name => "Mark").should == @e1
79
+ DB.first(:oclass => @oclass, :age => 37).should == @e2
80
+ end
81
+
82
+ it "should find rows by values in arrays" do
83
+ qry = DB.prepare_sql_query "SELECT * FROM #{@oclass} WHERE 'admin' IN groups"
84
+ DB.query(qry).map.should == [@e1,@e2,@e4]
85
+ end
86
+
87
+ end
88
+
89
+ end
90
+
91
+ end
@@ -0,0 +1,75 @@
1
+ require File.expand_path("../spec_helper", __FILE__)
2
+
3
+ describe "OrientDB" do
4
+
5
+ describe "Document" do
6
+
7
+ before :all do
8
+ create_classes
9
+
10
+ @h_fields = {:sku => 'H509', :title => "Hammer", :price => 3.25}
11
+ @hammer = OrientDB::Document.create DB, @product_class.name, @h_fields
12
+
13
+ @n_fields = {:sku => 'N034', :title => "Nail", :price => 0.25}
14
+ @nail = OrientDB::Document.create DB, @product_class.name, @n_fields
15
+
16
+ @line1 = OrientDB::Document.create DB, @line_class.name,
17
+ :product => @hammer,
18
+ :quantity => 1,
19
+ :price => @hammer.price
20
+ @line2 = OrientDB::Document.create DB, @line_class.name,
21
+ :product => @nail,
22
+ :quantity => 10,
23
+ :price => @nail.price
24
+ @lines = [@line1, @line2]
25
+ @total = @lines.inject(0.0) { |a, x| a + x.price * x.quantity }
26
+
27
+ @customer = OrientDB::Document.create DB, @customer_class.name,
28
+ :name => "Mark Dumber",
29
+ :tab => 500.00
30
+
31
+ @invoice = OrientDB::Document.create DB, @invoice_class.name,
32
+ :number => 10001,
33
+ :customer => @customer,
34
+ :total => @total.to_s,
35
+ :sold_on => Date.civil(2011, 1, 1).proxy_object,
36
+ :lines => @lines
37
+ end
38
+
39
+ it "should instantiate new documents" do
40
+ @screw = OrientDB::Document.new DB, @product_class.name, :sku => "S365", :price => 0.33
41
+ @screw.should be_a_kind_of OrientDB::Document
42
+ end
43
+
44
+ it "should create simple documents" do
45
+ @hammer.should be_a_kind_of OrientDB::Document
46
+ @hammer.to_s.should == "#<OrientDB::Document:product:8:0 title:\"Hammer\" price:3.25 sku:\"H509\">"
47
+ @h_fields.each { |k, v| @hammer[k].should == v }
48
+
49
+ @nail.should be_a_kind_of OrientDB::Document
50
+ @nail.to_s.should == "#<OrientDB::Document:product:8:1 title:\"Nail\" price:0.25 sku:\"N034\">"
51
+ @n_fields.each { |k, v| @nail.send(k).should == v }
52
+ end
53
+
54
+ it "should create embedded documents" do
55
+ @line1.should be_a_kind_of OrientDB::Document
56
+ @line1.to_s.should == "#<OrientDB::Document:invoice_line:9:0 product:#<OrientDB::Document:product:8:0 title:\"Hammer\" price:3.25 sku:\"H509\"> price:3.25 quantity:1>"
57
+ @line1.product.should == @hammer
58
+ @line1.price.should == @hammer.price
59
+
60
+ @line2.should be_a_kind_of OrientDB::Document
61
+ @line2.to_s.should == "#<OrientDB::Document:invoice_line:9:1 product:#<OrientDB::Document:product:8:1 title:\"Nail\" price:0.25 sku:\"N034\"> price:0.25 quantity:10>"
62
+ @line2.product.should == @nail
63
+ @line2.price.should == @nail.price
64
+ end
65
+
66
+ it "should create complex, embedded documents" do
67
+ @invoice.should be_a_kind_of OrientDB::Document
68
+ # @invoice.to_s.should == "#<OrientDB::Document:invoice_line:8:0 product:#<OrientDB::Document:product:7:0 title:Hammer price:5.5 sku:H509> price:5.5 quantity:1>"
69
+ @invoice.customer.should == @customer
70
+ @invoice.total = @total
71
+ @invoice.lines.should == [@line1, @line2]
72
+ end
73
+ end
74
+
75
+ end
@@ -2,30 +2,9 @@ require File.expand_path("../spec_helper", __FILE__)
2
2
 
3
3
  describe "OrientDB" do
4
4
 
5
- before :all do
6
- @db = OrientDB::Database.new("local:#{TEST_DB_PATH}/test").create
7
- @person_class = @db.create_class :person, :name => :string
8
- @customer_class = @db.create_class :customer, :super => @person_class
9
- @product_class = @db.create_class :product, :sku => :string, :title => :string, :price => :float
10
- @line_class = @db.create_class :invoice_line, :product => @product_class, :quantity => :int, :price => :float
11
- @invoice_class = @db.create_class :invoice,
12
- :number => {:type => :int, :mandatory => true, :index => true},
13
- :customer => {:type => @customer_class, :not_null => true},
14
- :sold_on => :date,
15
- :total => {:type => :float, :min => 0.01, :max => 100_000.0},
16
- :lines => :embedded_list
17
- end
18
-
19
- after :all do
20
- @db.close
21
- # puts "Removing files in #{TEMP_DIR}/databases/*"
22
- # FileUtils.rm_rf "#{TEMP_DIR}/databases/test"
23
- end
24
-
25
5
  it "should create a valid database" do
26
- puts "Creating db #{@db_path}..."
27
- @db.should be_a_kind_of OrientDB::Database
28
- @db.name.should == "test"
6
+ DB.should be_a_kind_of OrientDB::Database
7
+ DB.name.should == "test"
29
8
  end
30
9
 
31
10
  end
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,16 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'orientdb'
4
+ require 'rspec'
5
+ #require 'rspec/autorun'
6
+ require 'fileutils'
7
+
1
8
  unless defined?(SPEC_HELPER_LOADED)
2
9
 
3
- GEM_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
4
- LIB_ROOT = GEM_ROOT + '/lib'
5
- SPEC_ROOT = GEM_ROOT + '/spec'
6
- TEMP_DIR = SPEC_ROOT + '/tmp'
10
+ GEM_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
11
+ LIB_ROOT = GEM_ROOT + '/lib'
12
+ SPEC_ROOT = GEM_ROOT + '/spec'
13
+ TEMP_DIR = SPEC_ROOT + '/tmp'
7
14
 
8
15
  TEST_DB_PATH = "#{TEMP_DIR}/databases/db_#{rand(999) + 1}"
9
16
 
@@ -12,13 +19,53 @@ unless defined?(SPEC_HELPER_LOADED)
12
19
 
13
20
  $LOAD_PATH.unshift(LIB_ROOT) unless $LOAD_PATH.include?(LIB_ROOT)
14
21
 
15
- require 'orientdb'
16
- require 'spec'
17
- require 'fileutils'
18
-
19
22
  FileUtils.mkdir_p TEST_DB_PATH
20
23
 
21
- Spec::Runner.configure do |config|
24
+ DB = OrientDB::Database.new("local:#{TEST_DB_PATH}/test").create
25
+
26
+ module Helpers
27
+ def create_classes
28
+ # People
29
+ @person_class = DB.create_class :person, :name => :string
30
+ # Customers
31
+ @customer_class = DB.create_class :customer,
32
+ :super => @person_class,
33
+ :tab => :float
34
+ # Employees
35
+ @employee_class = DB.create_class :employee,
36
+ :super => @person_class,
37
+ :age => :int,
38
+ :groups => [:embedded_list, :string]
39
+ @employee_class.truncate
40
+ @customer_class.truncate
41
+ @person_class.truncate
42
+ # Products
43
+ @product_class = DB.create_class :product,
44
+ :sku => :string,
45
+ :title => :string,
46
+ :price => :float
47
+ @product_class.truncate
48
+ # Invoice Lines
49
+ @line_class = DB.create_class :invoice_line,
50
+ :product => @product_class,
51
+ :quantity => :int,
52
+ :price => :float
53
+ @line_class.truncate
54
+ # Invoices
55
+ @invoice_class = DB.create_class :invoice,
56
+ :number => {:type => :int, :mandatory => true, :index => true},
57
+ :customer => {:type => @customer_class, :not_null => true},
58
+ :sold_on => :date,
59
+ :total => {:type => :float}, # , :min => java.lang.Float.new('0.01'), :max => java.lang.Float.new('1000.0')
60
+ :lines => [:link_list, @line_class]
61
+ @invoice_class.truncate
62
+ end
63
+ end
64
+
65
+ RSpec.configure do |config|
66
+ include Helpers
67
+
68
+ config.color_enabled = true
22
69
  end
23
70
 
24
71
  SPEC_HELPER_LOADED = true
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 4
9
- version: 0.0.4
8
+ - 5
9
+ version: 0.0.5
10
10
  platform: jruby
11
11
  authors:
12
12
  - Adrian Madrid
@@ -14,25 +14,36 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-11-12 00:00:00 -07:00
18
- default_executable:
17
+ date: 2011-01-12 00:00:00 -07:00
18
+ default_executable: orientdb_console
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: hashie
21
+ name: orientdb
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ segments:
27
+ - 0
28
+ version: "0"
29
+ requirement: *id001
22
30
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
31
+ type: :runtime
32
+ - !ruby/object:Gem::Dependency
33
+ name: hashie
34
+ version_requirements: &id002 !ruby/object:Gem::Requirement
24
35
  requirements:
25
36
  - - ">="
26
37
  - !ruby/object:Gem::Version
27
38
  segments:
28
39
  - 0
29
40
  version: "0"
41
+ requirement: *id002
42
+ prerelease: false
30
43
  type: :runtime
31
- version_requirements: *id001
32
44
  - !ruby/object:Gem::Dependency
33
45
  name: bundler
34
- prerelease: false
35
- requirement: &id002 !ruby/object:Gem::Requirement
46
+ version_requirements: &id003 !ruby/object:Gem::Requirement
36
47
  requirements:
37
48
  - - ">="
38
49
  - !ruby/object:Gem::Version
@@ -41,24 +52,24 @@ dependencies:
41
52
  - 0
42
53
  - 0
43
54
  version: 1.0.0
55
+ requirement: *id003
56
+ prerelease: false
44
57
  type: :development
45
- version_requirements: *id002
46
58
  - !ruby/object:Gem::Dependency
47
59
  name: awesome_print
48
- prerelease: false
49
- requirement: &id003 !ruby/object:Gem::Requirement
60
+ version_requirements: &id004 !ruby/object:Gem::Requirement
50
61
  requirements:
51
62
  - - ">="
52
63
  - !ruby/object:Gem::Version
53
64
  segments:
54
65
  - 0
55
66
  version: "0"
67
+ requirement: *id004
68
+ prerelease: false
56
69
  type: :development
57
- version_requirements: *id003
58
70
  - !ruby/object:Gem::Dependency
59
71
  name: rspec
60
- prerelease: false
61
- requirement: &id004 !ruby/object:Gem::Requirement
72
+ version_requirements: &id005 !ruby/object:Gem::Requirement
62
73
  requirements:
63
74
  - - ">="
64
75
  - !ruby/object:Gem::Version
@@ -66,41 +77,77 @@ dependencies:
66
77
  - 2
67
78
  - 1
68
79
  version: "2.1"
80
+ requirement: *id005
81
+ prerelease: false
82
+ type: :development
83
+ - !ruby/object:Gem::Dependency
84
+ name: awesome_print
85
+ version_requirements: &id006 !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ requirement: *id006
93
+ prerelease: false
69
94
  type: :development
70
- version_requirements: *id004
71
- description: JRuby wrapper for OrientDB
95
+ - !ruby/object:Gem::Dependency
96
+ name: rspec
97
+ version_requirements: &id007 !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ segments:
102
+ - 2
103
+ - 4
104
+ version: "2.4"
105
+ requirement: *id007
106
+ prerelease: false
107
+ type: :development
108
+ description: Simple JRuby wrapper for the OrientDB.
72
109
  email:
73
110
  - aemadrid@gmail.com
74
111
  executables:
75
112
  - orientdb_console
76
113
  extensions: []
77
114
 
78
- extra_rdoc_files: []
79
-
115
+ extra_rdoc_files:
116
+ - LICENSE
117
+ - README.rdoc
80
118
  files:
119
+ - .document
81
120
  - .gitignore
82
121
  - .rvmrc
83
122
  - Gemfile
84
123
  - Gemfile.lock
124
+ - LICENSE
85
125
  - README.rdoc
86
126
  - Rakefile
127
+ - VERSION
87
128
  - bin/orientdb_console
88
- - jars/orient-commons-0.9.23.jar
89
- - jars/orientdb-client-0.9.23.jar
90
- - jars/orientdb-core-0.9.23.jar
91
- - jars/orientdb-enterprise-0.9.23.jar
92
- - jars/orientdb-server-0.9.23.jar
93
- - jars/orientdb-tools-0.9.23.jar
129
+ - jars/orient-commons-0.9.24.jar
130
+ - jars/orientdb-client-0.9.24.jar
131
+ - jars/orientdb-core-0.9.24.jar
132
+ - jars/orientdb-enterprise-0.9.24.jar
133
+ - jars/orientdb-server-0.9.24.jar
134
+ - jars/orientdb-tools-0.9.24.jar
135
+ - jars/persistence-api-1.0.jar
94
136
  - lib/orientdb.rb
137
+ - lib/orientdb/constants.rb
95
138
  - lib/orientdb/database.rb
96
139
  - lib/orientdb/database_pool.rb
97
140
  - lib/orientdb/document.rb
98
141
  - lib/orientdb/ext.rb
99
142
  - lib/orientdb/oclass.rb
143
+ - lib/orientdb/property.rb
100
144
  - lib/orientdb/schema.rb
145
+ - lib/orientdb/sql_query.rb
101
146
  - lib/orientdb/user.rb
102
147
  - lib/orientdb/version.rb
103
148
  - orientdb.gemspec
149
+ - spec/database_spec.rb
150
+ - spec/document_spec.rb
104
151
  - spec/orientdb_spec.rb
105
152
  - spec/spec.opts
106
153
  - spec/spec_helper.rb
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file