active_enquo 0.1.0 → 0.2.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
  SHA256:
3
- metadata.gz: b740bd6f520103011cd211cfa06784c088de442c675b39a6730a3bd03b45b6fe
4
- data.tar.gz: 3511374723b0718079b71dd0f2641c5306de18cf3d1108714dcf43776ab56d4f
3
+ metadata.gz: fc6de3e861f5cd9e32b59bcc95042fd67fe0302433ca390aca51dcc7d2073b53
4
+ data.tar.gz: 79735074ab96ccaa1dc31384d313b075ced36630b8253276f1a393ce433ae090
5
5
  SHA512:
6
- metadata.gz: aade149dd6f25589426c2b5f7a642ce1d86d52a30ac68479a5a704886a8bb9a642cb90fa37d9639fcde0e296fc5eec22d4696ee1d221d4215c61644dc431d385
7
- data.tar.gz: efecd652bfea10fd4cd0563c1c4dfacddccb3cd6c0d5aa45d6578cbecf3229a5b33ea14fa2000f5021fd69d82ebe19b2fb3d1ddeff3d05845154c0c3a8a6e4f3
6
+ metadata.gz: ec344ac14ee119cb38f1718f22b4f45d34fbccf20917196c47c3cdcd90ead5c050cab422899bdceca5a4fb6c8cd270e058815374b9504698bc1dbb67383ec101
7
+ data.tar.gz: 6e127eb2ba8a7a027191fe83827a0af663f82f760e3364ffc025b650a3d58ab0ba1f1897f9bd667373f7ad9e103a835941437473e5c01c51ac9f387707fa7676
data/active_enquo.gemspec CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
27
27
 
28
28
  s.required_ruby_version = ">= 2.7.0"
29
29
 
30
- s.add_runtime_dependency "enquo-core", "~> 0.3"
30
+ s.add_runtime_dependency "enquo-core", "~> 0.4"
31
31
  s.add_runtime_dependency "activerecord", ">= 6"
32
32
 
33
33
  s.add_development_dependency "bundler"
data/lib/active_enquo.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  require "active_record/connection_adapters/postgresql_adapter"
2
2
  require "active_support/lazy_load_hooks"
3
3
 
4
+ require "date"
4
5
  require "enquo"
6
+ require "time"
5
7
 
6
8
  module ActiveEnquo
7
9
  def self.root_key=(k)
@@ -85,6 +87,7 @@ module ActiveEnquo
85
87
  module ConnectionAdapter
86
88
  def initialize_type_map(m = type_map)
87
89
  m.register_type "enquo_bigint", ActiveEnquo::Type::Bigint.new
90
+ m.register_type "enquo_date", ActiveEnquo::Type::Date.new
88
91
 
89
92
  super
90
93
  end
@@ -105,6 +108,33 @@ module ActiveEnquo
105
108
  field.decrypt_i64(value, context)
106
109
  end
107
110
  end
111
+
112
+ class Date < Type
113
+ def type
114
+ :enquo_date
115
+ end
116
+
117
+ def encrypt(value, context, field, safety: true, no_query: false)
118
+ value = cast_to_date(value)
119
+ field.encrypt_date(value, context, safety: safety, no_query: no_query)
120
+ end
121
+
122
+ def decrypt(value, context, field)
123
+ field.decrypt_date(value, context)
124
+ end
125
+
126
+ private
127
+
128
+ def cast_to_date(value)
129
+ if Date === value
130
+ value
131
+ elsif value.respond_to?(:to_date)
132
+ value.to_date
133
+ else
134
+ Time.parse(value.to_s).to_date
135
+ end
136
+ end
137
+ end
108
138
  end
109
139
  end
110
140
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_enquo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Palmer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-03 00:00:00.000000000 Z
11
+ date: 2022-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: enquo-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.3'
19
+ version: '0.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.3'
26
+ version: '0.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement