Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
schedules
schedules
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 11
    • Issues 11
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • SRCT
  • schedulesschedules
  • Issues
  • #47

Closed
Open
Opened Jul 19, 2019 by Zac Wood@zwood2Owner

Handle searching for "CS112" like "CS 112"

Summary

When searching for a specific course, the search function expects the course and number to be separated. This can be seen in the regular expression for handling this case in app/controllers/search_controller.rb.

/[[:alpha:]]{2,4} \d{3}/.match(params[:query]) do |m| # search for a pattern like "CS 112"
  subj, num = m[0].split(' ') # Split the matched string into its components, ["CS", "112"]
  course = Course.find_by(subject: subj.upcase, course_number: num) # find the course
  redirect_to(course_url(course)) unless course.nil? # redirect to the course if it exists
end

Either extend this regular expression or add a new regular expression matcher to account for cases like "CS112".

Helpful Links

  • Current implementation: search_controller.rb
  • Ruby regular expressions guide
  • Regular expression editor to test on
Edited Jul 19, 2019 by Zac Wood
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: srct/schedules#47