Sha256: 4ee658d63d4334751682310aab8125ada505a467ce7224254381726506b74c09
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 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 do |f| tabbed_fields << f end 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 do |f| f['name'] == field_name end !it_does.empty? end def any_tabs? resource_data.include? 'tabs' end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
faalis-1.0.0.alpha0 | lib/faalis/generators/concerns/tabs.rb |
faalis-0.26.3 | lib/faalis/generators/concerns/tabs.rb |