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