-module(action_jq). %%-author('Rusty Klophaus'). %%-author('Andrey Martemyanov'). -include_lib("nitro/include/nitro.hrl"). -compile([export_all, nowarn_export_all]). render_action( #jq{property = undefined, target = T, method = Methods, args = Args0, format = F} ) -> Args = case F of "'~s'" -> [ nitro:render(Args0) ]; _ -> Args0 end, Format = fun(A) when is_tuple(A) orelse is_integer(A) -> nitro:render(A); (A) -> nitro:to_list(A) end, RenderedArgs = string:join([ Format(A) || A <- Args], ","), [ [ wf_event:target(T), ".", nitro:to_binary(M), "(", nitro:f(F, [RenderedArgs]), ");" ] || M <- Methods]; render_action( #jq{target = T, method = undefined, property = P, right = R, args = simple}) -> [ nitro:to_binary(T), ".", nitro:to_binary(P), "='", nitro:render(R), "';" ]; render_action( #jq{target = T, method = undefined, property = P, right = undefined} ) -> [ wf_event:target(T), ".", nitro:to_binary(P), ";" ]; render_action( #jq{target = T, method = undefined, property = P, right = #jq{} = R}) -> [ wf_event:target(T), ".", nitro:to_binary(P), "=", nitro:render(R), ";" ]; render_action( #jq{target = T, method = undefined, property = P, right = R}) -> [ wf_event:target(T), ".", nitro:to_binary(P), "='", nitro:render(R), "';" ].