module HaveAPI::Fs::Components class ActionInput < Directory component :action_input attr_reader :action_dir def initialize(action_dir, *args) super(*args) @action_dir = action_dir end def contents super + parameters.keys.map(&:to_s) end def parameters @action_dir.action.input_params end def values Hash[children.select { |n, c| c.is_a?(Parameter) && c.set? }.map { |n, c| [n, c.value] }] end def title 'Input parameters' end protected def new_child(name) if child = super child elsif @action_dir.action.input_params.has_key?(name) [Parameter, @action_dir.action, name, :input] else nil end end end end