Class: RDF::N3::Algebra::Str::Replace
- Inherits:
-
ListOperator
- Object
- SPARQL::Algebra::Operator::Binary
- ListOperator
- RDF::N3::Algebra::Str::Replace
- Includes:
- Builtin
- Defined in:
- lib/rdf/n3/algebra/str/replace.rb
Overview
A built-in for replacing characters or sub. takes a list of 3 strings; the first is the input data, the second the old and the third the new string. The object is calculated as the replaced string.
Constant Summary collapse
- NAME =
:strReplace- URI =
RDF::N3::Str.replace
Instance Attribute Summary
Attributes included from Enumerable
Instance Method Summary collapse
- #resolve(list) ⇒ RDF::Term
-
#validate(list) ⇒ Boolean
Subclasses may override or supplement validate to perform validation on the list subject.
Methods included from Builtin
#each, #evaluate, #hash, #input_operand, #rank, #to_uri
Methods inherited from ListOperator
#as_literal, #execute, #input_operand
Instance Method Details
#resolve(list) ⇒ RDF::Term
15 16 17 18 19 |
# File 'lib/rdf/n3/algebra/str/replace.rb', line 15 def resolve(list) format, *args = list.to_a.map(&:value) input, old_str, new_str = list.to_a RDF::Literal(input.to_s.gsub(old_str.to_s, new_str.to_s)) end |
#validate(list) ⇒ Boolean
Subclasses may override or supplement validate to perform validation on the list subject
26 27 28 29 30 31 32 33 |
# File 'lib/rdf/n3/algebra/str/replace.rb', line 26 def validate(list) if super && list.length == 3 && list.to_a.all?(&:literal?) true else log_error(NAME) {"list must have exactly three entries: #{list.to_sxp}"} false end end |