class TimeScales::Frame::PartDefs
Attributes
part_defs[R]
Public Class Methods
from_key_value_map(kvm)
click to toggle source
# File lib/time_scales/frame/part_defs.rb, line 9 def from_key_value_map(kvm) part_defs = kvm.map { |part_key, value| PartDef.new( part_key, value ) } new( part_defs ) end
from_keys(part_keys)
click to toggle source
# File lib/time_scales/frame/part_defs.rb, line 16 def from_keys(part_keys) part_defs = part_keys.map { |key| PartDef.new(key) } new( part_defs ) end
new(part_defs)
click to toggle source
# File lib/time_scales/frame/part_defs.rb, line 22 def initialize(part_defs) @part_defs = part_defs end
Public Instance Methods
part_values()
click to toggle source
# File lib/time_scales/frame/part_defs.rb, line 30 def part_values assembly_sequence.map { |pd| pd.value } end
parts()
click to toggle source
# File lib/time_scales/frame/part_defs.rb, line 26 def parts @parts ||= assembly_sequence.map { |pd| pd.part } end
Private Instance Methods
assembly_sequence()
click to toggle source
# File lib/time_scales/frame/part_defs.rb, line 38 def assembly_sequence return [] if part_defs.empty? @assembly_sequence ||= begin seq = part_defs.sort_by { |ps| -ps.scale } seq.first.outer_scope! seq[0..-2].zip( seq[1..-1] ).each do |a,b| b.component_of! a.part end seq end end