.. _codeql-for-ruby:

CodeQL for Ruby
===============

Experiment and learn how to write effective and efficient queries for CodeQL databases generated from Ruby codebases.

.. toctree::
   :hidden:

   basic-query-for-ruby-code
   codeql-library-for-ruby
   abstract-syntax-tree-classes-for-working-with-ruby-programs
   analyzing-data-flow-in-ruby
   using-api-graphs-in-ruby
   customizing-library-models-for-ruby

-  :doc:`Basic query for Ruby code <basic-query-for-ruby-code>`: Learn to write and run a simple CodeQL query.

-  :doc:`CodeQL library for Ruby <codeql-library-for-ruby>`: When you're analyzing a Ruby program, you can make use of the large collection of classes in the CodeQL library for Ruby.

-  :doc:`Analyzing data flow in Ruby <analyzing-data-flow-in-ruby>`: You can use CodeQL to track the flow of data through a Ruby program to places where the data is used.

-  :doc:`Using API graphs in Ruby <using-api-graphs-in-ruby>`: API graphs are a uniform interface for referring to functions, classes, and methods defined in external libraries.

-  :doc:`Abstract syntax tree classes for working with Ruby programs <abstract-syntax-tree-classes-for-working-with-ruby-programs>`: CodeQL has a large selection of classes for representing the abstract syntax tree of Ruby programs.

-  :doc:`Customizing library models for Ruby <customizing-library-models-for-ruby>`: You can model frameworks and libraries that your codebase depends on using data extensions and publish them as CodeQL model packs.
