class Engine2::DecodeAction

Public Instance Methods

decode(*fields, &blk) click to toggle source
# File lib/engine2/action/decode.rb, line 8
def decode *fields, &blk
    query select(*fields), &blk
    @meta[:decode_fields] = fields
end
post_process() click to toggle source
# File lib/engine2/action/decode.rb, line 21
def post_process
    if fields = @meta[:field_list]
        fields = fields - static.meta[:field_list] if dynamic?
        # no decorate here
        fields.each do |name|
            type_info = assets[:model].type_info[name] # foreign keys ?
            proc = ListRendererPostProcessors[type_info[:type]] # like... checkboxes, list_selects
            proc.(self, name, type_info) if proc
        end
    end
    # no super
end
post_run() click to toggle source
Calls superclass method Engine2::Action#post_run
# File lib/engine2/action/decode.rb, line 45
def post_run
    decode(*assets[:model].primary_keys) unless @query
    @meta[:separator] = '/' unless @meta[:separator]
    super
    @meta[:primary_fields] = assets[:model].primary_keys
end
pre_run() click to toggle source
Calls superclass method Engine2::Action#pre_run
# File lib/engine2/action/decode.rb, line 34
def pre_run
    super
    if assoc = assets[:assoc]
        decode = assoc[:model].type_info[assoc[:keys].first][:decode]
        if decode[:search][:multiple]
            show_max_selected 3
            loc! decode_selected: LOCS[:decode_selected]
        end
    end
end
separator(sep) click to toggle source
# File lib/engine2/action/decode.rb, line 13
def separator sep
    @meta[:separator] = sep
end
show_max_selected(max) click to toggle source
# File lib/engine2/action/decode.rb, line 17
def show_max_selected max
    @meta[:show_max_selected] = max
end