Skip to content

Instantly share code, notes, and snippets.

@mPastuszko
Created August 15, 2014 19:42
Show Gist options
  • Save mPastuszko/a5bf1b99b10a4ecdb5db to your computer and use it in GitHub Desktop.
Save mPastuszko/a5bf1b99b10a4ecdb5db to your computer and use it in GitHub Desktop.
Ruby looks like LISP sometimes
.map { |subject_answers|
subject_answers.merge(
summary: (subject_answers[:summary_r] || subject_answers[:summary_w])
.keys
.inject({}) { |memo, material|
memo.merge(
material => subject_answers[:summary_r][material]
.keys
.inject({}) { |memo, probe|
memo.merge(
probe => subject_answers[:summary_r][material][probe]
.keys
.inject({}) { |memo, stat|
memo.merge(
stat =>
(subject_answers[:summary_r][material][probe][stat] rescue 0) +
(subject_answers[:summary_w][material][probe][stat] rescue 0)
)
}
)
}
)
}
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment