active_enquo 0.1.0 → 0.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
  SHA256:
3
- metadata.gz: b740bd6f520103011cd211cfa06784c088de442c675b39a6730a3bd03b45b6fe
4
- data.tar.gz: 3511374723b0718079b71dd0f2641c5306de18cf3d1108714dcf43776ab56d4f
3
+ metadata.gz: 9c0103ba2927e84bdc1c6fda73e7103ffe090316fac200d7d429a95e4f4632f0
4
+ data.tar.gz: 11d5f5d66a753fe18f79f198c7b243d9fa3b194929c6e2e63c6f4a93ce25ed06
5
5
  SHA512:
6
- metadata.gz: aade149dd6f25589426c2b5f7a642ce1d86d52a30ac68479a5a704886a8bb9a642cb90fa37d9639fcde0e296fc5eec22d4696ee1d221d4215c61644dc431d385
7
- data.tar.gz: efecd652bfea10fd4cd0563c1c4dfacddccb3cd6c0d5aa45d6578cbecf3229a5b33ea14fa2000f5021fd69d82ebe19b2fb3d1ddeff3d05845154c0c3a8a6e4f3
6
+ metadata.gz: 693f14e986cca46c810505664833cd4e211c170cd287d43fbbb429ba7a5ef0e830404d71597a314e97cdde4fe911edf14066f9af446510ce82c05b3e73507c6d
7
+ data.tar.gz: afba7f08679b1b45f6484f9a3bf1b870fc2a824edec9b8b33483f40b7661c940f55d8135992885011d25a4c57d6c02ecb5f069ebde0bed0d59daec85d6ad301d
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.6"
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,8 @@ 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
91
+ m.register_type "enquo_text", ActiveEnquo::Type::Text.new
88
92
 
89
93
  super
90
94
  end
@@ -105,6 +109,47 @@ module ActiveEnquo
105
109
  field.decrypt_i64(value, context)
106
110
  end
107
111
  end
112
+
113
+ class Date < Type
114
+ def type
115
+ :enquo_date
116
+ end
117
+
118
+ def encrypt(value, context, field, safety: true, no_query: false)
119
+ value = cast_to_date(value)
120
+ field.encrypt_date(value, context, safety: safety, no_query: no_query)
121
+ end
122
+
123
+ def decrypt(value, context, field)
124
+ field.decrypt_date(value, context)
125
+ end
126
+
127
+ private
128
+
129
+ def cast_to_date(value)
130
+ if Date === value
131
+ value
132
+ elsif value.respond_to?(:to_date)
133
+ value.to_date
134
+ else
135
+ Time.parse(value.to_s).to_date
136
+ end
137
+ end
138
+ end
139
+
140
+ class Text < Type
141
+ def type
142
+ :enquo_text
143
+ end
144
+
145
+ def encrypt(value, context, field, safety: true, no_query: false)
146
+ field.encrypt_text(value, context, safety: safety, no_query: no_query)
147
+ end
148
+
149
+ def decrypt(value, context, field)
150
+ field.decrypt_text(value, context)
151
+ end
152
+ end
108
153
  end
109
154
  end
110
155
 
@@ -116,5 +161,7 @@ ActiveSupport.on_load(:active_record) do
116
161
 
117
162
  unless ActiveRecord::VERSION::MAJOR == 7
118
163
  ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[:enquo_bigint] = {}
164
+ ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[:enquo_date] = {}
165
+ ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[:enquo_text] = {}
119
166
  end
120
167
  end
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.3.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-07 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.6'
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.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement