class CsvCop::Cop::Lint::DeplicatedElementInOneColumn
Constants
- MSG
Public Class Methods
config_key()
click to toggle source
# File lib/csvcop/cop/uniq_column.rb, line 16 def self.config_key self.name.split("::").last.to_sym end
enable?(config)
click to toggle source
# File lib/csvcop/cop/uniq_column.rb, line 12 def self.enable?(config) config[:AllCops][config_key][:Enable] end
new(csv, config)
click to toggle source
# File lib/csvcop/cop/uniq_column.rb, line 7 def initialize(csv, config) @csv = csv @config = config end
Public Instance Methods
run()
click to toggle source
# File lib/csvcop/cop/uniq_column.rb, line 20 def run return false unless DeplicatedElementInOneColumn.enable?(@config) on_ensure end
Private Instance Methods
ensure_deplicated_elementes()
click to toggle source
# File lib/csvcop/cop/uniq_column.rb, line 35 def ensure_deplicated_elementes msg = "" by_col_csv = @csv.by_col by_col_csv.each_with_index do | col, col_index | uniq_col = col.flatten.map{|v| v.to_s}.uniq col = stringify_values(col.flatten) uniq_col.each do | uniq_col_row | if col.count(uniq_col_row) > 1 msg.concat("column number:#{col_index}, #{uniq_col_row} is deplicated.\n") end end end msg end
on_ensure()
click to toggle source
# File lib/csvcop/cop/uniq_column.rb, line 26 def on_ensure msg = ensure_deplicated_elementes unless msg.empty? return "ununiqness element.\n#{msg}" end false end
stringify_values(array)
click to toggle source
# File lib/csvcop/cop/uniq_column.rb, line 52 def stringify_values(array) array.map{|v| v.to_s} end