module Sequel::Plugins::ColumnConflicts::ClassMethods
Attributes
Hash for columns where the getter method already exists. keys are column symbols/strings that conflict with method names and should be looked up directly instead of calling a method, values are the column symbol to lookup in the values hash.
Hash for columns where the setter method already exists. keys are column symbols/strings suffixed with = that conflict with method names and should be set directly in the values hash, values are the column symbol to set in the values hash.
Public Instance Methods
Compare the column names for the model with the methods defined on Sequel::Model, and automatically setup the column conflicts.
# File lib/sequel/plugins/column_conflicts.rb, line 57 def check_column_conflicts mod = Sequel::Model columns.find_all{|c| mod.method_defined?(c)}.each{|c| get_column_conflict!(c)} columns.find_all{|c| mod.method_defined?("#{c}=")}.each{|c| set_column_conflict!(c)} end
Freeze column conflict information when freezing model class.
# File lib/sequel/plugins/column_conflicts.rb, line 64 def freeze @get_column_conflicts.freeze @set_column_conflicts.freeze super end
Set the given column as one with a getter method conflict.
# File lib/sequel/plugins/column_conflicts.rb, line 72 def get_column_conflict!(column) @get_column_conflicts[column.to_sym] = @get_column_conflicts[column.to_s] = column.to_sym end
Set the given column as one with a setter method conflict.
# File lib/sequel/plugins/column_conflicts.rb, line 77 def set_column_conflict!(column) @set_column_conflicts[:"#{column}="] = @set_column_conflicts["#{column}="] = column.to_sym end