Module: ActsAsTaggableOn::Taggable::Dirty::ClassMethods

Defined in:
lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb

Instance Method Summary collapse

Instance Method Details

#initialize_acts_as_taggable_on_dirtyObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb', line 10

def initialize_acts_as_taggable_on_dirty
  tag_types.map(&:to_s).each do |tags_type|
    tag_type         = tags_type.to_s.singularize

    class_eval <<-RUBY, __FILE__, __LINE__ + 1
      def #{tag_type}_list_changed?
        changed_attributes.include?("#{tag_type}_list")
      end

      def #{tag_type}_list_was
        changed_attributes.include?("#{tag_type}_list") ? changed_attributes["#{tag_type}_list"] : __send__("#{tag_type}_list")
      end

      def #{tag_type}_list_change
        [changed_attributes['#{tag_type}_list'], __send__('#{tag_type}_list')] if changed_attributes.include?("#{tag_type}_list")
      end

      def #{tag_type}_list_changes
        [changed_attributes['#{tag_type}_list'], __send__('#{tag_type}_list')] if changed_attributes.include?("#{tag_type}_list")
      end
    RUBY

  end
end