Class: Upkeep::SQLGlot::Scope

Inherits:
Data
  • Object
show all
Defined in:
lib/upkeep/sqlglot.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#columnsObject (readonly)

Returns the value of attribute columns

Returns:

  • (Object)

    the current value of columns



98
99
100
# File 'lib/upkeep/sqlglot.rb', line 98

def columns
  @columns
end

#cte_scopesObject (readonly)

Returns the value of attribute cte_scopes

Returns:

  • (Object)

    the current value of cte_scopes



98
99
100
# File 'lib/upkeep/sqlglot.rb', line 98

def cte_scopes
  @cte_scopes
end

#derived_table_scopesObject (readonly)

Returns the value of attribute derived_table_scopes

Returns:

  • (Object)

    the current value of derived_table_scopes



98
99
100
# File 'lib/upkeep/sqlglot.rb', line 98

def derived_table_scopes
  @derived_table_scopes
end

#external_columnsObject (readonly)

Returns the value of attribute external_columns

Returns:

  • (Object)

    the current value of external_columns



98
99
100
# File 'lib/upkeep/sqlglot.rb', line 98

def external_columns
  @external_columns
end

#is_correlatedObject (readonly)

Returns the value of attribute is_correlated

Returns:

  • (Object)

    the current value of is_correlated



98
99
100
# File 'lib/upkeep/sqlglot.rb', line 98

def is_correlated
  @is_correlated
end

#scope_typeObject (readonly)

Returns the value of attribute scope_type

Returns:

  • (Object)

    the current value of scope_type



98
99
100
# File 'lib/upkeep/sqlglot.rb', line 98

def scope_type
  @scope_type
end

#selected_sourcesObject (readonly)

Returns the value of attribute selected_sources

Returns:

  • (Object)

    the current value of selected_sources



98
99
100
# File 'lib/upkeep/sqlglot.rb', line 98

def selected_sources
  @selected_sources
end

#sourcesObject (readonly)

Returns the value of attribute sources

Returns:

  • (Object)

    the current value of sources



98
99
100
# File 'lib/upkeep/sqlglot.rb', line 98

def sources
  @sources
end

#subquery_scopesObject (readonly)

Returns the value of attribute subquery_scopes

Returns:

  • (Object)

    the current value of subquery_scopes



98
99
100
# File 'lib/upkeep/sqlglot.rb', line 98

def subquery_scopes
  @subquery_scopes
end

#union_scopesObject (readonly)

Returns the value of attribute union_scopes

Returns:

  • (Object)

    the current value of union_scopes



98
99
100
# File 'lib/upkeep/sqlglot.rb', line 98

def union_scopes
  @union_scopes
end

Class Method Details

.from_native(value) ⇒ Object



110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/upkeep/sqlglot.rb', line 110

def self.from_native(value)
  new(
    scope_type: value.fetch("scope_type").to_sym,
    sources: sources_from_native(value.fetch("sources")),
    columns: columns_from_native(value.fetch("columns")),
    external_columns: columns_from_native(value.fetch("external_columns")),
    derived_table_scopes: scopes_from_native(
      value.fetch("derived_table_scopes")
    ),
    subquery_scopes: scopes_from_native(value.fetch("subquery_scopes")),
    union_scopes: scopes_from_native(value.fetch("union_scopes")),
    cte_scopes: scopes_from_native(value.fetch("cte_scopes")),
    selected_sources: sources_from_native(value.fetch("selected_sources")),
    is_correlated: value.fetch("is_correlated")
  )
end

Instance Method Details

#child_scopesObject



127
128
129
# File 'lib/upkeep/sqlglot.rb', line 127

def child_scopes
  derived_table_scopes + subquery_scopes + union_scopes + cte_scopes
end

#walk {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



131
132
133
134
135
136
# File 'lib/upkeep/sqlglot.rb', line 131

def walk(&block)
  return enum_for(:walk) unless block

  yield self
  child_scopes.each { |child| child.walk(&block) }
end