datagrid 2.0.7 → 2.0.8
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/CHANGELOG.md +16 -0
- data/lib/datagrid/drivers/active_record.rb +25 -15
- data/lib/datagrid/filters/base_filter.rb +1 -1
- data/lib/datagrid/filters/date_filter.rb +1 -1
- data/lib/datagrid/version.rb +1 -1
- metadata +3 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f5ac6077bea5b3ee95001a94f7c862a2430dec10d5d35602ac763ad748b2bd6f
|
|
4
|
+
data.tar.gz: 86a7e62eebc8044e215708ce2aa29f63955e5c7c0635a4e48e1e41f35bffc291
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3f695cc908307c31ae745621b6afe99ef86422b685549d3084e9b5610c7420eea8c0de9318a25849f0e0042bdc0c95d11b6163ebf0d01ea1b4d62d6de8bd2b81
|
|
7
|
+
data.tar.gz: 3fe0c0cde94487679ec67ba563b8668f26fa4f977700a25ae58c35a1908bdc73d1558b83a4593eaaf51810844baa26e99e834f7a280edae01ad55f6bc83c3051
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.0.8]
|
|
4
|
+
|
|
5
|
+
* Rescue StatementInvalid when guessing column type from a query
|
|
6
|
+
* Prevent typecasting of date into timestamp when `:date` filter has a block
|
|
7
|
+
|
|
8
|
+
``` ruby
|
|
9
|
+
class MyGrid < Datagrid::Base
|
|
10
|
+
scope { User }
|
|
11
|
+
|
|
12
|
+
filter(:created_at, :date) do |scope, value|
|
|
13
|
+
value.is_a?(Date) # => true
|
|
14
|
+
scope.joins(:registration).where(registrations: { registration_date: value })
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
```
|
|
18
|
+
|
|
3
19
|
## [2.0.7]
|
|
4
20
|
|
|
5
21
|
* Raise `Datagrid::ConfigurationError` when column or filter name
|
|
@@ -86,22 +86,32 @@ module Datagrid
|
|
|
86
86
|
scope.where("#{field} #{contains_predicate} ?", "%#{value}%")
|
|
87
87
|
end
|
|
88
88
|
|
|
89
|
+
def builtin_type(scope, field)
|
|
90
|
+
if scope_has_column?(scope, field)
|
|
91
|
+
scope.columns_hash[field.to_s].type
|
|
92
|
+
else
|
|
93
|
+
begin
|
|
94
|
+
scope.connection.select_all(
|
|
95
|
+
scope.unscope(:select, :order).select(field => "custom_field").limit(0).arel
|
|
96
|
+
).column_types['custom_field']&.type
|
|
97
|
+
rescue ActiveRecord::StatementInvalid
|
|
98
|
+
nil
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
89
103
|
def normalized_column_type(scope, field)
|
|
90
|
-
builtin_type =
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
%i[datetime timestamp timestamptz] => :timestamp,
|
|
102
|
-
[:boolean] => :boolean,
|
|
103
|
-
}.each do |keys, value|
|
|
104
|
-
return value if keys.include?(builtin_type)
|
|
104
|
+
if builtin_type = builtin_type(scope, field)
|
|
105
|
+
{
|
|
106
|
+
%i[string text time binary] => :string,
|
|
107
|
+
%i[integer primary_key] => :integer,
|
|
108
|
+
%i[float decimal] => :float,
|
|
109
|
+
[:date] => :date,
|
|
110
|
+
%i[datetime timestamp timestamptz] => :timestamp,
|
|
111
|
+
[:boolean] => :boolean,
|
|
112
|
+
}.each do |keys, value|
|
|
113
|
+
return value if keys.include?(builtin_type)
|
|
114
|
+
end
|
|
105
115
|
end
|
|
106
116
|
nil
|
|
107
117
|
end
|
|
@@ -12,7 +12,7 @@ module Datagrid
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def apply(grid_object, scope, value)
|
|
15
|
-
if !dummy? && grid_object.driver.timestamp_column?(scope, name)
|
|
15
|
+
if !dummy? && !block && grid_object.driver.timestamp_column?(scope, name)
|
|
16
16
|
value = Datagrid::Utils.format_date_as_timestamp(value)
|
|
17
17
|
end
|
|
18
18
|
super
|
data/lib/datagrid/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: datagrid
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Bogdan Gusiev
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: railties
|
|
@@ -98,7 +97,6 @@ metadata:
|
|
|
98
97
|
changelog_uri: https://github.com/bogdan/datagrid/blob/main/CHANGELOG.md
|
|
99
98
|
source_code_uri: https://github.com/bogdan/datagrid
|
|
100
99
|
rubygems_mfa_required: 'true'
|
|
101
|
-
post_install_message:
|
|
102
100
|
rdoc_options: []
|
|
103
101
|
require_paths:
|
|
104
102
|
- lib
|
|
@@ -113,8 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
113
111
|
- !ruby/object:Gem::Version
|
|
114
112
|
version: '0'
|
|
115
113
|
requirements: []
|
|
116
|
-
rubygems_version: 3.
|
|
117
|
-
signing_key:
|
|
114
|
+
rubygems_version: 3.6.7
|
|
118
115
|
specification_version: 4
|
|
119
116
|
summary: Library that provides DSL to present table like data
|
|
120
117
|
test_files: []
|