class AgentClient::Segment
Represents a link in a Stratumn application
Attributes
agent[RW]
link[RW]
link_hash[RW]
meta[RW]
state[RW]
Public Class Methods
from(segment)
click to toggle source
# File lib/agent_client/segment.rb, line 49 def self.from(segment) agent = Agent.load(segment['meta']['agentUrl']) new(agent, segment) end
new(agent, obj)
click to toggle source
# File lib/agent_client/segment.rb, line 24 def initialize(agent, obj) self.agent = agent self.link = obj['link'] self.meta = link['meta'] self.state = link['state'] self.link_hash = obj['meta']['linkHash'] agent.agent_info['actions'].each do |(method, _)| add_transition_method(method) end end
Public Instance Methods
find_segments(options = {})
click to toggle source
# File lib/agent_client/segment.rb, line 41 def find_segments(options = {}) agent.find_segments(options) end
load()
click to toggle source
# File lib/agent_client/segment.rb, line 45 def load agent.get_segment(link_hash) end
previous()
click to toggle source
# File lib/agent_client/segment.rb, line 37 def previous agent.get_segment(meta['prevLinkHash']) if meta['prevLinkHash'] end
Private Instance Methods
add_transition_method(method)
click to toggle source
# File lib/agent_client/segment.rb, line 57 def add_transition_method(method) define_singleton_method(method) do |*args| url = "#{agent.url}/segments/#{link_hash}/#{method}" result = post(url, json: args) self.class.new(agent, result) end singleton_class.send(:alias_method, underscore(method), method) end