Sha256: 25e2a9c3fe5381ff4603400cb83e0b8a7339b1b6029308eca4481c15dadd9591

Contents?: true

Size: 847 Bytes

Versions: 3

Compression:

Stored size: 847 Bytes

Contents

module GroupedMessage

  def self.included(base)
    base.class_eval {
      is_grouped

      include InstanceMethods
      alias_method_chain :possible_readers, :group
      alias_method_chain :inactive_readers, :group
      
      extend ClassMethods
      class << self
        alias_method_chain :functional, :group
      end
    }
  end
  
  module InstanceMethods
    def possible_readers_with_group
      group ? group.readers.active : possible_readers_without_group
    end
    def inactive_readers_with_group
      group ? group.readers.inactive : inactive_readers_without_group
    end
  end
  
  module ClassMethods
    def functional_with_group(function, group=nil)
      messages = for_function(function)
      if group
        messages.for_group(group).first
      else
        messages.ungrouped.first
      end
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
radiant-reader_group-extension-1.0.1 lib/grouped_message.rb
radiant-reader_group-extension-1.0.0 lib/grouped_message.rb
radiant-reader_group-extension-0.9.0 lib/grouped_message.rb