Sha256: aedc48fe0c4a75c10425a19b169aef6a87cc478d6888618c1162a90731469545

Contents?: true

Size: 768 Bytes

Versions: 7

Compression:

Stored size: 768 Bytes

Contents

##
# Test extension.
#
# Default implementation of http://shex.io/extensions/Test/
#
# @see http://shex.io/extensions/Test/
require 'shex'

module ShEx
  Test = Class.new(ShEx::Extension("http://shex.io/extensions/Test/")) do
    # (see ShEx::Extension#visit)
    def visit(code: nil, matched: nil, depth: 0, **options)
      str = if md = /^ *(fail|print) *\( *(?:(\"(?:[^\\"]|\\")*\")|([spo])) *\) *$/.match(code.to_s)
        md[2] || case md[3]
        when 's' then matched.subject
        when 'p' then matched.predicate
        when 'o' then matched.object
        else          matched.to_sxp
        end.to_s
      else
        matched ? matched.to_sxp : 'no statement'
      end

      $stdout.puts str
      return !md || md[1] == 'print'
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
shex-0.8.0 lib/shex/extensions/test.rb
shex-0.7.1 lib/shex/extensions/test.rb
shex-0.7.0 lib/shex/extensions/test.rb
shex-0.6.4 lib/shex/extensions/test.rb
shex-0.6.3 lib/shex/extensions/test.rb
shex-0.6.2 lib/shex/extensions/test.rb
shex-0.6.1 lib/shex/extensions/test.rb