Class: BqCoaster::Generators::DataflowConverter::Context
- Inherits:
-
Object
- Object
- BqCoaster::Generators::DataflowConverter::Context
- Defined in:
- lib/bq_coaster/generators/dataflow_converter/context.rb
Instance Attribute Summary collapse
-
#renderer ⇒ Object
readonly
Returns the value of attribute renderer.
Instance Method Summary collapse
- #definitions ⇒ Object
- #field_name(name) ⇒ Object
-
#initialize(renderer) ⇒ Context
constructor
A new instance of Context.
- #nested?(definition) ⇒ Boolean
- #prefix ⇒ Object
- #render_converter(name, definition) ⇒ Object
- #string?(definition) ⇒ Boolean
- #value(name, definition) ⇒ Object
Constructor Details
#initialize(renderer) ⇒ Context
Returns a new instance of Context.
12 13 14 |
# File 'lib/bq_coaster/generators/dataflow_converter/context.rb', line 12 def initialize(renderer) @renderer = renderer end |
Instance Attribute Details
#renderer ⇒ Object (readonly)
Returns the value of attribute renderer.
10 11 12 |
# File 'lib/bq_coaster/generators/dataflow_converter/context.rb', line 10 def renderer @renderer end |
Instance Method Details
#definitions ⇒ Object
16 17 18 |
# File 'lib/bq_coaster/generators/dataflow_converter/context.rb', line 16 def definitions renderer.definitions end |
#field_name(name) ⇒ Object
20 21 22 |
# File 'lib/bq_coaster/generators/dataflow_converter/context.rb', line 20 def field_name(name) "#{prefix}.#{name}".sub(/src\./, "").tr(".", "_") end |
#nested?(definition) ⇒ Boolean
24 25 26 27 28 |
# File 'lib/bq_coaster/generators/dataflow_converter/context.rb', line 24 def nested?(definition) !( definition.nil? || BqCoaster.edge_properties.any? { |c| definition.include?(c) } ) end |
#prefix ⇒ Object
30 31 32 |
# File 'lib/bq_coaster/generators/dataflow_converter/context.rb', line 30 def prefix renderer.prefix end |
#render_converter(name, definition) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/bq_coaster/generators/dataflow_converter/context.rb', line 34 def render_converter(name, definition) ConverterRenderer.new( definition, prefix: "#{prefix}.#{name}", indent: 1 ).render end |
#string?(definition) ⇒ Boolean
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/bq_coaster/generators/dataflow_converter/context.rb', line 42 def string?(definition) return false if nested?(definition) return true if definition.nil? if definition.key?(:_original_type) definition._original_type == "String" else return true unless definition.key?(:_type) definition._type.casecmp("string").zero? end end |
#value(name, definition) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/bq_coaster/generators/dataflow_converter/context.rb', line 53 def value(name, definition) if definition&.key?(:_convert) definition._convert.gsub(/%s/, "#{prefix}.#{name}") else "#{prefix}.#{name}" end end |