Class: Object

Inherits:
BasicObject
Defined in:
lib/ruck/misc/metaid.rb,
lib/ruck/misc/linkage.rb

Overview

Instance Method Summary collapse

Instance Method Details

#class_def(name, &blk) ⇒ Object

Defines an instance method within a class



15
16
17
# File 'lib/ruck/misc/metaid.rb', line 15

def class_def name, &blk
  class_eval { define_method name, &blk }
end

#L(&block) ⇒ Object



19
20
21
# File 'lib/ruck/misc/linkage.rb', line 19

def L(&block)
  block
end

#linkable_attr(attr_sym) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/ruck/misc/linkage.rb', line 3

def linkable_attr(attr_sym)
  attr_reader attr_sym
  define_method("#{attr_sym}=") do |val|
    instance_variable_set("@#{attr_sym}", val)
    if val.respond_to? :call
      meta_def attr_sym do
        val.call
      end
    else
      meta_def attr_sym do
        val
      end
    end
  end
end

#meta_def(name, &blk) ⇒ Object

Adds methods to a metaclass



10
11
12
# File 'lib/ruck/misc/metaid.rb', line 10

def meta_def name, &blk
  meta_eval { define_method name, &blk }
end

#meta_eval(&blk) ⇒ Object



7
# File 'lib/ruck/misc/metaid.rb', line 7

def meta_eval &blk; metaclass.instance_eval &blk; end

#metaclassObject

The hidden singleton lurks behind everyone



6
# File 'lib/ruck/misc/metaid.rb', line 6

def metaclass; class << self; self; end; end