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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e08086b85cd83c48b921c9ecc8ea4699831d1f96
4
- data.tar.gz: 9aa1ba1f4777aaac0a9a7043aff17910448c3c0e
3
+ metadata.gz: 93f38ae32096f6d38c40ec8e071aefbea80ba2bb
4
+ data.tar.gz: 2124e3dd8e4db113864df757f1b68fc531b0f5f0
5
5
  SHA512:
6
- metadata.gz: 2cfcbb81078feba7b513eb161d5c1a7f4a9144261360c4a33f4263163ee2ffabee35f7638dc374f7cdedcf78f9770441d5dad95f7b578363919e990ce8f63583
7
- data.tar.gz: 05c0e405329c695da87f967b7d30b14834f3f543a7a6b8d04b9ca6fb8758e6eb30dbf0918a22b037a051e478484bfb86f230c44aea43f588eeb9ea20687f8ad3
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 = if column.respond_to?(:type_cast_for_database)
93
- column.type_cast_for_database(value) # Rails 4.2 and up
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
@@ -3,7 +3,8 @@ module Kasket
3
3
 
4
4
  def self.extended(base)
5
5
  class << base
6
- alias_method_chain :find_by_sql, :kasket
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
- query = sql.to_kasket_query(self, args[1])
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
- arel.to_kasket_query(klass, (binds || bind_values))
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
@@ -1,8 +1,9 @@
1
1
  module Kasket
2
+ VERSION = '4.3.0'
2
3
  class Version
3
- MAJOR = 4
4
- MINOR = 2
5
- PATCH = 1
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
@@ -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
- {:limit => node.value.to_i}
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
- visit(@binds.shift[1])
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, self.last_column)
132
+ @model_class.connection.quote(node)
126
133
  end
127
134
 
128
135
  alias :visit_String :literal
@@ -129,8 +129,11 @@ module Kasket
129
129
  end
130
130
 
131
131
  class << model_class
132
- alias_method_chain :transaction, :kasket_disabled
133
- alias_method_chain :update_counters, :kasket_clearing
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.2.1
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-01-06 00:00:00.000000000 Z
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: '4.3'
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: '4.3'
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: minitest
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-rg
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: timecop
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: test_after_commit
133
+ name: timecop
134
134
  requirement: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ">="