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 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
  - - ">="