Module: Kumi::Core::Compiler::AccessEmit::Read
- Extended by:
- Base
- Defined in:
- lib/kumi/core/compiler/access_emit/read.rb
Class Method Summary collapse
Methods included from Base
array_guard_code, build_array_miss_action, build_miss_action, fetch_hash_code, segment_ops
Class Method Details
.build(plan) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/kumi/core/compiler/access_emit/read.rb', line 9 def build(plan) policy = plan.on_missing || :error key_policy = plan.key_policy || :indifferent path_key = plan.path ops = plan.operations body = ops.map do |op| case op[:type] when :enter_hash fetch_hash_code(node_var: "node", key: op[:key], key_policy: key_policy, preview_array: false, mode: :read, policy: policy, path_key: path_key, map_depth: 0) when :enter_array %(raise TypeError, "Array encountered in :read accessor at '#{path_key}'") end end.join("\n ") " lambda do |data|\n node = data\n \#{body}\n node\n end\n RUBY\nend\n" |