yaml_db_anonymizer 0.0.1 → 0.0.2
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.
data/lib/yaml_db/anonymizer.rb
CHANGED
@@ -36,7 +36,11 @@ module YamlDb
|
|
36
36
|
def anonymize(table, column, value)
|
37
37
|
return value unless self.definition.key?(table.to_s) and self.definition[table.to_s].key?(column.to_s)
|
38
38
|
block_or_value = self.definition[table.to_s][column.to_s]
|
39
|
-
block_or_value.is_a?(Proc)
|
39
|
+
if block_or_value.is_a?(Proc)
|
40
|
+
block_or_value.arity == 1 ? block_or_value.call(value) : block_or_value.call
|
41
|
+
else
|
42
|
+
block_or_value
|
43
|
+
end
|
40
44
|
end
|
41
45
|
end
|
42
46
|
end
|
@@ -3,7 +3,9 @@ module YamlDb
|
|
3
3
|
class Dump < ::YamlDb::Dump
|
4
4
|
|
5
5
|
def self.dump_table_records(io, table)
|
6
|
+
return super(io, table) unless Anonymizer.definition.is_a? Hash
|
6
7
|
return if Anonymizer.definition[table.to_s] == :truncate
|
8
|
+
|
7
9
|
table_record_header(io)
|
8
10
|
|
9
11
|
column_names = table_column_names(table)
|
@@ -23,7 +25,7 @@ module YamlDb
|
|
23
25
|
end
|
24
26
|
|
25
27
|
def self.dump_table_columns(io, table)
|
26
|
-
super(io, table) unless Anonymizer.definition[table.to_s] == :truncate
|
28
|
+
super(io, table) unless Anonymizer.definition.is_a?(Hash) && Anonymizer.definition[table.to_s] == :truncate
|
27
29
|
end
|
28
30
|
|
29
31
|
end
|
@@ -8,6 +8,7 @@ describe YamlDb::Anonymizer do
|
|
8
8
|
remove :a
|
9
9
|
replace :b, with: 0
|
10
10
|
replace :c, with: lambda { |val| "Anonymized #{val}" }
|
11
|
+
replace :d, with: lambda { "Anonymized value" }
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
@@ -23,6 +24,10 @@ describe YamlDb::Anonymizer do
|
|
23
24
|
it "should anonymize with blocks" do
|
24
25
|
YamlDb::Anonymizer.anonymize(:mytable, :c, "bar").should == "Anonymized bar"
|
25
26
|
end
|
27
|
+
|
28
|
+
it "should anonymize with blocks" do
|
29
|
+
YamlDb::Anonymizer.anonymize(:mytable, :d, "bar").should == "Anonymized value"
|
30
|
+
end
|
26
31
|
end
|
27
32
|
|
28
33
|
context 'export' do
|
@@ -87,5 +92,24 @@ EOYAML
|
|
87
92
|
end
|
88
93
|
end
|
89
94
|
end
|
95
|
+
|
96
|
+
context 'fallback' do
|
97
|
+
let(:io) { double('io') }
|
98
|
+
let(:table) { double('table') }
|
99
|
+
|
100
|
+
before do
|
101
|
+
YamlDb::Anonymizer.definition = nil
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'falls back to YamlDb::Dump.dump_table_records if definition is missing' do
|
105
|
+
YamlDb::Dump.should_receive(:dump_table_records).with(io, table)
|
106
|
+
YamlDb::Anonymizer::Dump.dump_table_records(io, table)
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'falls back to YamlDb::Dump.dump_table_columns if definition is missing' do
|
110
|
+
YamlDb::Dump.should_receive(:dump_table_columns).with(io, table)
|
111
|
+
YamlDb::Anonymizer::Dump.dump_table_columns(io, table)
|
112
|
+
end
|
113
|
+
end
|
90
114
|
end
|
91
115
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaml_db_anonymizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: yaml_db
|