Module: Rbprolog

Defined in:
lib/rbprolog.rb,
lib/rbprolog/var.rb,
lib/rbprolog/rule.rb,
lib/rbprolog/context.rb,
lib/rbprolog/version.rb,
lib/rbprolog/deduction.rb

Defined Under Namespace

Modules: ClassMethods Classes: Context, Deduction, Rule, Var

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(mod) ⇒ Object



8
9
10
11
12
13
# File 'lib/rbprolog.rb', line 8

def self.included(mod)
  class << mod
    include ClassMethods
    attr_accessor :rules, :syms
  end
end

Instance Method Details

#initialize(string = nil, &block) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/rbprolog.rb', line 15

def initialize(string = nil, &block)
  if string || block
    self.extend(Rbprolog)

    self.singleton_class.keywords(*self.class.syms)
    self.singleton_class.class_eval(string) if string
    self.singleton_class.class_eval(&block) if block
  end
end

#rulesObject



25
26
27
# File 'lib/rbprolog.rb', line 25

def rules
  self.class.rules + (self.singleton_class.rules || [])
end