Module: AbideDevUtils::Ppt::CodeGen::DataTypes
- Included in:
- AbideDevUtils::Ppt::CodeIntrospection::Declaration, AbideDevUtils::Ppt::CodeIntrospection::Parameter
- Defined in:
- lib/abide_dev_utils/ppt/code_gen/data_types.rb
Instance Method Summary collapse
-
#display_type_expr(param) ⇒ Object
Displays a Puppet type expression (type signature) as a string.
-
#display_type_expr_with_entries(te) ⇒ Object
Used by #display_type_expr.
-
#display_type_expr_with_left_expr(te) ⇒ Object
Used by #display_type_expr.
-
#display_value(val) ⇒ Object
Displays a Puppet type value as a string.
- #infer_data_type(data) ⇒ Object
Instance Method Details
#display_type_expr(param) ⇒ Object
Displays a Puppet type expression (type signature) as a string
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/abide_dev_utils/ppt/code_gen/data_types.rb', line 28 def display_type_expr(param) te = param.respond_to?(:type_expr) ? param.type_expr : param if te.respond_to? :left_expr display_type_expr_with_left_expr(te) elsif te.respond_to? :entries display_type_expr_with_entries(te) elsif te.respond_to? :cased_value te.cased_value elsif te.respond_to? :value te.value end end |
#display_type_expr_with_entries(te) ⇒ Object
Used by #display_type_expr
52 53 54 55 56 57 58 59 60 |
# File 'lib/abide_dev_utils/ppt/code_gen/data_types.rb', line 52 def display_type_expr_with_entries(te) te.entries.each_with_object({}) do |x, hsh| key = nil val = nil key = display_value(x.key) if x.respond_to? :key val = display_type_expr(x.value) if x.respond_to? :value hsh[key] = val if key end end |
#display_type_expr_with_left_expr(te) ⇒ Object
Used by #display_type_expr
42 43 44 45 46 47 48 49 |
# File 'lib/abide_dev_utils/ppt/code_gen/data_types.rb', line 42 def display_type_expr_with_left_expr(te) cased = nil keys = nil cased = te.left_expr.cased_value if te.left_expr.respond_to? :cased_value keys = te.keys.map { |x| display_type_expr(x) }.to_s if te.respond_to? :keys keys.tr!('"', '') unless cased == 'Enum' "#{cased}#{keys}" end |
#display_value(val) ⇒ Object
Displays a Puppet type value as a string
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/abide_dev_utils/ppt/code_gen/data_types.rb', line 14 def display_value(val) if val.is_a?(Puppet::Pops::Model::LiteralUndef) 'undef' elsif val.respond_to?(:value) display_value(val.value) elsif val.respond_to?(:cased_value) display_value(val.cased_value) else val end end |
#infer_data_type(data) ⇒ Object
9 10 11 |
# File 'lib/abide_dev_utils/ppt/code_gen/data_types.rb', line 9 def infer_data_type(data) Puppet::Pops::Types::TypeCalculator.infer(data).to_s end |