daffy_lib 0.1.4 → 0.1.5

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: e42df7142acbd13e877203468339c8c27e84516d44ccc3107fa01f7e5034af05
4
- data.tar.gz: d2da07b7b352615048dc862cc389440cffe860b735fa39b0d17c9f128cb5bd61
3
+ metadata.gz: adf0390e240f1f5b14fffb3ee34fae133d4a5ebf20349cb55c044f9ba8cf8280
4
+ data.tar.gz: 6de10a901c852196f5882f98c6537613b4e7cf44baec34a3394b29f109f7478c
5
5
  SHA512:
6
- metadata.gz: 6ebfe579e41062e8e4eaf6f36f8ff808cbc231f512f77be55c4a043d85f384a372dcb22f22a9cdb8fb8b0d8d5193f2be140839bd260e4102162fa667c8b3f85c
7
- data.tar.gz: 200e8e4df5686ae1fdb7fc1ceb051582f27952e7c940602260ba3076b5b383be29738d32bdb0ee7dc978853b9f8610816cd57de09818b0bedc0b460474fd4087
6
+ metadata.gz: e077042dd373b2f5b7d439661916d15c7302b89a2bd49dbf7a21d3e114eafea3c038cfdf07bd40d3af04aa3ed329b1d1713bb27ac1e314740704799ba119593e
7
+ data.tar.gz: 615f0873b10e714069f7169e8c63e4af0efebbb0a61678bcfe843df9f98da98179e42379dcc1109ad6180342cc70bceedf60e9b7347ba20431fc2235869777b8
data/.circleci/config.yml CHANGED
@@ -4,7 +4,7 @@ jobs:
4
4
  parallelism: 1
5
5
  working_directory: ~/daffy_lib
6
6
  docker:
7
- - image: circleci/ruby:2.6.5
7
+ - image: circleci/ruby:2.7.0
8
8
 
9
9
  steps:
10
10
  - checkout
data/.rubocop.yml CHANGED
@@ -9,7 +9,7 @@ AllCops:
9
9
  - node_modules/**/*
10
10
  - output/**/*
11
11
  - vendor/**/*
12
- TargetRubyVersion: 2.6.5
12
+ TargetRubyVersion: 2.7.0
13
13
  RSpec:
14
14
  Patterns:
15
15
  - _spec.rb
@@ -58,3 +58,12 @@ RSpec/MultipleExpectations:
58
58
 
59
59
  RSpec/ExampleLength:
60
60
  Max: 10
61
+
62
+ Style/HashEachMethods:
63
+ Enabled: true
64
+
65
+ Style/HashTransformKeys:
66
+ Enabled: true
67
+
68
+ Style/HashTransformValues:
69
+ Enabled: true
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- ruby '2.6.5'
3
+ ruby '2.7.0'
4
4
 
5
5
  source "https://rubygems.org"
6
6
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- daffy_lib (0.1.4)
4
+ daffy_lib (0.1.5)
5
5
  porky_lib
6
6
  rails
7
7
  redis
@@ -68,7 +68,7 @@ GEM
68
68
  attr_encrypted (3.1.0)
69
69
  encryptor (~> 3.0.0)
70
70
  aws-eventstream (1.0.3)
71
- aws-partitions (1.274.0)
71
+ aws-partitions (1.275.0)
72
72
  aws-sdk-core (3.90.1)
73
73
  aws-eventstream (~> 1.0, >= 1.0.2)
74
74
  aws-partitions (~> 1, >= 1.239.0)
@@ -91,8 +91,8 @@ GEM
91
91
  json
92
92
  simplecov
93
93
  url
94
- concurrent-ruby (1.1.5)
95
- crass (1.0.5)
94
+ concurrent-ruby (1.1.6)
95
+ crass (1.0.6)
96
96
  diff-lcs (1.3)
97
97
  docile (1.3.2)
98
98
  encryptor (3.0.0)
@@ -105,7 +105,7 @@ GEM
105
105
  ffi (1.12.2)
106
106
  globalid (0.4.2)
107
107
  activesupport (>= 4.2.0)
108
- i18n (1.7.1)
108
+ i18n (1.8.2)
109
109
  concurrent-ruby (~> 1.0)
110
110
  jaro_winkler (1.5.4)
111
111
  jmespath (1.4.0)
@@ -121,7 +121,7 @@ GEM
121
121
  mimemagic (0.3.4)
122
122
  mini_mime (1.0.2)
123
123
  mini_portile2 (2.4.0)
124
- minitest (5.13.0)
124
+ minitest (5.14.0)
125
125
  msgpack (1.3.3)
126
126
  nio4r (2.5.2)
127
127
  nokogiri (1.10.8)
@@ -135,7 +135,7 @@ GEM
135
135
  msgpack
136
136
  rbnacl (= 5.0.0)
137
137
  rbnacl-libsodium
138
- rack (2.0.8)
138
+ rack (2.2.2)
139
139
  rack-test (1.1.0)
140
140
  rack (>= 1.0, < 3)
141
141
  rails (6.0.2.1)
@@ -171,6 +171,7 @@ GEM
171
171
  rbnacl-libsodium (1.0.16)
172
172
  rbnacl (>= 3.0.1)
173
173
  redis (4.1.3)
174
+ rexml (3.2.4)
174
175
  rspec (3.9.0)
175
176
  rspec-core (~> 3.9.0)
176
177
  rspec-expectations (~> 3.9.0)
@@ -196,16 +197,17 @@ GEM
196
197
  rspec-support (3.9.2)
197
198
  rspec_junit_formatter (0.4.1)
198
199
  rspec-core (>= 2, < 4, != 2.12.0)
199
- rubocop (0.79.0)
200
+ rubocop (0.80.0)
200
201
  jaro_winkler (~> 1.5.1)
201
202
  parallel (~> 1.10)
202
203
  parser (>= 2.7.0.1)
203
204
  rainbow (>= 2.2.2, < 4.0)
205
+ rexml
204
206
  ruby-progressbar (~> 1.7)
205
207
  unicode-display_width (>= 1.4.0, < 1.7)
206
208
  rubocop-performance (1.5.2)
207
209
  rubocop (>= 0.71.0)
208
- rubocop-rspec (1.38.0)
210
+ rubocop-rspec (1.38.1)
209
211
  rubocop (>= 0.68.1)
210
212
  rubocop_runner (2.2.0)
211
213
  ruby-progressbar (1.10.1)
@@ -258,7 +260,7 @@ DEPENDENCIES
258
260
  timecop
259
261
 
260
262
  RUBY VERSION
261
- ruby 2.6.5p114
263
+ ruby 2.7.0p0
262
264
 
263
265
  BUNDLED WITH
264
- 2.0.2
266
+ 2.1.4
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![CircleCI](https://circleci.com/gh/Zetatango/daffy_lib.svg?style=svg)](https://circleci.com/gh/Zetatango/daffy_lib) [![codecov](https://codecov.io/gh/Zetatango/daffy_lib/branch/master/graph/badge.svg?token=WxED9350q4)](https://codecov.io/gh/Zetatango/daffy_lib) [![Gem Version](https://badge.fury.io/rb/daffy_lib.svg)](https://badge.fury.io/rb/daffy_lib)
1
+ [![CircleCI](https://circleci.com/gh/Zetatango/daffy_lib.svg?style=svg)](https://circleci.com/gh/Zetatango/daffy_lib) [![codecov](https://codecov.io/gh/Zetatango/daffy_lib/branch/master/graph/badge.svg?token=WxED9350q4)](https://codecov.io/gh/Zetatango/daffy_lib) [![Gem Version](https://badge.fury.io/rb/daffy_lib.svg)](https://badge.fury.io/rb/daffy_lib)
2
2
  # DaffyLib
3
3
 
4
4
  This gem is a caching encryptor which improves performance when encrypting/decrypting large amounts of data. It will keep a plaintext key cached for a given amount of time, as well as provide partitioning to allow entire rows to be encrypted with the same key. Keys are uniquely identified by a pair of a partition guid and an encryption epoch.
@@ -25,7 +25,7 @@ We illustrate usage of this library with an example. Suppose we have classes `U
25
25
 
26
26
  The `User` class will need to `include DaffyLib::PartitionProvider` and implement the method `provider_partition_guid` which returns an identifier, for instance a user's `guid`.
27
27
 
28
- The `User::Attribute` class will need to `include DaffyLib::PartitionProvider` as well as `include DaffyLib::HasEncryptedAttributes`. It will need to declare `partition_provider :user`.
28
+ The `User::Attribute` class will need to `include DaffyLib::PartitionProvider` as well as `include DaffyLib::HasEncryptedAttributes`. It will need to declare `partition_provider :user`.
29
29
 
30
30
  There are default implementations of `generate_partition_guid` which returns the linked `User`'s `guid`, as well as a `generate_encryption_epoch` method which defines the encryption epoch, which are the following.
31
31
 
@@ -52,7 +52,7 @@ attr_encrypted :values, encryptor: ZtCachingEncryptor, encrypt_method: :zt_encry
52
52
  encode: true, partition_guid: proc { |object| object.generate_partition_guid },
53
53
  encryption_epoch: proc { |object| object.generate_encryption_epoch }, expires_in: 5.minutes
54
54
  ```
55
-
55
+
56
56
  where the `expires_in` field denotes how long a plaintext key should be kept in cache.
57
57
 
58
58
  Note further that a class can be its own partition provider; i.e. if `User` itself had encrypted attributes, all the steps above for `User::Attributes` apply, except there is no need to declare `partition_provider`, and the recommended implementation for `generate_partition_guid` is to return (or create) the `guid` of the `User`.
@@ -77,7 +77,33 @@ Finally, once existing records have been populated, it is advisable to perform a
77
77
 
78
78
  Development on this project should occur on separate feature branches and pull requests should be submitted. When submitting a pull request, the pull request comment template should be filled out as much as possible to ensure a quick review and increase the likelihood of the pull request being accepted.
79
79
 
80
+ ### Ruby
81
+
82
+ This application requires:
83
+
84
+ * Ruby version: 2.7.0
85
+
86
+ If you do not have Ruby installed, it is recommended you use ruby-install and chruby to manage Ruby versions.
87
+
88
+ ```bash
89
+ brew install ruby-install chruby
90
+ ruby-install ruby 2.7.0
91
+ ```
92
+
93
+ Add the following lines to ~/.bash_profile:
94
+
95
+ ```bash
96
+ source /usr/local/opt/chruby/share/chruby/chruby.sh
97
+ source /usr/local/opt/chruby/share/chruby/auto.sh
98
+ ```
99
+
100
+ Set Ruby version to 2.7.0:
101
+
102
+ ```bash
103
+ source ~/.bash_profile
104
+ chruby 2.7.0
105
+ ```
106
+
80
107
  ## Contributing
81
108
 
82
109
  Bug reports and pull requests are welcome on GitHub at https://github.com/Zetatango/daffy_lib.
83
-
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DaffyLib
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.5"
5
5
  end
@@ -64,7 +64,7 @@ namespace :db do
64
64
 
65
65
  model_classname.all.each do |record|
66
66
  encrypted_attributes.each do |attribute|
67
- value = record.attributes.with_indifferent_access[attribute.to_sym]
67
+ value = record.send(attribute)
68
68
  record.send("#{attribute}=", value) unless value.blank?
69
69
  end
70
70
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daffy_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benoît Jeaurond, Weiyun Lu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-19 00:00:00.000000000 Z
11
+ date: 2020-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: attr_encrypted
@@ -355,7 +355,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
355
355
  - !ruby/object:Gem::Version
356
356
  version: '0'
357
357
  requirements: []
358
- rubygems_version: 3.0.3
358
+ rubygems_version: 3.1.2
359
359
  signing_key:
360
360
  specification_version: 4
361
361
  summary: A library for caching encryptor