lib/shex/algebra.rb in shex-0.4.0 vs lib/shex/algebra.rb in shex-0.5.0
- old
+ new
@@ -5,29 +5,35 @@
module ShEx
# Based on the SPARQL Algebra, operators for executing a patch
#
# @author [Gregg Kellogg](http://greggkellogg.net/)
module Algebra
- autoload :And, 'shex/algebra/and'
- autoload :Annotation, 'shex/algebra/annotation'
- autoload :EachOf, 'shex/algebra/each_of'
- autoload :External, 'shex/algebra/external'
- autoload :Not, 'shex/algebra/not'
- autoload :NodeConstraint, 'shex/algebra/node_constraint'
- autoload :OneOf, 'shex/algebra/one_of'
- autoload :Operator, 'shex/algebra/operator'
- autoload :Or, 'shex/algebra/or'
- autoload :Schema, 'shex/algebra/schema'
- autoload :SemAct, 'shex/algebra/semact'
- autoload :ShapeExpression, 'shex/algebra/shape_expression'
- autoload :Shape, 'shex/algebra/shape'
- autoload :Start, 'shex/algebra/start'
- autoload :Stem, 'shex/algebra/stem'
- autoload :StemRange, 'shex/algebra/stem_range'
+ autoload :And, 'shex/algebra/and'
+ autoload :Annotation, 'shex/algebra/annotation'
+ autoload :EachOf, 'shex/algebra/each_of'
+ autoload :External, 'shex/algebra/external'
+ autoload :IriStem, 'shex/algebra/stem'
+ autoload :IriStemRange, 'shex/algebra/stem_range'
+ autoload :LanguageStem, 'shex/algebra/stem'
+ autoload :LanguageStemRange,'shex/algebra/stem_range'
+ autoload :LiteralStem, 'shex/algebra/stem'
+ autoload :LiteralStemRange, 'shex/algebra/stem_range'
+ autoload :NodeConstraint, 'shex/algebra/node_constraint'
+ autoload :Not, 'shex/algebra/not'
+ autoload :OneOf, 'shex/algebra/one_of'
+ autoload :Operator, 'shex/algebra/operator'
+ autoload :Or, 'shex/algebra/or'
+ autoload :Schema, 'shex/algebra/schema'
+ autoload :SemAct, 'shex/algebra/semact'
+ autoload :Shape, 'shex/algebra/shape'
+ autoload :ShapeExpression, 'shex/algebra/shape_expression'
+ autoload :Start, 'shex/algebra/start'
+ autoload :Stem, 'shex/algebra/stem'
+ autoload :StemRange, 'shex/algebra/stem_range'
autoload :TripleConstraint, 'shex/algebra/triple_constraint'
autoload :TripleExpression, 'shex/algebra/triple_expression'
- autoload :Value, 'shex/algebra/value'
+ autoload :Value, 'shex/algebra/value'
##
# Creates an operator instance from a parsed ShExJ representation
#
@@ -44,25 +50,29 @@
# @option options [Hash{String => RDF::URI}] :prefixes
# @return [Operator]
def self.from_shexj(operator, options = {})
raise ArgumentError unless operator.is_a?(Hash)
klass = case operator['type']
- when 'Annotation' then Annotation
- when 'EachOf' then EachOf
- when 'NodeConstraint' then NodeConstraint
- when 'OneOf' then OneOf
- when 'Schema' then Schema
- when 'SemAct' then SemAct
- when 'Shape' then Shape
- when 'ShapeAnd' then And
- when 'ShapeExternal' then External
- when 'ShapeNot' then Not
- when 'ShapeOr' then Or
- when 'Stem' then Stem
- when 'StemRange' then StemRange
- when 'TripleConstraint' then TripleConstraint
- when 'Wildcard' then StemRange
- else raise ArgumentError, "unknown type #{operator['type']}"
+ when 'Annotation' then Annotation
+ when 'EachOf' then EachOf
+ when 'IriStem' then IriStem
+ when 'IriStemRange' then IriStemRange
+ when 'LanguageStem' then LanguageStem
+ when 'LanguageStemRange' then LanguageStemRange
+ when 'LiteralStem' then LiteralStem
+ when 'LiteralStemRange' then LiteralStemRange
+ when 'NodeConstraint' then NodeConstraint
+ when 'OneOf' then OneOf
+ when 'Schema' then Schema
+ when 'SemAct' then SemAct
+ when 'Shape' then Shape
+ when 'ShapeAnd' then And
+ when 'ShapeExternal' then External
+ when 'ShapeNot' then Not
+ when 'ShapeOr' then Or
+ when 'TripleConstraint' then TripleConstraint
+ when 'Wildcard' then StemRange
+ else raise ArgumentError, "unknown type #{operator['type'].inspect}"
end
klass.from_shexj(operator, options)
end
end