module ActsAsRealTime::ClassMethods
Public Instance Methods
acts_as_realtime(modelo, selector, insertion_method = 'prepend') { |ws, channel, self| ... }
click to toggle source
# File lib/acts_as_realtime.rb, line 52 def acts_as_realtime(modelo, selector, insertion_method = 'prepend', &blk) =begin Se había manejado cómo posible solución el manejar un token(*-*) para interporlar los valores de los registros que se estan creando, cómo por ejemplo el nombre de un usuario. La idea consistia que el nombre del campo que se quiere interpolar debe de ir entre el token identificador(*-*) en el html que sea pasado a la gema, para se parseado(interpolado) por la gema. Ej: html = "<tr><td><div class=" + '"prueba1"' + " > *-*#{'nombre'}*-* </div></td><td>R</td><td>o</td><td>R</td></tr>" Esta solución puede causar problemas futuros, es por eso que se busco otra solución, que es el código actual, esto se deja comentado por si se necesitara usar despues start_index = html.index("*-*") sub_html = html[start_index+3..-1] finish_index = sub_html.index('*-*') + 2 attr = sub_html[0..finish_index-3] =end #Se define el método update_index en lo modelos que se ejecute el método acts_as_real_time modelo.class_eval { define_method(:update_index) do #eval("html[start_index..finish_index] = #{attr}") Esta instrucción se usaba para la solución que se planteó arriba res_yield = yield ActsAsRealTime.ws, ActsAsRealTime.channel, self if block_given? ActsAsRealTime.mod_app, ActsAsRealTime.html = res_yield[0], res_yield[1] ActsAsRealTime.mod_app::Application.config.chanel = ActsAsRealTime::channel ActsAsRealTime.mod_app::Application.config.chanel.push "$('#{selector}').#{insertion_method}('#{ActsAsRealTime.html}');" end after_create :update_index } end