Class: Observ::AgentSelectPresenter

Inherits:
Object
  • Object
show all
Defined in:
app/presenters/observ/agent_select_presenter.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(agents:) ⇒ AgentSelectPresenter

Initialize with dependency injection

Parameters:

  • agents (Array<Class>)

    array of agent classes implementing AgentSelectable



26
27
28
# File 'app/presenters/observ/agent_select_presenter.rb', line 26

def initialize(agents:)
  @agents = agents
end

Instance Attribute Details

#agentsObject (readonly)

Returns the value of attribute agents.



22
23
24
# File 'app/presenters/observ/agent_select_presenter.rb', line 22

def agents
  @agents
end

Class Method Details

.options(agents: Observ::AgentProvider.all_agents) ⇒ Array<Array<String>>

Convenience class method that injects agents from Observ::AgentProvider Useful when you don't need to filter or transform agents

Parameters:

  • agents (Array<Class>) (defaults to: Observ::AgentProvider.all_agents)

    optional array of agents (defaults to Observ::AgentProvider.all_agents)

Returns:

  • (Array<Array<String>>)

    options array for select dropdown



41
42
43
# File 'app/presenters/observ/agent_select_presenter.rb', line 41

def self.options(agents: Observ::AgentProvider.all_agents)
  new(agents: agents).options
end

Instance Method Details

#optionsArray<Array<String>>

Returns formatted options for Rails select helper Format: [[display_name, identifier], ...]

Returns:

  • (Array<Array<String>>)

    options array for select dropdown



33
34
35
# File 'app/presenters/observ/agent_select_presenter.rb', line 33

def options
  [default_option] + agent_options
end