Module: BehaveFun::TaskSerializer

Included in:
Task
Defined in:
lib/behave_fun/task_serializer.rb

Instance Method Summary collapse

Instance Method Details

#as_jsonObject



7
8
9
10
11
12
13
# File 'lib/behave_fun/task_serializer.rb', line 7

def as_json
  data = { type: name }
  data.merge!(params: params) if params.any?
  data.merge!(guard_with: guard.as_json) if guard
  data.merge!(children: children.map { _1.as_json }) if children.any?
  data
end

#dump_statusObject



19
20
21
22
23
24
25
26
# File 'lib/behave_fun/task_serializer.rb', line 19

def dump_status
  data = serializable_status_fields.inject({}) do |data, method_name|
    data.merge(method_name => send(method_name))
  end
  data.merge!(status: status)
  data.merge!(children: children.map(&:dump_status)) if children.any?
  data
end

#nameObject



3
4
5
# File 'lib/behave_fun/task_serializer.rb', line 3

def name
  self.class.task_name
end

#restore_status(data) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/behave_fun/task_serializer.rb', line 28

def restore_status(data)
  @status = data[:status].to_sym

  serializable_status_fields.each do |method_name|
    send("#{method_name}=", data[method_name])
  end

  if data[:children]
    children.zip(data[:children]).each do |child, child_data|
      child.restore_status(child_data)
    end
  end
end

#serializable_status_fieldsObject



15
16
17
# File 'lib/behave_fun/task_serializer.rb', line 15

def serializable_status_fields
  []
end