lib/traco/attributes.rb in traco-3.2.1 vs lib/traco/attributes.rb in traco-4.0.0
- old
+ new
@@ -5,10 +5,11 @@
@attributes = attributes.map(&:to_sym)
attributes.each do |attribute|
define_reader(attribute)
define_writer(attribute)
+ define_query(attribute)
end
end
def included(base)
self.class.ensure_translatable_attributes(base)
@@ -23,11 +24,11 @@
class_eval <<-EOM, __FILE__, __LINE__ + 1
def #{attribute}(options = {})
default_fallback = #{@options.fetch(:fallback, LocaleFallbacks::DEFAULT_FALLBACK).inspect}
fallback = options.fetch(:fallback, default_fallback)
- columns_to_try = self.class._locale_columns_for_attribute(:#{attribute}, fallback)
+ columns_to_try = self.class._locale_columns_for_attribute(:#{attribute}, fallback: fallback)
columns_to_try.each do |column|
value = send(column)
return value if value.present?
end
@@ -39,9 +40,17 @@
def define_writer(attribute)
class_eval <<-EOM, __FILE__, __LINE__ + 1
def #{attribute}=(value)
column = Traco.column(:#{attribute}, I18n.locale).to_s + "="
send(column, value)
+ end
+ EOM
+ end
+
+ def define_query(attribute)
+ class_eval <<-EOM, __FILE__, __LINE__ + 1
+ def #{attribute}?
+ #{attribute}.present?
end
EOM
end
# Only called once per class or inheritance chain (e.g. once