kasket 4.2.1 → 4.3.0
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 +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
|
- - ">="
|