Method: FlexColumns::ActiveRecord::Base::ClassMethods#_flex_columns_safe_to_define_method?

Defined in:
lib/flex_columns/active_record/base.rb

#_flex_columns_safe_to_define_method?(method_name) ⇒ Boolean

Returns:

  • (Boolean)


57
58
59
60
61
62
63
64
65
66
67
# File 'lib/flex_columns/active_record/base.rb', line 57

def _flex_columns_safe_to_define_method?(method_name)
  base_name = method_name.to_s
  base_name = $1 if base_name =~ /^(.*)=$/i

  reason = nil

  reason ||= :column if table_exists? && columns.detect { |c| c.name.to_s == base_name }
  reason ||= :instance_method if instance_methods(false).map(&:to_s).include?(base_name.to_s)

  (! reason)
end