kasket 4.2.1 → 4.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kasket/configuration_mixin.rb +5 -2
- data/lib/kasket/read_mixin.rb +7 -2
- data/lib/kasket/relation_mixin.rb +5 -1
- data/lib/kasket/version.rb +4 -3
- data/lib/kasket/visitor.rb +12 -5
- data/lib/kasket/write_mixin.rb +5 -2
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93f38ae32096f6d38c40ec8e071aefbea80ba2bb
|
4
|
+
data.tar.gz: 2124e3dd8e4db113864df757f1b68fc531b0f5f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 338d55dfd6a71fc39457ab48dfcf9701dec02692973246d4b68cd15ffff6724e3446d0f394e298ece70e009a380c177e19f4d4143d854e9d16a1b0405b54ff90
|
7
|
+
data.tar.gz: fac78ac0b241f55c017cc1300b1cc6d675883312262a3cee5d6edd189eaa609d25d9f12f71856318585fc15163c258798129f30b1194ce1ac4de7371275096a9
|
@@ -89,8 +89,11 @@ module Kasket
|
|
89
89
|
|
90
90
|
def quoted_value_for_column(value, column)
|
91
91
|
if column
|
92
|
-
casted_value =
|
93
|
-
|
92
|
+
casted_value = case
|
93
|
+
when connection.respond_to?(:type_cast_from_column)
|
94
|
+
connection.type_cast_from_column(column, value)
|
95
|
+
when column.respond_to?(:type_cast_for_database)
|
96
|
+
column.type_cast_for_database(value) # Rails 4.2
|
94
97
|
else
|
95
98
|
column.type_cast(value)
|
96
99
|
end
|
data/lib/kasket/read_mixin.rb
CHANGED
@@ -3,7 +3,8 @@ module Kasket
|
|
3
3
|
|
4
4
|
def self.extended(base)
|
5
5
|
class << base
|
6
|
-
|
6
|
+
alias_method :find_by_sql_without_kasket, :find_by_sql
|
7
|
+
alias_method :find_by_sql, :find_by_sql_with_kasket
|
7
8
|
end
|
8
9
|
end
|
9
10
|
|
@@ -12,7 +13,11 @@ module Kasket
|
|
12
13
|
|
13
14
|
if use_kasket?
|
14
15
|
if sql.respond_to?(:to_kasket_query)
|
15
|
-
|
16
|
+
if ActiveRecord::VERSION::MAJOR < 5
|
17
|
+
query = sql.to_kasket_query(self, args[1])
|
18
|
+
else
|
19
|
+
query = sql.to_kasket_query(self, args[1].map(&:value_for_database))
|
20
|
+
end
|
16
21
|
else
|
17
22
|
query = kasket_parser.parse(sanitize_sql(sql))
|
18
23
|
end
|
@@ -2,7 +2,11 @@ module Kasket
|
|
2
2
|
module RelationMixin
|
3
3
|
def to_kasket_query(binds = nil)
|
4
4
|
if arel.is_a?(Arel::SelectManager)
|
5
|
-
|
5
|
+
if ActiveRecord::VERSION::MAJOR < 5
|
6
|
+
arel.to_kasket_query(klass, (binds || bind_values))
|
7
|
+
else
|
8
|
+
arel.to_kasket_query(klass, (@values[:where].binds.map(&:value_for_database) + Array(@values[:limit])))
|
9
|
+
end
|
6
10
|
end
|
7
11
|
rescue TypeError # unsupported object in ast
|
8
12
|
return nil
|
data/lib/kasket/version.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
module Kasket
|
2
|
+
VERSION = '4.3.0'
|
2
3
|
class Version
|
3
|
-
MAJOR =
|
4
|
-
MINOR =
|
5
|
-
PATCH =
|
4
|
+
MAJOR = Kasket::VERSION.split('.')[0]
|
5
|
+
MINOR = Kasket::VERSION.split('.')[1]
|
6
|
+
PATCH = Kasket::VERSION.split('.')[2]
|
6
7
|
STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
|
7
8
|
PROTOCOL = 4
|
8
9
|
end
|
data/lib/kasket/visitor.rb
CHANGED
@@ -45,7 +45,7 @@ module Kasket
|
|
45
45
|
|
46
46
|
def visit_Arel_Nodes_SelectCore(node, *_)
|
47
47
|
return :unsupported if node.groups.any?
|
48
|
-
return :unsupported if node.having
|
48
|
+
return :unsupported if (ActiveRecord::VERSION::MAJOR < 5 ? node.having : node.havings.present?)
|
49
49
|
return :unsupported if node.set_quantifier
|
50
50
|
return :unsupported if (!node.source || node.source.empty?)
|
51
51
|
return :unsupported if node.projections.size != 1
|
@@ -62,7 +62,11 @@ module Kasket
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def visit_Arel_Nodes_Limit(node, *_)
|
65
|
-
|
65
|
+
if ActiveRecord::VERSION::MAJOR < 5
|
66
|
+
{:limit => node.value.to_i}
|
67
|
+
else
|
68
|
+
{:limit => visit(node.value).to_i}
|
69
|
+
end
|
66
70
|
end
|
67
71
|
|
68
72
|
def visit_Arel_Nodes_JoinSource(node, *_)
|
@@ -109,7 +113,11 @@ module Kasket
|
|
109
113
|
end
|
110
114
|
|
111
115
|
def visit_Arel_Nodes_BindParam(x, *_)
|
112
|
-
|
116
|
+
if ActiveRecord::VERSION::MAJOR < 5
|
117
|
+
visit(@binds.shift[1])
|
118
|
+
else
|
119
|
+
visit(@binds.shift)
|
120
|
+
end
|
113
121
|
end
|
114
122
|
|
115
123
|
def visit_Array(node, *_)
|
@@ -120,9 +128,8 @@ module Kasket
|
|
120
128
|
quoted(node.val)
|
121
129
|
end
|
122
130
|
|
123
|
-
#TODO: We are actually not using this?
|
124
131
|
def quoted(node)
|
125
|
-
@model_class.connection.quote(node
|
132
|
+
@model_class.connection.quote(node)
|
126
133
|
end
|
127
134
|
|
128
135
|
alias :visit_String :literal
|
data/lib/kasket/write_mixin.rb
CHANGED
@@ -129,8 +129,11 @@ module Kasket
|
|
129
129
|
end
|
130
130
|
|
131
131
|
class << model_class
|
132
|
-
|
133
|
-
|
132
|
+
alias_method :transaction_without_kasket_disabled, :transaction
|
133
|
+
alias_method :transaction, :transaction_with_kasket_disabled
|
134
|
+
|
135
|
+
alias_method :update_counters_without_kasket_clearing, :update_counters
|
136
|
+
alias_method :update_counters, :update_counters_with_kasket_clearing
|
134
137
|
end
|
135
138
|
end
|
136
139
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kasket
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mick Staugaard
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-02-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
version: '3.2'
|
21
21
|
- - "<"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: '
|
23
|
+
version: '5.1'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
version: '3.2'
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '5.1'
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: rake
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,7 +88,7 @@ dependencies:
|
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
- !ruby/object:Gem::Dependency
|
91
|
-
name:
|
91
|
+
name: bump
|
92
92
|
requirement: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ">="
|
@@ -102,7 +102,7 @@ dependencies:
|
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
|
-
name: minitest
|
105
|
+
name: minitest
|
106
106
|
requirement: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - ">="
|
@@ -116,7 +116,7 @@ dependencies:
|
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
- !ruby/object:Gem::Dependency
|
119
|
-
name:
|
119
|
+
name: minitest-rg
|
120
120
|
requirement: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ">="
|
@@ -130,7 +130,7 @@ dependencies:
|
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
- !ruby/object:Gem::Dependency
|
133
|
-
name:
|
133
|
+
name: timecop
|
134
134
|
requirement: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - ">="
|