Class: CassandraModel::GlobalCallbacks
- Inherits:
-
Object
- Object
- CassandraModel::GlobalCallbacks
- Defined in:
- lib/cassandra_model/global_callbacks.rb
Class Method Summary collapse
- .add_listener(listener) ⇒ Object
- .call(callback, *params) ⇒ Object
- .method_missing(method, *args, &block) ⇒ Object
Class Method Details
.add_listener(listener) ⇒ Object
5 6 7 |
# File 'lib/cassandra_model/global_callbacks.rb', line 5 def add_listener(listener) listeners << listener end |
.call(callback, *params) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/cassandra_model/global_callbacks.rb', line 9 def call(callback, *params) listeners.each do |listener| callback_name = callback_name(callback) listener.public_send(callback_name, *params) if listener.respond_to?(callback_name) end end |
.method_missing(method, *args, &block) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/cassandra_model/global_callbacks.rb', line 16 def method_missing(method, *args, &block) if method =~ /^on_/ listener = Object.new.tap do |callback| callback.define_singleton_method(method) { |*callback_args| block.call(*callback_args) } end add_listener listener else super(method, *args, &block) end end |