Module: Remocon::ConditionSorter
- Included in:
- Remocon::Command::Pull
- Defined in:
- lib/remocon/sorter/condition_sorter.rb
Constant Summary collapse
- CONDITION_KEYS =
%w(name expression tagColor).freeze
Instance Method Summary collapse
Instance Method Details
#comparator_of_condition_keys(left, right) ⇒ Object
7 8 9 |
# File 'lib/remocon/sorter/condition_sorter.rb', line 7 def comparator_of_condition_keys(left, right) (CONDITION_KEYS.index(left) || 10_000) <=> (CONDITION_KEYS.index(right) || 10_000) end |
#sort_conditions(conditions) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/remocon/sorter/condition_sorter.rb', line 11 def sort_conditions(conditions) conditions .sort_by { |e| e["name"] || e[:name] } .map do |e| e.stringify_keys .sort { |(a, _), (b, _)| comparator_of_condition_keys(a, b) } .each_with_object({}) { |(k, v), acc| acc[k] = v } .with_indifferent_access end end |