Module: Iriq::Explanation
- Defined in:
- lib/iriq/explanation.rb
Overview
Builds a per-segment explanation for a single identifier.
Explanation.explain("https://foo.com/users/123")
# => [
# { value: "users", type: :literal, variable: false, hint: nil },
# { value: "123", type: :integer_id, variable: true, hint: "user_id" },
# ]
Class Method Summary collapse
- .explain(input, classifier: SegmentClassifier::DEFAULT) ⇒ Object
- .explain_urn(iri, classifier) ⇒ Object
Class Method Details
.explain(input, classifier: SegmentClassifier::DEFAULT) ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/iriq/explanation.rb', line 12 def explain(input, classifier: SegmentClassifier::DEFAULT) iri = input.is_a?(Identifier) ? input : Parser.parse(input) if iri.urn? explain_urn(iri, classifier) else SegmentHints.derive(iri.path_segments, classifier) end end |
.explain_urn(iri, classifier) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/iriq/explanation.rb', line 22 def explain_urn(iri, classifier) return [] unless iri.nss parts = iri.nss.include?(":") ? iri.nss.split(":", 2) : [iri.nss] SegmentHints.derive(parts, classifier) end |