ff1 1.2.4 → 1.2.6

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: 8bfddb48c4bbe23ccf35389b17907b81197ead09b9ce0615ef11656eb53bdca0
4
- data.tar.gz: b214417aadd4146884cf7d7aba473d4cb05f89e7109d9f3fa54af002db736e78
3
+ metadata.gz: '08a90d97f68acff2dc2a91b37b171d0f9df02cf57d4c754cf9cafd0f4bc0ac99'
4
+ data.tar.gz: a36f31971be3e026ed3b593958c70cbfced3e3075c25a905798bba08a93b709e
5
5
  SHA512:
6
- metadata.gz: e82d9a62d5ad24acfa14c9bcaaaf4a5a5eb17780a73ba813d1361faf894ea23c02b13fbe4562620963abf36d8f51d8de5828dd52365859380acdc4a7ecbc24f4
7
- data.tar.gz: dc546acd72fc9d0ba494b07db818d2d5d975d631a5ebb8eb9a40073b22cd0002c82539d542b0a3c73afba988eb87d0c1c362748361dbd373bae85efedc6c3a3d
6
+ metadata.gz: c091310e5b8cb9f79fa1067f1a597f9f6c8b0cb19379e72d9349287ec76644228aabb9f5b7de0c4f943e8aacee584c66070374d58e758c0d8fefe52acabb2e84
7
+ data.tar.gz: c2483bc35f1d6bbb38cf79ab8b9813a1e2d0ef827655c19da1a77604fa1a2c4478d7af6cc79a1b479bc42a8b333f0a2ba101ffe0fb097d123691d52602a018d3
data/lib/ff1/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module FF1
4
4
  # Current version of the FF1 gem
5
- VERSION = '1.2.4'
5
+ VERSION = '1.2.6'
6
6
  end
@@ -16,25 +16,25 @@ module Ff1
16
16
  include Rails::Generators::Actions
17
17
  source_root File.expand_path('templates', __dir__)
18
18
 
19
- argument :models, type: :array, default: [], banner: "model1 model2"
20
-
19
+ argument :models, type: :array, default: [], banner: 'model1 model2'
20
+
21
21
  class_option :deleted_at_column, type: :string, default: 'deleted_at',
22
- desc: 'Name of the deleted_at timestamp column'
23
-
22
+ desc: 'Name of the deleted_at timestamp column'
23
+
24
24
  class_option :ff1_deleted_column, type: :string, default: 'ff1_deleted',
25
- desc: 'Name of the FF1 deleted boolean column'
26
-
25
+ desc: 'Name of the FF1 deleted boolean column'
26
+
27
27
  class_option :add_indexes, type: :boolean, default: true,
28
- desc: 'Add database indexes for performance'
28
+ desc: 'Add database indexes for performance'
29
29
 
30
30
  # Required for Rails::Generators::Migration
31
- def self.next_migration_number(path)
32
- Time.now.strftime("%Y%m%d%H%M%S")
31
+ def self.next_migration_number(_path)
32
+ Time.now.strftime('%Y%m%d%H%M%S')
33
33
  end
34
34
 
35
35
  def generate_migration
36
36
  if models.empty?
37
- say "Generating FF1 configuration initializer..."
37
+ say 'Generating FF1 configuration initializer...'
38
38
  generate_initializer
39
39
  else
40
40
  models.each do |model_name|
@@ -47,12 +47,12 @@ module Ff1
47
47
 
48
48
  def generate_initializer
49
49
  template 'initializer.rb', 'config/initializers/ff1.rb'
50
- say "FF1 initializer created at config/initializers/ff1.rb", :green
51
- say ""
52
- say "Next steps:", :blue
53
- say "1. Set your encryption key in the initializer"
54
- say "2. Run: rails generate ff1:install ModelName for each model you want to enable"
55
- say "3. Run: rails db:migrate"
50
+ say 'FF1 initializer created at config/initializers/ff1.rb', :green
51
+ say ''
52
+ say 'Next steps:', :blue
53
+ say '1. Set your encryption key in the initializer'
54
+ say '2. Run: rails generate ff1:install ModelName for each model you want to enable'
55
+ say '3. Run: rails db:migrate'
56
56
  end
57
57
 
58
58
  def generate_model_migration(model_name)
@@ -70,19 +70,19 @@ module Ff1
70
70
 
71
71
  # Generate migration file
72
72
  migration_template 'migration.rb.erb',
73
- "db/migrate/#{timestamp}_#{migration_name}.rb",
74
- migration_class: migration_class_name,
75
- table_name: table_name,
76
- deleted_at_column: deleted_at_column,
77
- ff1_deleted_column: ff1_deleted_column,
78
- add_indexes: add_indexes?
73
+ "db/migrate/#{timestamp}_#{migration_name}.rb",
74
+ migration_class_name: migration_class_name,
75
+ table_name: table_name,
76
+ deleted_at_column: deleted_at_column,
77
+ ff1_deleted_column: ff1_deleted_column,
78
+ add_indexes: add_indexes?
79
79
 
80
80
  say "Migration created for #{model_class_name}", :green
81
81
  say "Run 'rails db:migrate' to apply the changes", :blue
82
82
  end
83
83
 
84
84
  def timestamp
85
- Time.now.strftime("%Y%m%d%H%M%S")
85
+ Time.now.strftime('%Y%m%d%H%M%S')
86
86
  end
87
87
 
88
88
  def deleted_at_column
@@ -98,4 +98,4 @@ module Ff1
98
98
  end
99
99
  end
100
100
  end
101
- end
101
+ end
@@ -5,13 +5,13 @@ FF1::ActiveRecord.configure do |config|
5
5
  # Global encryption key - REQUIRED
6
6
  # Should be 16, 24, or 32 bytes for AES-128/192/256
7
7
  # Store securely using Rails credentials or environment variables
8
- #
8
+ #
9
9
  # Example using Rails credentials:
10
10
  # config.global_key = Rails.application.credentials.ff1_encryption_key
11
- #
11
+ #
12
12
  # Example using environment variable:
13
13
  # config.global_key = ENV['FF1_ENCRYPTION_KEY']&.b
14
- #
14
+ #
15
15
  # For development/testing only (DO NOT use in production):
16
16
  config.global_key = SecureRandom.bytes(32) if Rails.env.development? || Rails.env.test?
17
17
 
@@ -23,20 +23,16 @@ FF1::ActiveRecord.configure do |config|
23
23
  # Column names for soft delete functionality
24
24
  config.deleted_at_column = :deleted_at
25
25
  config.ff1_deleted_column = :ff1_deleted
26
-
27
- # Hide soft-deleted records from default queries (default: true)
28
- # Set to false to include soft-deleted records in queries by default
29
- config.hide_deleted_by_default = true
30
26
  end
31
27
 
32
28
  # Example model integration:
33
29
  #
34
30
  # class User < ApplicationRecord
35
31
  # include FF1::ActiveRecord
36
- #
32
+ #
37
33
  # # Encrypt email and phone with reversible encryption
38
34
  # ff1_encrypt :email, :phone, mode: :reversible
39
- #
35
+ #
40
36
  # # Encrypt SSN with irreversible encryption
41
37
  # ff1_encrypt :ssn, mode: :irreversible
42
38
  # end
@@ -45,11 +41,11 @@ end
45
41
  # user = User.create(email: 'user@example.com', ssn: '123-45-6789')
46
42
  # puts user.email # Automatically decrypted for reversible columns
47
43
  # puts user.ssn # Shows "[ENCRYPTED]" for irreversible columns
48
- #
44
+ #
49
45
  # # GDPR compliant deletion
50
46
  # user.destroy # Soft deletes with irreversible encryption
51
- #
47
+ #
52
48
  # # Query scopes
53
49
  # User.ff1_active # Non-deleted users
54
50
  # User.ff1_deleted # Soft-deleted users
55
- # User.ff1_all # All users (active + deleted)
51
+ # User.ff1_all # All users (active + deleted)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class <%= migration_class %> < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>]
3
+ class <%= migration_class_name %> < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>]
4
4
  def change
5
5
  add_column :<%= table_name %>, :<%= deleted_at_column %>, :datetime, null: true
6
6
  add_column :<%= table_name %>, :<%= ff1_deleted_column %>, :boolean, null: false, default: false
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ff1
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ahmed Abdellatif
@@ -129,15 +129,15 @@ files:
129
129
  - spec/ff1_spec.rb
130
130
  - spec/generators/ff1/install_generator_spec.rb
131
131
  - spec/spec_helper.rb
132
- homepage: https://github.com/a-abdellatif98/ff1
132
+ homepage: https://github.com/a-abdellatif98/ff1_gem
133
133
  licenses:
134
134
  - MIT
135
135
  metadata:
136
- bug_tracker_uri: https://github.com/a-abdellatif98/ff1/issues
137
- changelog_uri: https://github.com/a-abdellatif98/ff1/blob/main/CHANGELOG.md
138
- documentation_uri: https://github.com/a-abdellatif98/ff1/blob/main/README.md
139
- homepage_uri: https://github.com/a-abdellatif98/ff1
140
- source_code_uri: https://github.com/a-abdellatif98/ff1
136
+ bug_tracker_uri: https://github.com/a-abdellatif98/ff1_gem/issues
137
+ changelog_uri: https://github.com/a-abdellatif98/ff1/ff1_gem/main/CHANGELOG.md
138
+ documentation_uri: https://github.com/a-abdellatif98/ff1_gem/blob/main/README.md
139
+ homepage_uri: https://github.com/a-abdellatif98/ff1_gem
140
+ source_code_uri: https://github.com/a-abdellatif98/ff1_gem
141
141
  post_install_message:
142
142
  rdoc_options: []
143
143
  require_paths: