believer 0.2.18 → 0.2.19
Sign up to get free protection for your applications and to get access to all the features.
data/lib/believer/cql_helper.rb
CHANGED
@@ -11,16 +11,12 @@ module Believer
|
|
11
11
|
# @param value [Object] the value to convert
|
12
12
|
def to_cql_literal(value)
|
13
13
|
return 'NULL' if value.nil?
|
14
|
-
return "'#{value}'" if value.is_a?(String)
|
14
|
+
return "'#{escape_special_chars(value)}'" if value.is_a?(String)
|
15
15
|
return "'#{value}'" if value.is_a?(Symbol)
|
16
16
|
return "#{value}" if value.is_a?(Numeric)
|
17
17
|
return "'#{value.strftime(CQL_TIMESTAMP_FORMAT)}'" if value.is_a?(Time) || value.is_a?(DateTime)
|
18
18
|
#return "#{value.to_i * 1000}" if value.is_a?(Time) || value.is_a?(DateTime)
|
19
19
|
|
20
|
-
if value.is_a?(Counter)
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
20
|
# Set
|
25
21
|
if value.is_a?(Set)
|
26
22
|
return "{#{value.map {|v| to_cql_literal(v)}.join(',')}}"
|
@@ -45,11 +41,12 @@ module Believer
|
|
45
41
|
v = properties[k]
|
46
42
|
v_s = nil
|
47
43
|
if v.is_a?(Hash)
|
44
|
+
v.each {|k, val| v[k] = escape_special_chars(val) if val.is_a?(String)}
|
48
45
|
v_s = v.to_json.gsub(/\"/) { |m| "'" }
|
49
46
|
elsif v.is_a?(String)
|
50
|
-
v_s = "'#{v}'"
|
47
|
+
v_s = "'#{escape_special_chars(v)}'"
|
51
48
|
else
|
52
|
-
v_s = v.to_s
|
49
|
+
v_s = escape_special_chars(v.to_s)
|
53
50
|
end
|
54
51
|
"#{k} = #{v_s}"
|
55
52
|
}.join("\nAND ")
|
@@ -57,5 +54,9 @@ module Believer
|
|
57
54
|
props_s
|
58
55
|
end
|
59
56
|
|
57
|
+
def escape_special_chars(v)
|
58
|
+
v.gsub("'", "''")
|
59
|
+
end
|
60
|
+
|
60
61
|
end
|
61
62
|
end
|
@@ -94,7 +94,7 @@ module Believer
|
|
94
94
|
def load_config_from_file(config_file)
|
95
95
|
return nil if config_file.nil?
|
96
96
|
cfg = HashWithIndifferentAccess.new(YAML::load(File.open(config_file.to_s)))
|
97
|
-
puts "Loaded config from file #{config_file.to_s}: #{cfg}"
|
97
|
+
#puts "Loaded config from file #{config_file.to_s}: #{cfg}"
|
98
98
|
cfg
|
99
99
|
end
|
100
100
|
|
data/lib/believer/version.rb
CHANGED
data/spec/believer/query_spec.rb
CHANGED
@@ -24,6 +24,12 @@ describe Believer::Query do
|
|
24
24
|
|
25
25
|
end
|
26
26
|
|
27
|
+
it 'should escape string literals' do
|
28
|
+
q = Believer::Query.new(:record_class => Test::Album)
|
29
|
+
q = q.select(:name).where(:name => "'quote!")
|
30
|
+
expect(q.to_cql).to eql "SELECT name FROM albums WHERE name = '''quote!'"
|
31
|
+
end
|
32
|
+
|
27
33
|
it 'create simple statement' do
|
28
34
|
q = Believer::Query.new(:record_class => Test::Album)
|
29
35
|
q = q.select(:name).
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: believer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.19
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-01-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|