Module: FlexColumns::ActiveRecord::Base::ClassMethods

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

Instance Method Summary collapse

Instance Method Details

#_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

#flex_column(*args, &block) ⇒ Object

Declares a flex column. Includes FlexColumns::HasFlexColumns, and then does what looks like an infinitely-recursing call – but, because Ruby is so badass, this actually calls the method that has just been included into the class, instead (i.e., the one from FlexColumns::HasFlexColumns).

See FlexColumns::HasFlexColumns#flex_column for more information.



41
42
43
44
# File 'lib/flex_columns/active_record/base.rb', line 41

def flex_column(*args, &block)
  include FlexColumns::HasFlexColumns
  flex_column(*args, &block)
end

#has_any_flex_columns?Boolean

Does this class have any flex columns? FlexColumns::HasFlexColumns overrides this to return true.

Returns:

  • (Boolean)


32
33
34
# File 'lib/flex_columns/active_record/base.rb', line 32

def has_any_flex_columns?
  false
end

#include_flex_columns_from(*args, &block) ⇒ Object

Includes flex columns from another class. Includes FlexColumns::Including::IncludeFlexColumns, and then does what looks like an infinitely-recursing call – but, because Ruby is so badass, this actually calls the method that has just been included into the class, instead (i.e., the one from FlexColumns::Including::IncludeFlexColumns).

See FlexColumns::Including::IncludeFlexColumns#include_flex_columns_from for more information.



52
53
54
55
# File 'lib/flex_columns/active_record/base.rb', line 52

def include_flex_columns_from(*args, &block)
  include FlexColumns::Including::IncludeFlexColumns
  include_flex_columns_from(*args, &block)
end