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 [email protected] [email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs