Method: QueryBuilder::Processor.load_custom_queries

Defined in:
lib/query_builder/processor.rb

.load_custom_queries(directories) ⇒ Object

Load prepared SQL definitions from a set of directories. If the file does not contain “group” or “groups” keys, the filename is used as group.

Parameters

query<String>

Path to list of custom queries yaml files.

Examples

DummyQuery.load_custom_queries("/path/to/some/*/directory")

The format of a custom query definition is:

groups:
  - test.host
DummyQuery:      # QueryBuilder class
  abc:           # query's relation name
    select:      # selected fields
      - 'a'
      - '34 AS number'
      - 'c'
    tables:      # tables used
      - 'test'
    join_tables: # joins
      test:
        - LEFT JOIN other ON other.test_id = test.id
    where:    # filters
      - '1'
      - '2'
      - '3'
    order:  'a DESC' # order clause

Once loaded, this ‘custom query’ can be used in a query like:

"images from abc where a > 54"


74
75
76
77
78
# File 'lib/query_builder/processor.rb', line 74

def load_custom_queries(directories)
  # lazy loading (evaluation happens on first query)
  self.custom_query_files ||= []
  self.custom_query_files << directories
end