Sha256: 6a7a6cdae686bf7f02d9614ffe214cee9f7762d956f8ea805632a3ed731b4c16
Contents?: true
Size: 1.46 KB
Versions: 9
Compression:
Stored size: 1.46 KB
Contents
require 'set' module Faalis module Generators module Concerns # Using this **concern** module user can specify an array of tab objects # which each one has an `id` and `name` attribute. Tabs will be added to # **new** view of resource. Also this concern will a `tab` key to field # object. All the fields with same `id` as a tab will be grouped in that # tab module Tabs private # Process the user provided tabs # return a Hash of tabs like def tabs tabbed_fields = Set.new if resource_data.include? 'tabs' tabs = resource_data['tabs'] result = {} tabs.each do |tab| name = tab['name'] fields_list = fields_with('tab', tab['id']) fields_list.each { |f| tabbed_fields << f } result[name] = fields_list end all_fields = Set.new resource_data['fields'] result.each do |k, v| if v.empty? diff = (all_fields ^ tabbed_fields).to_a result[k] = diff end end return result else {} end end def tab_has_field?(tab_name, field_name) it_does = tabs[tab_name].select { |f| f['name'] == field_name } !it_does.empty? end def any_tabs? resource_data.include? 'tabs' end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems