Sha256: bc354a0a302d2618c97f16738d35a55c34081135f3d7ea377aaa502d4fedcadd
Contents?: true
Size: 753 Bytes
Versions: 5
Compression:
Stored size: 753 Bytes
Contents
module Houdini module Model extend ActiveSupport::Concern module ClassMethods def houdini(blueprint, options={}) task_manager = options.delete(:task_manager) || TaskManager callback = options.delete(:on) task_manager.register self, blueprint.to_sym, options submit_method_name = "houdini_submit_#{blueprint}!".to_sym # Using a module so that you can use override/modify the method via `super` m = Module.new do define_method submit_method_name do task_manager.submit! self, blueprint end end include m # attach the submit method via the callback send callback, submit_method_name if callback end end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
houdini-0.3.4 | lib/houdini/model.rb |
houdini-0.3.3 | lib/houdini/model.rb |
houdini-0.3.2 | lib/houdini/model.rb |
houdini-0.3.1 | lib/houdini/model.rb |
houdini-0.3.0 | lib/houdini/model.rb |