Module: Lkml::Keys

Defined in:
lib/lkml/keys.rb

Constant Summary collapse

PLURAL_KEYS =
%w[
  access_filter access_grant action aggregate_table allowed_value assert bind_filters
  column constant datagroup remote_dependency local_dependency derived_column dimension
  dimension_group explore extends filter filters form_param include join link map_layer
  measure named_value_format option override_constant param parameter query set sql_step
  test user_attribute_param view when
].freeze
EXPR_BLOCK_KEYS =
%w[
  expression_custom_filter expression html sql_trigger_value sql_table_name
  sql_distinct_key sql_start sql_always_having sql_always_where sql_trigger
  sql_foreign_key sql_where sql_end sql_create sql_latitude sql_longitude sql_step
  sql_on sql sql_preamble
].freeze
QUOTED_LITERAL_KEYS =
%w[
  label view_label group_label group_item_label suggest_persist_for default_value
  direction value_format name url icon_url form_url default tags value description
  sortkeys indexes partition_keys connection include max_cache_age allowed_values
  timezone persist_for cluster_keys distribution extents_json_url feature_key file
  property_key property_label_key else interval_trigger
].freeze
KEYS_WITH_NAME_FIELDS =
%w[user_attribute_param param form_param option].freeze
CHARACTER_TO_TOKEN =
{
  "\0" => Tokens::StreamEndToken,
  "{" => Tokens::BlockStartToken,
  "}" => Tokens::BlockEndToken,
  "[" => Tokens::ListStartToken,
  "]" => Tokens::ListEndToken,
  "," => Tokens::CommaToken,
  ":" => Tokens::ValueToken,
  ";" => Tokens::ExpressionBlockEndToken
}.freeze

Class Method Summary collapse

Class Method Details

.pluralize(key) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/lkml/keys.rb', line 45

def pluralize(key)
  case key
  when "filters", "bind_filters", "extends"
    "#{key}__all"
  when "query"
    "queries"
  when "remote_dependency"
    "remote_dependencies"
  when "local_dependency"
    "local_dependencies"
  else
    "#{key}s"
  end
end

.singularize(key) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/lkml/keys.rb', line 60

def singularize(key)
  case key
  when "queries"
    "query"
  when "remote_dependencies"
    "remote_dependency"
  when "local_dependencies"
    "local_dependency"
  when /__all\z/
    key[0..-6]
  else
    key.end_with?("s") ? key.sub(/s+\z/, "") : key
  end
end