module FlightFacade::GroupFacade
Constants
- EXPLODE_REGEX
- PADDING_REGEX
Public Class Methods
explode_names(input)
click to toggle source
# File lib/flight_facade/facades.rb, line 98 def self.explode_names(input) parts = input.split(',').reject(&:empty?) return nil unless parts.all? { |p| EXPLODE_REGEX.match?(p) } parts.map do |part| captures = EXPLODE_REGEX.match(part).named_captures.reject { |_, v| v.nil? } if captures.key?('low') leader = captures['leader'] max_pads = PADDING_REGEX.match(leader).to_s.length stripped_leader = leader.sub(PADDING_REGEX, '') low = captures['low'].to_i high = captures['high'].to_i (low..high).map do |index| pads = max_pads - index.to_s.length + 1 "#{stripped_leader}#{'0' * pads if pads > 0}#{index}" end else part end end.flatten end
Public Instance Methods
find_by_name(name)
click to toggle source
# File lib/flight_facade/facades.rb, line 119 def find_by_name(name) node_names = self.class.explode_names(name) return nil if node_names.nil? nodes = node_names.map { |n| NodeFacade.find_by_name(n) }.reject(&:nil?) Group.new(name: name, nodes: nodes) end
index_all()
click to toggle source
# File lib/flight_facade/facades.rb, line 126 def index_all [] end