Module: TT::MetaClass

Defined in:
TT_Lib2/metaclass.rb

Overview

Examples:

module Foo
  extend TT::MetaClass
  cattr :bar
end

Since:

  • 2.7.0

Instance Method Summary collapse

Instance Method Details

#cattr_accessor(*args) ⇒ Object Also known as: cattr

Since:

  • 2.7.0



27
28
29
30
31
# File 'TT_Lib2/metaclass.rb', line 27

def cattr_accessor( *args )
  metaclass.class_eval {
    attr_accessor( *args )
  }
end

#cattr_reader(*args) ⇒ Object

Since:

  • 2.7.0



35
36
37
38
39
# File 'TT_Lib2/metaclass.rb', line 35

def cattr_reader( *args )
  metaclass.class_eval {
    attr_reader( *args )
  }
end

#cattr_writer(*args) ⇒ Object Also known as: cbattr_writer

Since:

  • 2.7.0



42
43
44
45
46
# File 'TT_Lib2/metaclass.rb', line 42

def cattr_writer( *args )
  metaclass.class_eval {
    attr_writer( *args )
  }
end

#cbattr_accessor(*args) ⇒ Object Also known as: cbattr

Since:

  • 2.7.0



49
50
51
52
53
54
55
56
57
58
# File 'TT_Lib2/metaclass.rb', line 49

def cbattr_accessor( *args )
  metaclass.class_eval {
    attr_accessor( *args )
    for attribute in args
      question = "#{attribute}?".to_sym
      alias_method( question, attribute )
      remove_method( attribute )
    end
  }
end

#cbattr_reader(*args) ⇒ Object

Since:

  • 2.7.0



62
63
64
65
66
67
68
69
70
71
# File 'TT_Lib2/metaclass.rb', line 62

def cbattr_reader( *args )
  metaclass.class_eval {
    attr_reader( *args )
    for attribute in args
      question = "#{attribute}?".to_sym
      alias_method( question, attribute )
      remove_method( attribute )
    end
  }
end

#metaclassObject

Since:

  • 2.7.0



20
21
22
23
24
# File 'TT_Lib2/metaclass.rb', line 20

def metaclass
  class << self
    self
  end
end