class Scribble::Registry

Public Class Methods

instance() click to toggle source
# File lib/scribble/registry.rb, line 10
def self.instance
  @instance ||= Registry.new
end
method_missing(name, *args, &proc) click to toggle source

Singleton

# File lib/scribble/registry.rb, line 6
def self.method_missing name, *args, &proc
  instance.send name, *args, &proc
end

Public Instance Methods

block?(name) click to toggle source
# File lib/scribble/registry.rb, line 84
def block? name
  method_predicate name, :block?
end
class_name(receiver_class, name = nil) click to toggle source
# File lib/scribble/registry.rb, line 48
def class_name receiver_class, name = nil
  class_names[receiver_class] = name if name
  class_names[receiver_class] || receiver_class.name.downcase
end
class_names() click to toggle source

Class names

# File lib/scribble/registry.rb, line 44
def class_names
  @class_names ||= {}
end
evaluate(name, receiver, args, call = nil, context = nil) click to toggle source

Evaluate or cast

# File lib/scribble/registry.rb, line 65
def evaluate name, receiver, args, call = nil, context = nil
  matcher = Support::Matcher.new self, name, receiver, args
  matcher.match.new(receiver, call, context).send name, *args
end
for(*classes, &proc) click to toggle source

For class context

# File lib/scribble/registry.rb, line 16
def for *classes, &proc
  classes.each { |receiver_class| ForClassContext.new(self, receiver_class).instance_eval &proc }
end
methods() click to toggle source

Methods

# File lib/scribble/registry.rb, line 55
def methods
  @methods ||= []
end
split?(name) click to toggle source

Split, block

# File lib/scribble/registry.rb, line 80
def split? name
  method_predicate name, :split?
end
to_boolean(receiver) click to toggle source
# File lib/scribble/registry.rb, line 70
def to_boolean receiver
  evaluate :to_boolean, receiver, []
end
to_string(receiver) click to toggle source
# File lib/scribble/registry.rb, line 74
def to_string receiver
  evaluate :to_string, receiver, []
end
unregister(name) click to toggle source
# File lib/scribble/registry.rb, line 59
def unregister name
  methods.reject! { |method| method.name == name }
end

Private Instance Methods

method_predicate(name, predicate) click to toggle source
# File lib/scribble/registry.rb, line 90
def method_predicate name, predicate
  method = methods.find { |method| method.method_name == name }
  method && method.send(predicate)
end