activerecord-not_nil 0.0.1 → 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: '08d8a27f8b2a4efc4245621db5111cb7277f19cece3b527079e2f288279db3aa'
4
- data.tar.gz: f2a674a41f89ff788a577633a7939c3ee456b74243bacd3eede901852d6feb9e
3
+ metadata.gz: 3cfd9baad29246455c854ab457c5fe3f7a1af1721f5fe66f0894f3f2b4f5b0e3
4
+ data.tar.gz: 2b6c5da6ca453551ccabb613f5966a5e4c1ff21e673df8dc9a6a1985c2ed1015
5
5
  SHA512:
6
- metadata.gz: 915b1856fca4648527dbd50fde7a58d3d1d690102424d3f095cfbad56416503979a6ef8c07cc6588b1496cedab90b60118010da2836053e0e44d42ee1a445ce1
7
- data.tar.gz: '087edd6a1f578e6d7ecf559a1df9e5332d0e7328b6dcd151bdfbaececde9945f82a5de34ee6ddcab5eadfdd7056e5f95b4b2663a5baade634e735f51302e0e37'
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
@@ -4,7 +4,7 @@
4
4
  require 'active_record'
5
5
  require 'not_niller'
6
6
 
7
- require_relative 'activerecord-not_nil/activerecord/connection_adapters/quoting'
7
+ require_relative 'activerecord-not_nil/active_record/connection_adapters/quoting'
8
8
  require_relative 'activerecord-not_nil/arel/visitors/to_sql'
9
9
 
10
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.1
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