Module: Vial::ExplainId
- Defined in:
- lib/vial/explain_id.rb
Class Method Summary collapse
Class Method Details
.normalize_vial_name(name) ⇒ Object
23 24 25 |
# File 'lib/vial/explain_id.rb', line 23 def normalize_vial_name(name) name.to_s.gsub('__', '/') end |
.parse(query) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/vial/explain_id.rb', line 7 def parse(query) query = query.to_s.strip match = query.match(/\[(\d+)\]\s*\z/) index = match ? match[1].to_i : 1 query = query.sub(/\[(\d+)\]\s*\z/, '') parts = query.split('.').map(&:strip).reject(&:empty?) raise ArgumentError, "Invalid explain_id query: #{query}" if parts.length < 2 vial_name = normalize_vial_name(parts.shift) label = parts.shift variants = parts [vial_name, label, variants, index] end |