@@ -74,7 +74,7 @@ def mask_each_document(scope, model)
7474
7575 scope . each_with_index do |document , index |
7676 print "Masking #{ model [ 'name' ] } (#{ index + 1 } /#{ total } )\r " unless @config [ 'silent' ]
77- mask = create_mask model [ 'fields' ]
77+ mask = create_mask model [ 'fields' ] , document
7878
7979 apply_mask ( document , mask )
8080 db [ model [ 'name' ] ] . find ( { _id : document [ '_id' ] } ) . update_one ( document )
@@ -107,31 +107,31 @@ def parse_condition condition
107107 condition
108108 end
109109
110- def create_mask ( fields )
110+ def create_mask ( fields , document )
111111 mask = { }
112- fields . each do |field , value |
113- if value . is_a? ( Symbol )
114- sub_mask = create_mask @config [ 'models' ] . find { |model | model [ 'name' ] == value . to_s } [ 'fields' ]
112+ fields . each do |field , expr |
113+ if expr . is_a? ( Symbol )
114+ sub_mask = create_mask @config [ 'models' ] . find { |model | model [ 'name' ] == expr . to_s } [ 'fields' ] , document
115115 mask [ field ] = sub_mask
116116 next
117117 end
118118
119- mask [ field ] = evalute_field_value ( value )
119+ mask [ field ] = evalute_field_expr ( expr , document [ field ] )
120120 end
121121 mask
122122 end
123123
124124 def apply_mask ( document , mask )
125- mask = mask . reject do |field , _value |
125+ mask = mask . reject do |field , _expr |
126126 document [ field ] . nil?
127127 end
128128 document . update ( mask )
129129 end
130130
131- def evalute_field_value ( value )
132- eval ( value )
131+ def evalute_field_expr ( expr , value )
132+ eval ( expr )
133133 rescue StandardError
134- raise "Can't eval `#{ value } `"
134+ raise "Can't eval `#{ expr } `"
135135 end
136136
137137 def load_from_yaml ( config_path )
0 commit comments