Module: StatelessModule

Defined in:
lib/stateless_module.rb,
lib/stateless_module/version.rb

Constant Summary collapse

VERSION =
"2.0.1"

Class Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



30
31
32
# File 'lib/stateless_module.rb', line 30

def extended(base)
  raise "Use Stateless Module by including it - not by extending it."
end

.included(base) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/stateless_module.rb', line 3

def included(base)
  base.send(:extend, base)

  freeze_when_module_completes(base)

  base.class_eval do
    class << self
      def included(base)
        raise_stateless_module_error
      end

      def extended(base)
        raise_stateless_module_error
      end

      #######
      private
      #######

      def raise_stateless_module_error
        raise "#{self.name} is a Stateless Module. " \
              "Don't include it elsewhere."
      end
    end
  end
end