module BehaveFun::TaskSerializer

Public Instance Methods

as_json() click to toggle source
# 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_status() click to toggle source
# 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
name() click to toggle source
# File lib/behave_fun/task_serializer.rb, line 3
def name
  self.class.task_name
end
restore_status(data) click to toggle source
# 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_fields() click to toggle source
# File lib/behave_fun/task_serializer.rb, line 15
def serializable_status_fields
  []
end