orientdb 0.0.14-jruby → 0.0.15-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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.14
1
+ 0.0.15
@@ -1,4 +1,5 @@
1
1
  module OrientDB::SQL
2
+
2
3
  module UtilsMixin
3
4
 
4
5
  def select_single_string(arg)
@@ -19,6 +20,10 @@ module OrientDB::SQL
19
20
  "[" + value.map { |x| quote(x) }.join(", ") + "]"
20
21
  when Regexp
21
22
  quote_regexp(value)
23
+ when OrientDB::SQL::LiteralExpression
24
+ value.to_s
25
+ else
26
+ quote value.to_s
22
27
  end
23
28
  end
24
29
 
@@ -170,6 +175,24 @@ module OrientDB::SQL
170
175
 
171
176
  end
172
177
 
178
+ class LiteralExpression
179
+
180
+ def initialize(value)
181
+ @value = value.to_s
182
+ end
183
+
184
+ def to_s
185
+ @value
186
+ end
187
+
188
+ include Comparable
189
+
190
+ def <=>(other)
191
+ to_s <=> other.to_s
192
+ end
193
+
194
+ end
195
+
173
196
  class ConditionExpression
174
197
 
175
198
  attr_reader :conditions
@@ -213,5 +236,12 @@ module OrientDB::SQL
213
236
  def to_s
214
237
  "#{type} #{parens_conditions_str} "
215
238
  end
239
+
240
+ include Comparable
241
+
242
+ def <=>(other)
243
+ to_s <=> other.to_s
244
+ end
216
245
  end
246
+
217
247
  end
@@ -61,6 +61,10 @@ module OrientDB
61
61
  module ConditionalExtension
62
62
  include OrientDB::SQL::UtilsMixin
63
63
 
64
+ def lit
65
+ OrientDB::SQL::LiteralExpression.new to_s
66
+ end
67
+
64
68
  def like(value)
65
69
  "#{to_s} LIKE #{quote(value)}"
66
70
  end
data/orientdb.gemspec CHANGED
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{orientdb}
8
- s.version = "0.0.14"
8
+ s.version = "0.0.15"
9
9
  s.platform = %q{jruby}
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 1.3.6") if s.respond_to? :required_rubygems_version=
12
12
  s.authors = ["Adrian Madrid"]
13
- s.date = %q{2011-01-25}
13
+ s.date = %q{2011-01-26}
14
14
  s.default_executable = %q{orientdb_console}
15
15
  s.description = %q{Simple JRuby wrapper for the OrientDB.}
16
16
  s.email = ["aemadrid@gmail.com"]
@@ -51,7 +51,6 @@ Gem::Specification.new do |s|
51
51
  "lib/orientdb/sql/insert.rb",
52
52
  "lib/orientdb/sql/query.rb",
53
53
  "lib/orientdb/sql/update.rb",
54
- "lib/orientdb/sql_query.rb",
55
54
  "lib/orientdb/storage.rb",
56
55
  "lib/orientdb/user.rb",
57
56
  "lib/orientdb/version.rb",
@@ -9,14 +9,14 @@ describe "OrientDB" do
9
9
  end
10
10
 
11
11
  it "should create a valid simple table" do
12
- exp_class = "#<OrientDB::OClass:person name=#<orientdb::schematype:string>>"
12
+ exp_class = "#<OrientDB::OClass:person name=STRING>"
13
13
  exp_props = ["#<OrientDB::Propery:name type=string indexed=false mandatory=false not_null=false>"]
14
14
  @person_class.to_s.should == exp_class
15
15
  @person_class.properties.map { |x| x.to_s }.should == exp_props
16
16
  end
17
17
 
18
18
  it "should create a valid simple descendant table" do
19
- exp_class = "#<OrientDB::OClass:customer super=person tab=#<orientdb::schematype:float> name=#<orientdb::schematype:string>>"
19
+ exp_class = "#<OrientDB::OClass:customer super=person tab=FLOAT name=STRING>"
20
20
  exp_props = [
21
21
  "#<OrientDB::Propery:tab type=decimal indexed=false mandatory=false not_null=false>",
22
22
  "#<OrientDB::Propery:name type=string indexed=false mandatory=false not_null=false>"
@@ -26,7 +26,7 @@ describe "OrientDB" do
26
26
  end
27
27
 
28
28
  it "should create a complex table" do
29
- exp_class = "#<OrientDB::OClass:invoice number=#<orientdb::schematype:integer>(idx) customer=#<orientdb::schematype:link> sold_on=#<orientdb::schematype:date> total=#<orientdb::schematype:float> lines=#<orientdb::schematype:linklist>>"
29
+ exp_class = "#<OrientDB::OClass:invoice number=INTEGER(idx) customer=LINK sold_on=DATE total=FLOAT lines=LINKLIST>"
30
30
  exp_props = [
31
31
  "#<OrientDB::Propery:number type=int indexed=true mandatory=true not_null=false>",
32
32
  "#<OrientDB::Propery:customer type=link indexed=false mandatory=false not_null=true>",
data/spec/sql_spec.rb CHANGED
@@ -41,6 +41,13 @@ describe "OrientDB" do
41
41
  OrientDB::SQL::Query.quote(:@size).should == "@size"
42
42
  OrientDB::SQL::Query.quote(:@type).should == "@type"
43
43
  end
44
+
45
+ it "should quote literal_expressions properly" do
46
+ value = OrientDB::SQL::LiteralExpression.new "@this"
47
+ OrientDB::SQL::Query.quote(:@this).should == "@this"
48
+ value = OrientDB::SQL::LiteralExpression.new :@this
49
+ OrientDB::SQL::Query.quote(:@this).should == "@this"
50
+ end
44
51
  end
45
52
 
46
53
  describe "select_single_string" do
@@ -342,6 +349,10 @@ describe "OrientDB" do
342
349
  end
343
350
 
344
351
  describe "Conditional" do
352
+ it "should work" do
353
+ :name.lit.should == OrientDB::SQL::LiteralExpression.new("name")
354
+ end
355
+
345
356
  it "#like should work" do
346
357
  :name.like("test%").should == "name LIKE 'test%'"
347
358
  end
@@ -524,6 +535,10 @@ describe "OrientDB" do
524
535
  end
525
536
 
526
537
  describe "Conditional" do
538
+ it "should work" do
539
+ 'name'.lit.should == OrientDB::SQL::LiteralExpression.new("name")
540
+ end
541
+
527
542
  it "#like should work" do
528
543
  'name'.like("test%").should == "name LIKE 'test%'"
529
544
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: orientdb
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.14
5
+ version: 0.0.15
6
6
  platform: jruby
7
7
  authors:
8
8
  - Adrian Madrid
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-01-25 00:00:00 -07:00
13
+ date: 2011-01-26 00:00:00 -07:00
14
14
  default_executable: orientdb_console
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -77,7 +77,6 @@ files:
77
77
  - lib/orientdb/sql/insert.rb
78
78
  - lib/orientdb/sql/query.rb
79
79
  - lib/orientdb/sql/update.rb
80
- - lib/orientdb/sql_query.rb
81
80
  - lib/orientdb/storage.rb
82
81
  - lib/orientdb/user.rb
83
82
  - lib/orientdb/version.rb
File without changes