BigW Consortium Gitlab

  1. 29 Jul, 2016 1 commit
    • Method for returning issues readable by a user · 002ad215
      Yorick Peterse authored
      The method Ability.issues_readable_by_user takes a list of users and an
      optional user and returns an Array of issues readable by said user. This
      method in turn is used by
      Banzai::ReferenceParser::IssueParser#nodes_visible_to_user so this
      method no longer needs to get all the available abilities just to check
      if a user has the "read_issue" ability.
      
      To test this I benchmarked an issue with 222 comments on my development
      environment. Using these changes the time spent in nodes_visible_to_user
      was reduced from around 120 ms to around 40 ms.
  2. 16 Jun, 2016 2 commits
  3. 15 Jun, 2016 1 commit
    • Eager load project relations in IssueParser · fce675d7
      Yorick Peterse authored
      By eager loading these associations we can greatly cut down the number
      of SQL queries executed when processing documents with lots of
      references, especially in cases where there are references belonging to
      the same project.
      
      Since these associations are so specific to the reference parsing
      process and the permissions checking process that follows it I opted to
      include them directly in IssueParser instead of using something like a
      scope. Once we have a need for it we can move this code to a scope or
      method.
  4. 03 Jun, 2016 2 commits
  5. 26 May, 2016 1 commit
    • Split Markdown rendering & reference gathering · 86166d28
      Yorick Peterse authored
      This splits the Markdown rendering and reference extraction phases into
      two distinct code bases. The reference extraction phase no longer relies
      on the html-pipeline Gem (and any related code) and allows for
      extracting of references from multiple HTML nodes in a single pass. This
      means that if you want to extract user references from 200 comments you
      no longer need to run 200 times N number of queries, instead only a
      handful of queries may be needed.