Skip to content

Instantly share code, notes, and snippets.

@camsaul
Created February 8, 2023 18:43
Show Gist options
  • Save camsaul/c3eec8e8974d77bf9f936448c211cd70 to your computer and use it in GitHub Desktop.
Save camsaul/c3eec8e8974d77bf9f936448c211cd70 to your computer and use it in GitHub Desktop.
Hydrate dox example

toucan2.tools.hydrate/simple-hydrate [model₁ k₂ instance] Implementations should return a version of map instance with the key k added.

simple-hydrate is defined in toucan2.tools.hydrate (toucan2/tools/hydrate.clj:483).

It caches methods using a methodical.impl.cache.watching.WatchingCache.

It uses the method combination methodical.impl.combo.threaded.ThreadingMethodCombination with the threading strategy :thread-last.

It uses the dispatcher methodical.impl.dispatcher.multi_default.MultiDefaultDispatcher with hierarchy #'clojure.core/global-hierarchy and prefs {}.

The default value is :default.

It uses the method table methodical.impl.method_table.standard.StandardMethodTable.

These primary methods are known:

  • [:default :can_write], defined in metabase.models.interface (/home/cam/metabase/src/metabase/models/interface.clj:425)

  • [:default :channels], defined in metabase.models.pulse (metabase/models/pulse.clj:220)

  • [:default :parameter_usage_count], defined in metabase.models.card (metabase/models/card.clj:45)

  • [:default :moderated_item], defined in metabase.moderation (metabase/moderation.clj:60)

  • [:default :average_query_time], defined in metabase.models.card (metabase/models/card.clj:52)

  • [:default :ancestors], defined in metabase.models.collection (metabase/models/collection.clj:365)

  • [:default :timeline], defined in metabase.models.timeline-event (metabase/models/timeline_event.clj:37)

  • [:default :resolved-params], defined in metabase.models.dashboard (metabase/models/dashboard.clj:404)

  • [:default :recipients], defined in metabase.models.pulse-channel (metabase/models/pulse_channel.clj:125)

  • [:default :pk_field], defined in metabase.models.table (metabase/models/table.clj:157)

  • [:default :dashboard_count], defined in metabase.models.card (metabase/models/card.clj:39)

  • [:default :fields], defined in metabase.models.table (metabase/models/table.clj:136)

  • [:default :ordered_cards], defined in metabase.models.dashboard (metabase/models/dashboard.clj:42)

  • [:default :cards], defined in metabase.models.pulse (metabase/models/pulse.clj:241)

  • [:default :effective_ancestors], defined in metabase.models.collection (metabase/models/collection.clj:378)

  • [:default :effective_children], defined in metabase.models.collection (metabase/models/collection.clj:528)

  • [:default :field_values], defined in metabase.models.table (metabase/models/table.clj:146)

  • [:default :effective_location], defined in metabase.models.collection (metabase/models/collection.clj:342)

  • [:default :has_field_values], defined in metabase.models.field (metabase/models/field.clj:290)

    It has the following documentation:

    Infer what the value of the has_field_values should be for Fields where it's not set. See documentation for has-field-values-options above for a more detailed explanation of what these values mean.

    This does one important thing: if :has_field_values is already present and set to :auto-list, it is replaced by :list -- presumably because the frontend doesn't need to know :auto-list even exists? See infer-has-field-values for more info.

  • [:default :param_fields], defined in metabase.models.params (metabase/models/params.clj:168)

  • [:default :members], defined in metabase.models.permissions-group (metabase/models/permissions_group.clj:113)

  • [:default :parent_id], defined in metabase.models.collection (metabase/models/collection.clj:403)

  • [:default :last_query_start], defined in metabase.models.card (metabase/models/card.clj:65)

  • [:default :tables], defined in metabase.models.database (metabase/models/database.clj:234)

  • [:default :series], defined in metabase.models.dashboard-card (metabase/models/dashboard_card.clj:73)

toucan2.tools.hydrate/simple-hydrate is defined in

jar:file:/home/cam/.m2/repository/io/github/camsaul/toucan2/1.0.516/toucan2-1.0.516.jar!/toucan2/tools/hydrate.clj.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment