Class: Scribble::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/scribble/registry.rb

Defined Under Namespace

Classes: ForClassContext

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.instanceObject



10
11
12
# File 'lib/scribble/registry.rb', line 10

def self.instance
  @instance ||= Registry.new
end

.method_missing(name, *args, &proc) ⇒ Object

Singleton



6
7
8
# File 'lib/scribble/registry.rb', line 6

def self.method_missing name, *args, &proc
  instance.send name, *args, &proc
end

Instance Method Details

#block?(name) ⇒ Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/scribble/registry.rb', line 84

def block? name
  method_predicate name, :block?
end

#class_name(receiver_class, name = nil) ⇒ Object



48
49
50
51
# 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_namesObject

Class names



44
45
46
# File 'lib/scribble/registry.rb', line 44

def class_names
  @class_names ||= {}
end

#evaluate(name, receiver, args, call = nil, context = nil) ⇒ Object

Evaluate or cast



65
66
67
68
# 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) ⇒ Object

For class context



16
17
18
# File 'lib/scribble/registry.rb', line 16

def for *classes, &proc
  classes.each { |receiver_class| ForClassContext.new(self, receiver_class).instance_eval &proc }
end

#methodsObject

Methods



55
56
57
# File 'lib/scribble/registry.rb', line 55

def methods
  @methods ||= []
end

#split?(name) ⇒ Boolean

Split, block

Returns:

  • (Boolean)


80
81
82
# File 'lib/scribble/registry.rb', line 80

def split? name
  method_predicate name, :split?
end

#to_boolean(receiver) ⇒ Object



70
71
72
# File 'lib/scribble/registry.rb', line 70

def to_boolean receiver
  evaluate :to_boolean, receiver, []
end

#to_string(receiver) ⇒ Object



74
75
76
# File 'lib/scribble/registry.rb', line 74

def to_string receiver
  evaluate :to_string, receiver, []
end

#unregister(name) ⇒ Object



59
60
61
# File 'lib/scribble/registry.rb', line 59

def unregister name
  methods.reject! { |method| method.name == name }
end