Module: ClassMattr

Defined in:
lib/lib/base.rb,
lib/lib/proxy.rb

Defined Under Namespace

Classes: Proxy

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



2
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
# File 'lib/lib/base.rb', line 2

def self.included base
  def base.mattr name=nil
    if name
      if name.is_a?(Array)
        for el in name
          self.define_singleton_method(el) do |*args|
            ::ClassMattr::Proxy.new(self).send(el, *args)
          end
        end
      else
        ::ClassMattr::Proxy.new(self)._get(name)
      end
    else
      ::ClassMattr::Proxy.new(self)
    end
  end

  def base.method_added name
    ::ClassMattr::Proxy.new(self)._set name
    super
  end

  def mattr name
    ::ClassMattr::Proxy.new(self.class)._get(name)
  end
end

Instance Method Details

#mattr(name) ⇒ Object



24
25
26
# File 'lib/lib/base.rb', line 24

def mattr name
  ::ClassMattr::Proxy.new(self.class)._get(name)
end