Module: Ocelot

Included in:
Processor::ArrayRule
Defined in:
lib/ocelot.rb,
lib/ocelot/dsl.rb,
lib/ocelot/graph.rb,
lib/ocelot/rules.rb,
lib/ocelot/database.rb,
lib/ocelot/processor.rb

Defined Under Namespace

Modules: Graph, Rules Classes: Base, Connection, Dsl, Pair, Processor, ScriptFilter, ScriptRule, Watcher

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.connectionObject

Returns the value of attribute connection.



56
57
58
# File 'lib/ocelot.rb', line 56

def connection
  @connection
end

.loggerObject

Returns the value of attribute logger.



57
58
59
# File 'lib/ocelot.rb', line 57

def logger
  @logger
end

Class Method Details

.in?(set, node) ⇒ Boolean

Returns:

  • (Boolean)


81
82
83
84
85
86
# File 'lib/ocelot.rb', line 81

def in?(set, node)
  node = Pair.new(node.class, node.id)
  result = set.include? node
  set << node
  result 
end

.obj_to_s(obj, assoc = nil) ⇒ Object



59
60
61
62
# File 'lib/ocelot.rb', line 59

def obj_to_s(obj, assoc=nil)
  assoc = assoc.nil? ? "" : ".#{assoc.name}"
  "#{obj.class}(#{obj.id})#{assoc}" 
end

.remove_callbacks(obj) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/ocelot.rb', line 88

def remove_callbacks(obj)
  if obj.class.respond_to? :delete_observers
    obj.class.delete_observers
  end

  class << obj
    def valid?
      true
    end
  end

  ActiveRecord::Callbacks::CALLBACKS.each do |cb| 
    class << obj
      def run_callbacks(*goaway)
        true
      end
    end
  end
end

.safely(obj, assoc = nil, val = nil) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/ocelot.rb', line 64

def safely(obj, assoc=nil, val=nil)
  begin
    yield
  rescue => e
    target = obj.is_a?(Class) ? "#{obj}" : "#{obj_to_s(obj)}"

    if assoc.nil?
      logger.error "Could not read or write #{target}: #{e.message}"
    elsif val.nil?
      logger.error "Could not read data for #{target}.#{assoc}: #{e.message}"
    else
      logger.error "Could not write #{target}.#{assoc} adding #{val.class}: #{e.message}"
    end
    logger.debug e.backtrace
  end
end