Module: Arable
- Defined in:
- lib/arable.rb,
lib/arable/version.rb
Defined Under Namespace
Modules: ActiveRecordExtension, ClassMethods, Columns
Classes: Error
Constant Summary
collapse
- SKIP_ARABLE_COLUMNS_CLASS_VAR_NAME =
:@@skip_arable_columns
- VERSION =
"0.2.0"
Class Method Summary
collapse
Class Method Details
.included(klass) ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/arable.rb', line 17
def self.included(klass)
return if klass.class_variable_defined?(SKIP_ARABLE_COLUMNS_CLASS_VAR_NAME)
column_names = Arable::Columns::Parser.call(klass.table_name).map(&:to_sym)
illegal_names = column_names & klass.methods
if illegal_names.any?
Rails.logger.warn("#{klass} model has illegal column names: #{illegal_names}. Please rename these columns.")
end
(column_names - illegal_names).each do |name|
klass.define_singleton_method(name) do
klass.arel_table[name]
end
end
end
|
.models ⇒ Object
11
12
13
14
15
|
# File 'lib/arable.rb', line 11
def self.models
ApplicationRecord
.models
.reject { |model| model.class_variable_defined?(SKIP_ARABLE_COLUMNS_CLASS_VAR_NAME) }
end
|