module MaskingField::ClassMethods
Public Instance Methods
gen_from_integer(gen_length=10)
click to toggle source
# File lib/masking_field/class_methods.rb, line 38 def gen_from_integer(gen_length=10) ("A".."Z").to_a.sample(gen_length).join end
gen_from_lowercase(gen_length=10)
click to toggle source
# File lib/masking_field/class_methods.rb, line 30 def gen_from_lowercase(gen_length=10) ("a".."z").to_a.sample(gen_length).join end
gen_from_uppercase(gen_length=10)
click to toggle source
# File lib/masking_field/class_methods.rb, line 34 def gen_from_uppercase(gen_length=10) ("A".."Z").to_a.sample(gen_length).join end
gen_mask_data(options={})
click to toggle source
# File lib/masking_field/class_methods.rb, line 17 def gen_mask_data(options={}) #文字列が指定されてたらそのまま使う return options[:fixed].to_s if options.present? && options[:fixed].present? #指定されてなければ作る if options[:gen_type] return eval("gen_from_#{options[:gen_type]}(#{options[:gen_length]||10})") elsif options[:gen_length].to_i > 0 return "*" * options[:gen_length].to_i else return "**********" end end
masking_to(*mask_columns)
click to toggle source
# File lib/masking_field/class_methods.rb, line 3 def masking_to(*mask_columns) gen_options = mask_columns.select{|cname| cname.instance_of?(Hash) }.flatten.first masking_data = gen_mask_data(gen_options||{}) class_name = self.to_s.classify column_names = Module.const_get(class_name).columns.map(&:name).map(&:to_sym) mask_column_names = mask_columns.select{|cname| cname.instance_of?(Symbol) || cname.instance_of?(String) } (column_names & mask_column_names).each do|read_column| define_method(read_column) do masking_data end end end