gotime-cassandra_object 4.2.0 → 4.2.2
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.
@@ -30,7 +30,7 @@ module CassandraObject
|
|
30
30
|
|
31
31
|
def to_a
|
32
32
|
statement = [
|
33
|
-
"
|
33
|
+
"SELECT #{select_string} FROM #{klass.column_family}",
|
34
34
|
where_string,
|
35
35
|
limit_string
|
36
36
|
].delete_if(&:blank?) * ' '
|
@@ -52,13 +52,7 @@ module CassandraObject
|
|
52
52
|
wheres = []
|
53
53
|
|
54
54
|
where_values.map do |where_value|
|
55
|
-
|
56
|
-
wheres << where_value
|
57
|
-
elsif where_value.is_a?(Hash)
|
58
|
-
where_value.each do |column, value|
|
59
|
-
wheres << "#{column} = #{value}"
|
60
|
-
end
|
61
|
-
end
|
55
|
+
wheres.concat format_where_statement(where_value)
|
62
56
|
end
|
63
57
|
|
64
58
|
"WHERE #{wheres * ' AND '}"
|
@@ -67,9 +61,34 @@ module CassandraObject
|
|
67
61
|
end
|
68
62
|
end
|
69
63
|
|
64
|
+
def format_where_statement(where_value)
|
65
|
+
if where_value.is_a?(String)
|
66
|
+
[where_value]
|
67
|
+
elsif where_value.is_a?(Hash)
|
68
|
+
where_value.map do |column, value|
|
69
|
+
if value.is_a?(Array)
|
70
|
+
"#{column} IN (#{escape_where_value(value)})"
|
71
|
+
else
|
72
|
+
"#{column} = #{escape_where_value(value)}"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def escape_where_value(value)
|
79
|
+
if value.is_a?(Array)
|
80
|
+
value.map { |v| escape_where_value(v) }.join(",")
|
81
|
+
elsif value.is_a?(String)
|
82
|
+
value = value.gsub("'", "''")
|
83
|
+
"'#{value}'"
|
84
|
+
else
|
85
|
+
value
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
70
89
|
def limit_string
|
71
90
|
if limit_value
|
72
|
-
"
|
91
|
+
"LIMIT #{limit_value}"
|
73
92
|
else
|
74
93
|
""
|
75
94
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
CassandraObject::Base.class_eval do
|
2
|
+
class_attribute :created_records
|
3
|
+
self.created_records = []
|
4
|
+
|
5
|
+
after_create do
|
6
|
+
created_records << self
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.delete_after_test
|
10
|
+
created_records.reject(&:destroyed?).each(&:destroy)
|
11
|
+
created_records.clear
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
module ActiveSupport
|
16
|
+
class TestCase
|
17
|
+
teardown do
|
18
|
+
if CassandraObject::Base.created_records.any?
|
19
|
+
Issue.delete_all
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -3,14 +3,11 @@ require 'minitest/autorun'
|
|
3
3
|
Bundler.require(:default, :test)
|
4
4
|
|
5
5
|
require 'support/connect'
|
6
|
-
|
6
|
+
require 'support/teardown'
|
7
|
+
require 'support/issue'
|
7
8
|
|
8
9
|
module CassandraObject
|
9
10
|
class TestCase < ActiveSupport::TestCase
|
10
|
-
teardown do
|
11
|
-
Issue.delete_all
|
12
|
-
end
|
13
|
-
|
14
11
|
def temp_object(&block)
|
15
12
|
Class.new(CassandraObject::Base) do
|
16
13
|
self.column_family = 'Issues'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gotime-cassandra_object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.2.
|
4
|
+
version: 4.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- test/performance_helper.rb
|
138
138
|
- test/support/connect.rb
|
139
139
|
- test/support/issue.rb
|
140
|
+
- test/support/teardown.rb
|
140
141
|
- test/test_helper.rb
|
141
142
|
- test/unit/active_model_test.rb
|
142
143
|
- test/unit/attribute_methods/definition_test.rb
|