diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e589480..9991f94 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -29,7 +29,7 @@ jobs:
ruby:
- 2.6
- 2.7
- - 3.0
+ - "3.0"
- 3.1
- ruby-head
- jruby
diff --git a/.github/workflows/generate-docs.yml b/.github/workflows/generate-docs.yml
new file mode 100644
index 0000000..b8d16ed
--- /dev/null
+++ b/.github/workflows/generate-docs.yml
@@ -0,0 +1,27 @@
+name: Build & deploy documentation
+on:
+ push:
+ branches:
+ - master
+ workflow_dispatch:
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ name: Update gh-pages with docs
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v2
+ - name: Set up Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: "3.1"
+ - name: Install required gem dependencies
+ run: gem install yard --no-document
+ - name: Build YARD Ruby Documentation
+ run: yardoc
+ - name: Deploy
+ uses: peaceiris/actions-gh-pages@v3
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ publish_dir: ./doc/yard
+ publish_branch: gh-pages
diff --git a/README.md b/README.md
index cf45097..e117b32 100644
--- a/README.md
+++ b/README.md
@@ -200,7 +200,7 @@ Blank nodes associated with rdf:List statements used as part of a built-in are m
* [SXP][SXP gem] (~> 1.2)
## Documentation
-Full documentation available on [RubyDoc.info](https://rubydoc.info/github/ruby-rdf/rdf-n3)
+Full documentation available on [RubyDoc.info](https://ruby-rdf.github.io/rdf-n3)
### Principle Classes
* {RDF::N3}
@@ -220,7 +220,7 @@ Full documentation available on [RubyDoc.info](https://rubydoc.info/github/ruby-
## Resources
* [RDF.rb][RDF.rb]
* [Distiller](http://rdf.greggkellogg.net/distiller)
-* [Documentation](https://rubydoc.info/github/ruby-rdf/rdf-n3/)
+* [Documentation](https://ruby-rdf.github.io/rdf-n3/)
* [History](file:file.History.html)
* [Notation-3][N3]
* [Team Submission][]
@@ -262,7 +262,7 @@ see or the accompanying {file:UNLICENSE} file.
*
*
-[RDF::Turtle]: https://ruby-rdf.github.com/rdf-turtle/
+[RDF::Turtle]: https://ruby-rdf.github.io/rdf-turtle/
[Design Issues]: https://www.w3.org/DesignIssues/Notation3.html "Notation-3 Design Issues"
[Team Submission]: https://www.w3.org/TeamSubmission/n3/
[Turtle]: https://www.w3.org/TR/turtle/
@@ -274,7 +274,7 @@ see or the accompanying {file:UNLICENSE} file.
[W3C N3 Community Group]: https://www.w3.org/community/n3-dev/
[N3]: https://w3c.github.io/N3/spec/
[PEG]: https://en.wikipedia.org/wiki/Parsing_expression_grammar
-[RDF.rb]: https://ruby-rdf.github.com/rdf
-[EBNF gem]: https://ruby-rdf.github.com/ebnf
-[SPARQL gem]: https://ruby-rdf.github.com/sparql
-[SXP gem]: https://ruby-rdf.github.com/sxp
+[RDF.rb]: https://ruby-rdf.github.io/rdf
+[EBNF gem]: https://ruby-rdf.github.io/ebnf
+[SPARQL gem]: https://ruby-rdf.github.io/sparql
+[SXP gem]: https://ruby-rdf.github.io/sxp
diff --git a/VERSION b/VERSION
index 944880f..e4604e3 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.2.0
+3.2.1
diff --git a/lib/rdf/n3.rb b/lib/rdf/n3.rb
index b8ccbe4..7a07f43 100644
--- a/lib/rdf/n3.rb
+++ b/lib/rdf/n3.rb
@@ -14,7 +14,7 @@ module RDF
# end
# end
#
- # @see http://www.rubydoc.info/github/ruby-rdf/rdf/
+ # @see https://ruby-rdf.github.io/rdf/
# @see https://www.w3.org/TR/REC-rdf-syntax/
#
# @author [Gregg Kellogg](http://greggkellogg.net/)
diff --git a/lib/rdf/n3/algebra/str/concatenation.rb b/lib/rdf/n3/algebra/str/concatenation.rb
index 8f37f91..52f1da0 100644
--- a/lib/rdf/n3/algebra/str/concatenation.rb
+++ b/lib/rdf/n3/algebra/str/concatenation.rb
@@ -11,7 +11,7 @@ class Concatenation < RDF::N3::Algebra::ListOperator
##
# The string:concatenation operator takes a list of terms cast to strings and either binds the result of concatenating them to the output variable, removes a solution that does equal the literal object.
#
- # List entries are stringified using {SPARQL::Algebra::Expression.cast}.
+ # List entries are stringified using [SPARQL::Algebra::Expression.cast](https://ruby-rdf.github.io/sparql/SPARQL/Algebra/Expression#cast-class_method).
#
# @param [RDF::N3::List] list
# @return [RDF::Term]
diff --git a/lib/rdf/n3/reader.rb b/lib/rdf/n3/reader.rb
index 483a3a0..ddd3d48 100644
--- a/lib/rdf/n3/reader.rb
+++ b/lib/rdf/n3/reader.rb
@@ -46,7 +46,7 @@ class Reader < RDF::Reader
##
# N3 Reader options
- # @see http://www.rubydoc.info/github/ruby-rdf/rdf/RDF/Reader#options-class_method
+ # @see https://ruby-rdf.github.io/rdf/RDF/Reader#options-class_method
def self.options
super + [
RDF::CLI::Option.new(
diff --git a/lib/rdf/n3/refinements.rb b/lib/rdf/n3/refinements.rb
index c8d6112..6602b5b 100644
--- a/lib/rdf/n3/refinements.rb
+++ b/lib/rdf/n3/refinements.rb
@@ -173,6 +173,32 @@ def evaluate(bindings, formulae:, **options)
refine ::RDF::Graph do
# Allow a graph to be treated as a term in a statement.
- include ::RDF::Term
+
+ ##
+ # @overload term?
+ # Returns `true` if `self` is a {RDF::Term}.
+ #
+ # @return [Boolean]
+ # @overload term?(name)
+ # Returns `true` if `self` contains the given RDF subject term.
+ #
+ # @param [RDF::Resource] value
+ # @return [Boolean]
+ def term?(*args)
+ case args.length
+ when 0 then true
+ when 1 then false
+ else raise ArgumentError("wrong number of arguments (given #{args.length}, expected 0 or 1)")
+ end
+ end
+
+ ##
+ # Returns itself.
+ #
+ # @return [RDF::Value]
+ def to_term
+ statements.map(&:terms)
+ self
+ end
end
end
diff --git a/lib/rdf/n3/writer.rb b/lib/rdf/n3/writer.rb
index 94a7132..ea56912 100644
--- a/lib/rdf/n3/writer.rb
+++ b/lib/rdf/n3/writer.rb
@@ -63,7 +63,7 @@ class Writer < RDF::Writer
##
# N3 Writer options
- # @see http://www.rubydoc.info/github/ruby-rdf/rdf/RDF/Writer#options-class_method
+ # @see https://ruby-rdf.github.io/rdf/RDF/Writer#options-class_method
def self.options
super + [
RDF::CLI::Option.new(
diff --git a/rdf-n3.gemspec b/rdf-n3.gemspec
index bc8feb7..5eb93d8 100755
--- a/rdf-n3.gemspec
+++ b/rdf-n3.gemspec
@@ -6,10 +6,17 @@ Gem::Specification.new do |gem|
gem.date = File.mtime('VERSION').strftime('%Y-%m-%d')
gem.name = %q{rdf-n3}
- gem.homepage = %q{https://ruby-rdf.github.com/rdf-n3}
+ gem.homepage = %q{https://ruby-rdf.github.io/rdf-n3}
gem.license = 'Unlicense'
gem.summary = %q{Notation3 reader/writer and reasoner for RDF.rb.}
gem.description = %q{RDF::N3 is an Notation-3 reader/writer and reasoner for the RDF.rb library suite.}
+ gem.metadata = {
+ "documentation_uri" => "https://ruby-rdf.github.io/rdf-n3",
+ "bug_tracker_uri" => "https://github.com/ruby-rdf/rdf-n3/issues",
+ "homepage_uri" => "https://github.com/ruby-rdf/rdf-n3",
+ "mailing_list_uri" => "https://lists.w3.org/Archives/Public/public-rdf-ruby/",
+ "source_code_uri" => "https://github.com/ruby-rdf/rdf-n3",
+ }
gem.authors = %w(Gregg Kellogg)
gem.email = 'public-rdf-ruby@w3.org'