Module: Wazowski

Defined in:
lib/wazowski.rb,
lib/wazowski/version.rb,
lib/wazowski/active_record_adapter.rb

Defined Under Namespace

Modules: ActiveRecordAdapter, Config, Observable Classes: Node, Observer

Constant Summary collapse

NoSuchNode =
Class.new(StandardError)
ConfigurationError =
Class.new(StandardError)
VERSION =
"0.2.2"

Class Method Summary collapse

Class Method Details

.find_node(node_id) ⇒ Object



119
120
121
# File 'lib/wazowski.rb', line 119

def find_node(node_id)
  Config.derivations[node_id] || raise(NoSuchNode, "Node not found! #{node_id}")
end

.run_handlers(changes_per_node) ⇒ Object



123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/wazowski.rb', line 123

def run_handlers(changes_per_node)
  changes_per_node.each do |node_id, changes|
    node = find_node(node_id)

    node.wrapping do
      changes.each do |change_type, klass, object, changeset|
        case change_type
          when :insert
            node.after_commit_on_create(klass, object)
          when :delete
            node.after_commit_on_delete(klass, object)
          when :update
            node.after_commit_on_update(klass, object, changeset)
        end
      end
    end
  end
end