Module: ForemanCustomTab::HostsHelperExtensions

Extended by:
ActiveSupport::Concern
Defined in:
app/helpers/concerns/foreman_custom_tab/hosts_helper_extensions.rb

Instance Method Summary collapse

Instance Method Details

#custom_tab_fields(host) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/helpers/concerns/foreman_custom_tab/hosts_helper_extensions.rb', line 5

def custom_tab_fields(host)
  fields = []
  config_fields = SETTINGS[:custom_tab][:fields] || []
  config_fields.each do |key, value|
    # chain the method calls for attibutes like operatingsystem.title
    host_attr_val = value.split('.').inject(host) do |memo, method|
      if (m = method.match(/(.*)\((.*)\)/))
        memo.try(m[1], *m[2].split(/,\s?/))
      elsif (m = method.match(/(.*)\[(.*)\]/))
        memo.try(m[1]).try('[]', m[2])
      else
        memo.try(method)
      end
    end
    fields += [[_(key.to_s), host_attr_val]] if host_attr_val.present?
  end
  fields
end

#custom_tab_titleObject



24
25
26
# File 'app/helpers/concerns/foreman_custom_tab/hosts_helper_extensions.rb', line 24

def custom_tab_title
  SETTINGS[:custom_tab][:title] || 'Custom Tab'
end