module TimeScales::Frame

Public Class Methods

[](frame_parts = {}) click to toggle source
# File lib/time_scales/frame.rb, line 23
def [](frame_parts = {})
  return Frame::NullFrame.instance if frame_parts.keys.empty?

  part_defs = PartDefs.from_key_value_map( frame_parts )
  instance_for_part_defs( part_defs )
end
type_for(*part_keys) click to toggle source
# File lib/time_scales/frame.rb, line 16
def type_for(*part_keys)
  return Frame::NullFrame if part_keys.empty?

  part_defs = PartDefs.from_key_value_map( part_keys )
  type_for_parts( part_defs.parts )
end

Private Class Methods

instance_for_part_defs(defs) click to toggle source
# File lib/time_scales/frame.rb, line 38
def instance_for_part_defs(defs)
  type = type_for_parts( defs.parts )
  type.new( *defs.part_values )
end
type_for_parts(parts) click to toggle source
# File lib/time_scales/frame.rb, line 32
def type_for_parts(parts)
  return Frame::NullFrame if parts.empty?
  builder = TypeBuilder.new(parts)
  builder.call
end