data-anonymization 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -68,6 +68,10 @@ Postgresql database having **composite primary key**
68
68
 
69
69
  ## Changelog
70
70
 
71
+ #### 0.5.2 (Jan 20, 2013)
72
+
73
+ 1. Upgraded all gem to latest and greatest including Rails activerecord and activesupport.
74
+
71
75
  #### 0.5.1 (Oct 26, 2012)
72
76
 
73
77
  1. Minor fixes release, no major functionality or feature added.
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'bundler'
2
+ Bundler.setup(:default, :test)
2
3
  require 'rspec/core/rake_task'
3
- require "tasks/rake_tasks"
4
+ require 'tasks/rake_tasks'
4
5
 
5
6
  Bundler::GemHelper.install_tasks
6
7
  RSpec::Core::RakeTask.new(:spec)
@@ -24,5 +24,5 @@ Gem::Specification.new do |gem|
24
24
  gem.add_dependency('rgeo-geojson', '~> 0.2.3')
25
25
  gem.add_dependency('powerbar', '~> 1.0.11')
26
26
  gem.add_dependency('parallel', '~> 0.6.1')
27
- gem.add_dependency('thor', '~> 0.16.0')
27
+ gem.add_dependency('thor', '~> 0.17.0')
28
28
  end
@@ -15,7 +15,7 @@ module DataAnon
15
15
  dest_record_map[field_name] = field_strategy.anonymize(field)
16
16
  end
17
17
  end
18
- dest_record = dest_table.new dest_record_map
18
+ dest_record = dest_table.new dest_record_map, without_protection: true
19
19
  @primary_keys.each do |key|
20
20
  dest_record[key] = record[key]
21
21
  end
@@ -6,10 +6,10 @@ module DataAnonymization
6
6
  include Rake::DSL if defined? Rake::DSL
7
7
 
8
8
  def initialize
9
- desc "Task to build the clean empty destination database"
9
+ desc 'Task to build the clean empty destination database'
10
10
  task :empty_dest do
11
- system "rm sample-data/chinook-empty.sqlite"
12
- system "sqlite3 sample-data/chinook-empty.sqlite < sample-data/chinook_schema.sql"
11
+ system 'rm sample-data/chinook-empty.sqlite'
12
+ system 'sqlite3 sample-data/chinook-empty.sqlite < sample-data/chinook_schema.sql'
13
13
  end
14
14
  end
15
15
 
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module DataAnonymization
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
@@ -51,4 +51,50 @@ describe "End 2 End RDBMS Whitelist Acceptance Test using SQLite database" do
51
51
  new_rec.created_at.should == Time.new(2010,10,10)
52
52
  new_rec.updated_at.should == Time.new(2010,5,5)
53
53
  end
54
- end
54
+
55
+ context "when whitelisting attributes" do
56
+
57
+ # This is intended to replicate what happens when
58
+ #
59
+ # config.active_record.whitelist_attributes = true
60
+ #
61
+ # is set in your application.
62
+
63
+ default_active_authorizer = nil
64
+
65
+ before(:each) do
66
+ default_active_authorizer = ActiveRecord::Base.active_authorizers[:default]
67
+ ActiveRecord::Base.active_authorizers[:default] = ActiveModel::MassAssignmentSecurity::WhiteList.new
68
+ end
69
+
70
+ after(:each) do
71
+ ActiveRecord::Base.active_authorizers[:default] = default_active_authorizer
72
+ end
73
+
74
+ it "should copy the customer table data" do
75
+
76
+ database "Customer" do
77
+ strategy DataAnon::Strategy::Whitelist
78
+ source_db source_connection_spec
79
+ destination_db dest_connection_spec
80
+
81
+ table 'customers' do
82
+ whitelist 'cust_id', 'address', 'zipcode', 'blog_url'
83
+ anonymize('first_name').using FieldStrategy::RandomFirstName.new
84
+ anonymize('last_name').using FieldStrategy::RandomLastName.new
85
+ anonymize('state').using FieldStrategy::SelectFromList.new(['Gujrat','Karnataka'])
86
+ anonymize('phone').using FieldStrategy::RandomPhoneNumber.new
87
+ anonymize('email').using FieldStrategy::StringTemplate.new('test+#{row_number}@gmail.com')
88
+ anonymize 'terms_n_condition', 'age', 'longitude'
89
+ anonymize('latitude').using FieldStrategy::RandomFloatDelta.new(2.0)
90
+ whitelist 'created_at','updated_at'
91
+ end
92
+ end
93
+
94
+ DataAnon::Utils::DestinationDatabase.establish_connection dest_connection_spec
95
+ dest_table = DataAnon::Utils::DestinationTable.create 'customers'
96
+ new_rec = dest_table.all.first
97
+ new_rec.address.should == 'F 501 Shanti Nagar'
98
+ end
99
+ end
100
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data-anonymization
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-01-20 00:00:00.000000000 Z
14
+ date: 2013-01-29 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activerecord
@@ -132,7 +132,7 @@ dependencies:
132
132
  requirements:
133
133
  - - ~>
134
134
  - !ruby/object:Gem::Version
135
- version: 0.16.0
135
+ version: 0.17.0
136
136
  type: :runtime
137
137
  prerelease: false
138
138
  version_requirements: !ruby/object:Gem::Requirement
@@ -140,7 +140,7 @@ dependencies:
140
140
  requirements:
141
141
  - - ~>
142
142
  - !ruby/object:Gem::Version
143
- version: 0.16.0
143
+ version: 0.17.0
144
144
  description: Data anonymization tool for RDBMS databases
145
145
  email:
146
146
  - parekh.sunit@gmail.com