From a5874da0aec09567802e7e7d0e0a6acf15843dec Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Thu, 5 Jan 2017 23:56:42 +0900 Subject: [PATCH] Expose Agent#id to Liquid (and to JavaScriptAgent) --- app/models/agent.rb | 27 ++++++++++++++------------- spec/models/agent_spec.rb | 10 +++++----- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/app/models/agent.rb b/app/models/agent.rb index 66672d28..580fa86b 100644 --- a/app/models/agent.rb +++ b/app/models/agent.rb @@ -445,19 +445,20 @@ class AgentDrop @object.short_type end - METHODS = [ - :name, - :type, - :options, - :memory, - :sources, - :receivers, - :schedule, - :controllers, - :control_targets, - :disabled, - :keep_events_for, - :propagate_immediately, + METHODS = %i[ + id + name + type + options + memory + sources + receivers + schedule + controllers + control_targets + disabled + keep_events_for + propagate_immediately ] METHODS.each { |attr| diff --git a/spec/models/agent_spec.rb b/spec/models/agent_spec.rb index 7a67a587..5b96ffef 100644 --- a/spec/models/agent_spec.rb +++ b/spec/models/agent_spec.rb @@ -1013,11 +1013,11 @@ describe AgentDrop do expect(@efa.to_liquid.class).to be(AgentDrop) end - it 'should have .type and .name' do - t = '{{agent.type}}: {{agent.name}}' - expect(interpolate(t, @wsa1)).to eq('WebsiteAgent: XKCD') - expect(interpolate(t, @wsa2)).to eq('WebsiteAgent: Dilbert') - expect(interpolate(t, @efa)).to eq('EventFormattingAgent: Formatter') + it 'should have .id, .type and .name' do + t = '[{{agent.id}}]{{agent.type}}: {{agent.name}}' + expect(interpolate(t, @wsa1)).to eq("[#{@wsa1.id}]WebsiteAgent: XKCD") + expect(interpolate(t, @wsa2)).to eq("[#{@wsa2.id}]WebsiteAgent: Dilbert") + expect(interpolate(t, @efa)).to eq("[#{@efa.id}]EventFormattingAgent: Formatter") end it 'should have .options' do