<p>Imagine the following Ruby Module:</p>

<pre><code>module Foo
  def inst_method
    puts "Called Foo.inst_method"
  end
  def self.class_method
    puts "Called Foo.class_method"
  end
end
</code></pre>

<p>Obviously <code>Foo.class_method</code> can be called without any class instances. However, what's happening to <code>Foo.inst_method</code>? Is it possible to call <code>Foo.inst_method</code> without previously including/extending a class?</p>

<p>Disclaimer: The question isn't focused on solving a real problem. I'm just trying to improve my understanding of the Ruby object system.</p>

My answer would be : "no you can't call module instance methods without first extending or including that module in a class"
now knowing ruby and all the meta programming trickery it contains there probably
is
a way to call it but it would be outside the intended use of modules
```
```
module Tester
  def inst_meth
    puts "test inst meth\n"
  end

  def self.meth
    puts "test self meth\n"
  end
end

begin
  Tester.meth
rescue;
  puts $!
end
begin
  Tester.inst_meth
rescue
  puts $!
end
begin
  Tester.new.inst_meth
rescue
  puts $!
end
begin
  extend Tester
  inst_meth
rescue
  puts $!
end
begin
  include Tester
  inst_meth
rescue
  puts $!
end
```
```
gives
```
```
>ruby test.rb
test self meth
undefined method `inst_meth' for Tester:Module
undefined method `new' for Tester:Module
 test inst meth
 test inst meth
```
```