Module: FlexColumns::ActiveRecord::Base::ClassMethods
- Defined in:
- lib/flex_columns/active_record/base.rb
Instance Method Summary collapse
- #_flex_columns_safe_to_define_method?(method_name) ⇒ Boolean
-
#flex_column(*args, &block) ⇒ Object
Declares a flex column.
-
#has_any_flex_columns? ⇒ Boolean
Does this class have any flex columns? FlexColumns::HasFlexColumns overrides this to return
true
. -
#include_flex_columns_from(*args, &block) ⇒ Object
Includes flex columns from another class.
Instance Method Details
#_flex_columns_safe_to_define_method?(method_name) ⇒ Boolean
57 58 59 60 61 62 63 64 65 66 67 68 |
# 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 columns.detect { |c| c.name.to_s == base_name } # return false if method_defined?(base_name) || method_defined?("#{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
.
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 |