orientdb4r 0.4.0 → 0.4.1

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 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: