tidus 1.2.3 → 1.2.4

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: b51c5f1d85405f2bba2691de20b1dd7cfe696d37569cada6b5a1d4864bedda4b
4
- data.tar.gz: 0f4e3bb64adb66fb3bbe13838cdd29c67eabb9838a4ff03b3bbb9ef6f8552796
3
+ metadata.gz: 1ab6c8984ca856fa25dbb98b938fa15e0cbc7adbaf7933ad99ad42a27bd12ac1
4
+ data.tar.gz: 637691557e333d4517bd9b1bb68a2e0ea2a0c4836b214afd785c3faea1fa4de9
5
5
  SHA512:
6
- metadata.gz: 929142964abaa2025dd83cb11712b299e927e102b1ad7b5d36573d25ad32c8d7371504fcbe55965da1b8f0e3f03aebdd0542b182442f226811021b07df295b1f
7
- data.tar.gz: 0c55226cd2527f613209eabf9df8d70554eef1a68e2188ea6ae5c90a615cf63f2518c10be5b9d72fb034a915f58f1216c0e08bdf48f5e9c1c92aecfd2eb505e5
6
+ metadata.gz: d55046ce42f820775c03b6a86c2785260910fbea9ec6385643ea3ec69c365e784990cd0d5959e126857b5eb394852cf51341c9e71f30116007d6d1fe9b997713
7
+ data.tar.gz: 684b00ba589772505f7237f32a12fd3f17e503d705bed9ec7bf3a8dfee2f3b6597780a69979d6e269fa5d7f6aabdef1a28635a48d0021e99bba8ebff15e7beba
data/lib/tasks/views.rake CHANGED
@@ -4,7 +4,7 @@ skip_tables = [
4
4
  ]
5
5
 
6
6
  namespace :db do
7
- desc "Clears all the views which are currently existing"
7
+ desc 'Clears all the views which are currently existing'
8
8
  task :clear_views do
9
9
  Rails.application.eager_load! if defined?(Rails)
10
10
 
@@ -17,7 +17,7 @@ namespace :db do
17
17
  end
18
18
  end
19
19
 
20
- desc "Generates all the views for the models"
20
+ desc 'Generates all the views for the models'
21
21
  task :generate_views do
22
22
  Rails.application.eager_load! if defined?(Rails)
23
23
 
@@ -33,13 +33,13 @@ namespace :db do
33
33
  end
34
34
  end
35
35
 
36
- Rake::Task["db:migrate"].enhance ["db:clear_views"]
37
- Rake::Task["db:rollback"].enhance ["db:clear_views"]
36
+ Rake::Task['db:migrate'].enhance ['db:clear_views']
37
+ Rake::Task['db:rollback'].enhance ['db:clear_views']
38
38
 
39
- Rake::Task["db:migrate"].enhance do
40
- Rake::Task["db:generate_views"].invoke
39
+ Rake::Task['db:migrate'].enhance do
40
+ Rake::Task['db:generate_views'].invoke
41
41
  end
42
42
 
43
- Rake::Task["db:rollback"].enhance do
44
- Rake::Task["db:generate_views"].invoke
43
+ Rake::Task['db:rollback'].enhance do
44
+ Rake::Task['db:generate_views'].invoke
45
45
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Tidus
4
4
  module Anonymization
5
+
5
6
  include Tidus::Query
6
7
 
7
8
  def skip_anonymization
@@ -13,7 +14,7 @@ module Tidus
13
14
  end
14
15
 
15
16
  def view_postfix
16
- @view_postfix || "anonymized"
17
+ @view_postfix || 'anonymized'
17
18
  end
18
19
 
19
20
  def view_postfix=(val)
@@ -30,9 +31,10 @@ module Tidus
30
31
 
31
32
  def view_columns
32
33
  @view_columns ||= {}
33
- default_view_columns.merge(@view_columns)
34
- .map{ |k,v| ["#{v} AS #{k}"] }
35
- .flatten
34
+ default_view_columns
35
+ .merge(@view_columns)
36
+ .map { |k, v| ["#{v} AS #{k}"] }
37
+ .flatten
36
38
  end
37
39
 
38
40
  def default_view_columns
@@ -49,8 +51,8 @@ module Tidus
49
51
  options = attributes.extract_options!.dup
50
52
  columns = attributes - [options]
51
53
 
52
- raise ArgumentError, "Must have at least one attribute" if attributes.empty?
53
- raise ArgumentError, "Must have a strategy" if options[:strategy].blank?
54
+ raise ArgumentError.new('Must have at least one attribute') if attributes.empty?
55
+ raise ArgumentError.new('Must have a strategy') if options[:strategy].blank?
54
56
 
55
57
  columns.each do |column|
56
58
  key = options[:strategy].to_s.camelize
@@ -62,14 +64,14 @@ module Tidus
62
64
  klass = const_get("Tidus::#{key}Anonymizer")
63
65
  end
64
66
  rescue NameError
65
- raise ArgumentError, "Unknown anonymizer: '#{key}'"
67
+ raise ArgumentError.new("Unknown anonymizer: '#{key}'")
66
68
  end
67
69
 
68
70
  @view_columns[column.to_sym] = klass.anonymize(table_name, column, options)
69
71
  end
70
72
  end
71
73
 
72
- end
74
+ end
73
75
  end
74
76
 
75
- ActiveRecord::Base.extend Tidus::Anonymization
77
+ ActiveRecord::Base.extend Tidus::Anonymization
data/lib/tidus/query.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Tidus
4
4
  module Query
5
+
5
6
  def create_view_query_part
6
7
  case connection.instance_values['config'][:adapter].to_s.downcase
7
8
  when 'postgresql'
@@ -15,8 +16,8 @@ module Tidus
15
16
 
16
17
  def create_query
17
18
  "#{create_view_query_part} #{view_name} AS " +
18
- "SELECT #{view_columns.join(', ')} " +
19
- "FROM #{table_name}"
19
+ "SELECT #{view_columns.join(', ')} " +
20
+ "FROM #{table_name}"
20
21
  end
21
22
 
22
23
  def create_view
@@ -34,5 +35,6 @@ module Tidus
34
35
  def clear_view
35
36
  connection.execute(clear_query)
36
37
  end
38
+
37
39
  end
38
40
  end
@@ -2,8 +2,9 @@
2
2
 
3
3
  module Tidus
4
4
  class BaseSelector
5
+
5
6
  def self.anonymize(table_name, column_name, options = {})
6
- adapter = ActiveRecord::Base.connection.instance_values["config"][:adapter]
7
+ adapter = ActiveRecord::Base.connection.instance_values['config'][:adapter]
7
8
 
8
9
  begin
9
10
  klass = Kernel.const_get("Tidus::#{adapter.camelize}::#{self.name.demodulize}")
@@ -11,7 +12,12 @@ module Tidus
11
12
  rescue NameError
12
13
  raise "#{self.name} not implemented for #{adapter}"
13
14
  end
14
-
15
+ rescue ActiveRecord::ConnectionNotEstablished
16
+ # Do nothing here.
17
+ # If the connection cannot be established this cannot be run in a migration
18
+ # and will fail there.
19
+ # For all other cases it does not matter, since the return value of anonymize is not used.
15
20
  end
21
+
16
22
  end
17
23
  end
data/lib/tidus/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tidus
2
- VERSION = "1.2.3"
2
+ VERSION = "1.2.4"
3
3
  end
data/lib/tidus.rb CHANGED
@@ -1,13 +1,13 @@
1
1
  # encoding: utf-8
2
2
 
3
- require "rake"
4
- require "active_record"
3
+ require 'rake'
4
+ require 'active_record'
5
5
 
6
- require "tidus/version"
7
- require "tidus/query"
8
- require "tidus/anonymization"
9
- require "tidus/strategies/base_selector"
6
+ require 'tidus/version'
7
+ require 'tidus/query'
8
+ require 'tidus/anonymization'
9
+ require 'tidus/strategies/base_selector'
10
10
  Dir["#{File.dirname(__FILE__)}/tidus/strategies/**/*.rb"].each { |f| require f }
11
11
 
12
- load "active_record/railties/databases.rake" if defined?(Rails)
13
- load "tasks/views.rake"
12
+ load 'active_record/railties/databases.rake' if defined?(Rails)
13
+ load 'tasks/views.rake'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tidus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Schoknecht
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-19 00:00:00.000000000 Z
11
+ date: 2023-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  requirements: []
119
- rubygems_version: 3.3.26
119
+ rubygems_version: 3.1.6
120
120
  signing_key:
121
121
  specification_version: 4
122
122
  summary: Gem for creating anonymization views.