module Rubylog::ContextModules::Predicates

Attributes

default_subject[W]

Public Instance Methods

default_subject() click to toggle source
# File lib/rubylog/context_modules/predicates.rb, line 28
def default_subject
  @default_subject || []
end
predicate(*indicators) click to toggle source
# File lib/rubylog/context_modules/predicates.rb, line 9
def predicate *indicators
  each_indicator(indicators) do |indicator|
    create_procedure(indicator).add_functor_to [default_subject, Variable]
  end
end
predicate_for(subjects, *indicators) click to toggle source
# File lib/rubylog/context_modules/predicates.rb, line 15
def predicate_for subjects, *indicators
  each_indicator(indicators) do |indicator|
    create_procedure(indicator).add_functor_to [subjects, Variable]
  end
end
predicate_for_context(*indicators) click to toggle source
# File lib/rubylog/context_modules/predicates.rb, line 21
def predicate_for_context *indicators
  each_indicator(indicators) do |indicator|
    create_procedure(indicator).add_functor_to ::Rubylog::Context
  end
end

Protected Instance Methods

create_procedure(indicator) click to toggle source
# File lib/rubylog/context_modules/predicates.rb, line 35
def create_procedure indicator
  Rubylog::Procedure.new indicator[0], indicator[1]
end
each_indicator(indicators) { |i| ... } click to toggle source
# File lib/rubylog/context_modules/predicates.rb, line 39
def each_indicator indicators
  # TODO check if not empty
  #
  indicators.
    flatten.
    map{|str|str.split(" ")}.
    flatten.
    map{|i| Rubylog::DSL::Indicators.unhumanize_indicator(i)}.
    each {|i| yield i }
end