Calling Ruby module methods from a nested class within

Hi, Is there an alternative to calling a Module method from a nested
class? The code:

module GroupSweeper

def expire_cache(paths)

paths\.each do |path|

  expire\_page\(path\)

end

end

class SweeperOne < ActionController::Caching::Sweeper

include GroupSweeper

observe Subject

def after\_save\(subject\)

  expire\_cache\(\[root\_path,subjects\_path\]\)

end

def after\_destroy\(subject\)

  expire\_cache\(\[root\_path,subjects\_path\]\)

end

end

end

How can I call GroupSweeper's expire_cache method from within
SweeperOne without explicitely including it? Should I not be doing
this?

Afaik there is no way to call an instance method of a module without
including it (or extending an Object with it).
But you can make expire_cache a module class method and then call it.

module GroupSweeper
  def self.expire_cache(paths)
    puts "dummy code"
  end
end

class Foo < Bar
  def baz(arg)
     GroupSweeper.expire_cache(arg)
  end
end

ยทยทยท

2011/3/16 mgerstenblatt@gmail.com <mgerstenblatt@gmail.com>

Hi, Is there an alternative to calling a Module method from a nested
class? The code:

module GroupSweeper

  def expire_cache(paths)

    paths.each do |path|

      expire_page(path)

    end

  end

  class SweeperOne < ActionController::Caching::Sweeper

    include GroupSweeper

    observe Subject

    def after_save(subject)

      expire_cache([root_path,subjects_path])

    end

    def after_destroy(subject)

      expire_cache([root_path,subjects_path])

    end

  end

end

How can I call GroupSweeper's expire_cache method from within
SweeperOne without explicitely including it? Should I not be doing
this?