orientdb4r 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d475ea55280ea01281cefdee2731f1441d141095
4
- data.tar.gz: 59f012f6c7a58d90af9650a9c27a85a691a65c74
3
+ metadata.gz: 837cd8b67b6cae12cd3cbba07a03cfa444c7b4f2
4
+ data.tar.gz: d53bade090415bee1e561c15d90c410a18095635
5
5
  SHA512:
6
- metadata.gz: 2f0fb1f707050138c665237b963d64001b60ffcc460f6c6ded6009d2e2675977d504e225472399ad8ab66863adf54b68fce83df7f3687e2b2cfe3a0a6d98fd31
7
- data.tar.gz: b6b538be7c8c18eb4352bec64be2b33979522f432e0a2e007d6abbb88c8eb3bf1ad654c5c7255c4d9f18f4069422c3967ff2d626b516128fa15ead84d324ae94
6
+ metadata.gz: bc1e3a22f4af160726b1a2fc6d320e08abc1330b544b338f4224c9e4a60c6d4f4fad6ce58877331bf350d9d11b50089c9f89892a837303e44573f78a09bad06e
7
+ data.tar.gz: 9c8f9a858f9d5d88d461bc8edd277290f845cb2c5af9a3f0a0c9298f6c53a8841b9c2cb523437ac3ee05d635cb4cffcef2944dec90cb346b514ca7a30391e5d9
@@ -24,7 +24,7 @@ see Wiki page for more sample at https://github.com/veny/orientdb4r/wiki
24
24
  client.database_exists? :database => DB, :user => 'admin', :password => 'admin'
25
25
  => false
26
26
 
27
- client.create_database :database => DB, :type => :memory, :user => 'root', :password => 'root'
27
+ client.create_database :database => DB, :storage => :memory, :user => 'root', :password => 'root'
28
28
  => false
29
29
 
30
30
  client.connect :database => DB, :user => 'admin', :password => 'admin'
@@ -68,6 +68,9 @@ module Orientdb4r
68
68
  # Creates a new database.
69
69
  # You can provide an additional authentication to the server with 'database.create' resource
70
70
  # or the current one will be used.
71
+ # *options
72
+ # *storage - 'memory' (by default) or 'local'
73
+ # *type - 'document' (by default) or 'graph'
71
74
  def create_database(options)
72
75
  raise NotImplementedError, 'this should be overridden by concrete client'
73
76
  end
@@ -240,7 +243,7 @@ module Orientdb4r
240
243
  raise ArgumentError, "property name is blank" if blank?(property)
241
244
  opt_pattern = {
242
245
  :mandatory => :optional , :notnull => :optional, :min => :optional, :max => :optional,
243
- :regexp => :optional, :custom => :optional, :linked_class => :optional
246
+ :readonly => :optional, :linked_class => :optional
244
247
  }
245
248
  verify_options(options, opt_pattern)
246
249
 
@@ -148,12 +148,13 @@ module Orientdb4r
148
148
 
149
149
  def create_database(options) #:nodoc:
150
150
  options_pattern = {
151
- :database => :mandatory, :type => :memory,
151
+ :database => :mandatory, :storage => :memory, :type => :document,
152
152
  :user => :optional, :password => :optional
153
153
  }
154
154
  verify_and_sanitize_options(options, options_pattern)
155
+ verify_options(options.select {|k,v| k === :storage or k === :type}, {:storage => [:memory, :local], :type => [:document, :graph]})
155
156
 
156
- params = { :method => :post, :uri => "database/#{options[:database]}/#{options[:type].to_s}" }
157
+ params = { :method => :post, :uri => "database/#{options[:database]}/#{options[:storage].to_s}/#{options[:type].to_s}" }
157
158
  params[:no_session] = true # out of existing session which represents an already done authentication
158
159
 
159
160
  # additional authentication allowed, overriden in 'call_server' if not defined
@@ -98,6 +98,12 @@ module Orientdb4r
98
98
  get_mandatory_attribute :notNull
99
99
  end
100
100
 
101
+ ###
102
+ # Gets the 'read-only' flag.
103
+ def read_only
104
+ get_mandatory_attribute :readonly
105
+ end
106
+
101
107
  ###
102
108
  # Gets linked class if the property is a link.
103
109
  def linked_class
@@ -2,6 +2,7 @@ module Orientdb4r
2
2
 
3
3
  # Version history.
4
4
  VERSION_HISTORY = [
5
+ ['0.4.1', '2013-09-03', "Enh #24 (read-only class), #26 (type of new database), #27 (license in gemspec)"],
5
6
  ['0.4.0', '2013-08-14', "Closed gap between this driver and OrientDB v1.4.0+; Enh #20, BF #25"],
6
7
  ['0.3.3', '2012-12-16', "Enh #18 ('abstract' option into creating a new class), Enh #19 (GET - List Databases)"],
7
8
  ['0.3.2', '2012-11-02', "Enh #13 (User-Agent), Enh #16 (configurable Recover Time in Load Balancing)"],
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.require_paths = ['lib']
29
29
  s.rubygems_version = %q{1.3.7}
30
30
  s.summary = %q{Ruby binding for Orient DB.}
31
+ s.license = 'Apache License, v2.0'
31
32
 
32
33
  s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
33
34
  # s.add_development_dependency(%q<json>, ["~> 1.5.1"])
@@ -67,6 +67,10 @@ class TestDatabase < Test::Unit::TestCase
67
67
  ###
68
68
  # CREATE DATABASE
69
69
  def test_create_database
70
+ # bad options
71
+ assert_raise ArgumentError do @client.create_database(:database => 'UniT', :storage => :foo); end
72
+ assert_raise ArgumentError do @client.create_database(:database => 'UniT', :type => :foo); end
73
+
70
74
  assert_nothing_thrown do
71
75
  @client.create_database :database => 'UniT', :user => 'root', :password => 'root'
72
76
  end
@@ -88,6 +92,12 @@ class TestDatabase < Test::Unit::TestCase
88
92
  @client.connect :database => 'UniT', :user => 'admin', :password => 'admin'
89
93
  end
90
94
  @client.delete_database({:database => 'UniT', :user => 'root', :password => 'root'})
95
+
96
+ # create non-default DB: storage=local;type=graph
97
+ assert_nothing_thrown do
98
+ @client.create_database :database => 'UniT', :user => 'root', :password => 'root', :storage => :local, :type => :graph
99
+ @client.delete_database :database => 'UniT', :user => 'root', :password => 'root'
100
+ end
91
101
  end
92
102
 
93
103
 
@@ -110,7 +110,6 @@ class TestDdo < Test::Unit::TestCase
110
110
  assert_raise Orientdb4r::NotFoundError do @client.get_class(CLASS); end # no info more
111
111
  # the class is not visible in class list delivered by connect
112
112
  db_info = @client.get_database
113
- puts db_info['classes'].class
114
113
  assert db_info['classes'].select { |i| i.name == CLASS }.empty?
115
114
 
116
115
  # CLASS extends super_class
@@ -163,7 +162,7 @@ puts db_info['classes'].class
163
162
  assert_nothing_thrown do
164
163
  @client.create_class(CLASS) do |c|
165
164
  c.property 'prop1', :integer
166
- c.property 'prop2', :string, :mandatory => true, :notnull => true, :min => 1, :max => 99
165
+ c.property 'prop2', :string, :mandatory => true, :notnull => true, :readonly => true, :min => 1, :max => 99
167
166
  c.link 'user', :linkset, 'OUser', :mandatory => true
168
167
  end
169
168
  end
@@ -175,6 +174,7 @@ puts db_info['classes'].class
175
174
  assert_equal 'INTEGER', prop1.type
176
175
  assert !prop1.mandatory
177
176
  assert !prop1.not_null
177
+ assert !prop1.read_only
178
178
  assert_nil prop1.min
179
179
  assert_nil prop1.max
180
180
  assert_nil prop1.linked_class
@@ -183,6 +183,7 @@ puts db_info['classes'].class
183
183
  assert_equal 'STRING', prop2.type
184
184
  assert prop2.mandatory
185
185
  assert prop2.not_null
186
+ assert prop2.read_only
186
187
  assert_equal '1', prop2.min
187
188
  assert_equal '99', prop2.max
188
189
  assert_nil prop2.linked_class
@@ -191,6 +192,7 @@ puts db_info['classes'].class
191
192
  assert_equal 'LINKSET', user.type
192
193
  assert user.mandatory
193
194
  assert !user.not_null
195
+ assert !user.read_only
194
196
  assert_nil user.min
195
197
  assert_nil user.max
196
198
  assert_equal 'OUser', user.linked_class
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orientdb4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vaclav Sykora
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-14 00:00:00.000000000 Z
11
+ date: 2013-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -71,7 +71,8 @@ files:
71
71
  - test/test_loadbalancing.rb
72
72
  - test/test_utils.rb
73
73
  homepage: http://github.com/veny/orientdb4r
74
- licenses: []
74
+ licenses:
75
+ - Apache License, v2.0
75
76
  metadata: {}
76
77
  post_install_message:
77
78
  rdoc_options: