activerecord-not_nil 0.0.0 → 0.0.2

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
  SHA256:
3
- metadata.gz: 893da70de774dc8beac789e291cf0367f76478f27b5d706bb4298aa77dbe23cd
4
- data.tar.gz: 5412e47deeb5aa385878b987bd20460573cc3912e8f19a26bc2e9cb2f1980379
3
+ metadata.gz: 3cfd9baad29246455c854ab457c5fe3f7a1af1721f5fe66f0894f3f2b4f5b0e3
4
+ data.tar.gz: 2b6c5da6ca453551ccabb613f5966a5e4c1ff21e673df8dc9a6a1985c2ed1015
5
5
  SHA512:
6
- metadata.gz: 733b09d831ea988a6a2f3f6548d894c798f3ebfb790c582ca7c5027278649e1455bdbccc29335f5c2c16e71bec215b402eb82ec4655e2da7da108446f8741e17
7
- data.tar.gz: 78ebe4a4fbdc258625a2ae50debf6746675860451388cee26cbd21e23e57e582aab9820829fe96184fc11f5aef420e5eb1ab6829324b2e1b096dc62d98d3736b
6
+ metadata.gz: 5710661d1a73e6e02485981145bd51c1ea145cb4bd84503921daffc88f316e7171fc6664e9b96eeb9ebd5fc4c8e4f84b80747335787019524d58bbe8ba17cf2d
7
+ data.tar.gz: c57ead36b09896eeeab2db1411e7a9ed86cd6fb20f8274e521726ef4b82c5267fa58eec8ff6c42702f227df2fc363899ee2699e5ea4d6870df40220f7ff943b4
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveRecord
4
+ module ConnectionAdapters
5
+ module Quoting
6
+ alias origin_type_cast type_cast
7
+ def type_cast(value)
8
+ raise ArgumentError, 'Cannot assign not_nil as a value' if value.is_a?(::NotNilClass)
9
+
10
+ origin_type_cast(value)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Arel
4
+ module Visitors
5
+ # Module to override Arel::Visitors::ToSql#visit_Arel_Nodes_Equality
6
+ module NotNilOverride
7
+ def visit_Arel_Nodes_Equality(o, collector) # rubocop:disable Naming/MethodName
8
+ return super if o.right.is_a?(Arel::Attributes::Attribute)
9
+ return super if o.right.is_a?(Arel::Nodes::NamedFunction)
10
+ return super unless o.right.value.is_a?(::NotNilClass)
11
+
12
+ collector = visit o.left, collector
13
+ collector << ' IS NOT NULL'
14
+ end
15
+ end
16
+
17
+ class ToSql < Arel::Visitors::Visitor
18
+ prepend NotNilOverride
19
+ end
20
+ end
21
+ end
@@ -1,7 +1,10 @@
1
+ # rubocop:disable Naming/FileName
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'active_record'
4
5
  require 'not_niller'
5
6
 
6
- require 'activerecord-not_nil/activerecord/connection_adapters/quoting'
7
- require 'activerecord-not_nil/arel/visitors/to_sql'
7
+ require_relative 'activerecord-not_nil/active_record/connection_adapters/quoting'
8
+ require_relative 'activerecord-not_nil/arel/visitors/to_sql'
9
+
10
+ # rubocop:enable Naming/FileName
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-not_nil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Payt devs
@@ -52,6 +52,8 @@ extensions: []
52
52
  extra_rdoc_files: []
53
53
  files:
54
54
  - lib/activerecord-not_nil.rb
55
+ - lib/activerecord-not_nil/active_record/connection_adapters/quoting.rb
56
+ - lib/activerecord-not_nil/arel/visitors/to_sql.rb
55
57
  homepage: https://github.com/payt/activerecord-not_nil
56
58
  licenses:
57
59
  - MIT