Class: Rubylog::DSL::Primitives

Inherits:
Object
  • Object
show all
Defined in:
lib/rubylog/dsl/primitives.rb

Instance Method Summary collapse

Constructor Details

#initialize(subject) ⇒ Primitives

Returns a new instance of Primitives.



3
4
5
# File 'lib/rubylog/dsl/primitives.rb', line 3

def initialize subject
  @subject = subject
end

Instance Method Details

#inspectObject



23
24
25
26
27
# File 'lib/rubylog/dsl/primitives.rb', line 23

def inspect
  if @subject
    "primitives_for(#{@subject.inspect})"
  end
end

#singleton_method_added(name) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/rubylog/dsl/primitives.rb', line 8

def singleton_method_added name
  unless name == :singleton_method_added
    m = method(name)

    predicate = Rubylog::Primitive.new(name, m)

    # nullary predicate
    if m.arity.zero?
      Rubylog::NullaryPredicates[name] = predicate
    else
      predicate.add_functor_to(@subject)
    end
  end
end