From a3333c54c0a4eee6ae1c4c5a8a4c33c63c86c5f2 Mon Sep 17 00:00:00 2001 From: Tom Morris Date: Fri, 24 Oct 2008 12:37:18 +0100 Subject: [PATCH] Getting ready for release: removed docs, renamed all files over to Reddy rather than Rena --- README.txt | 32 +- Rakefile | 15 +- doc/AboutEachException.html | 23 - doc/BNode.html | 457 ---- doc/Graph.html | 1143 --------- doc/Literal.html | 370 --- doc/Namespace.html | 507 ---- doc/REXML/Element.html | 370 --- doc/RdfXmlParser.html | 210 -- doc/RdfaParser.html | 340 --- doc/Rena.html | 23 - doc/Triple.html | 317 --- doc/TypedLiteral.html | 446 ---- doc/URIRef.html | 349 --- doc/UriRelativeException.html | 27 - doc/all-methods.html | 772 ------ doc/all-namespaces.html | 46 - doc/app.js | 18 - doc/index.html | 18 - doc/jquery.js | 11 - doc/readme.html | 79 - doc/style.css | 65 - doc/syntax_highlight.css | 21 - lib/reddy.rb | 5 + lib/{rena => reddy}/bnode.rb | 0 .../exceptions/about_each_exception.rb | 0 .../exceptions/uri_relative_exception.rb | 0 lib/{rena => reddy}/graph.rb | 10 +- lib/{rena => reddy}/libxml_hacks.rb | 0 lib/{rena => reddy}/literal.rb | 0 lib/{rena => reddy}/n3_grammar.treetop | 0 lib/{rena => reddy}/n3parser.rb | 2 +- lib/{rena => reddy}/namespace.rb | 4 +- lib/{rena => reddy}/rdfaparser.rb | 2 +- lib/{rena => reddy}/rdfxmlparser.rb | 55 +- lib/{rena => reddy}/rexml_hacks.rb | 2 +- lib/{rena => reddy}/triple.rb | 4 +- lib/{rena => reddy}/uriref.rb | 4 +- lib/rena.rb | 5 - rena.gemspec => reddy.gemspec | 6 +- spec/bnode_spec.rb | 2 +- spec/graph_spec.rb | 2 +- spec/literal_spec.rb | 2 +- spec/n3parser_spec.rb | 2 +- spec/namespaces_spec.rb | 2 +- spec/parser_spec.rb | 34 +- spec/rdfa_parser_spec.rb | 2 +- spec/rexml_hacks_spec.rb | 30 +- spec/triple_spec.rb | 14 +- spec/uriref_spec.rb | 11 +- test/perf_test/test.rb | 11 + test/perf_test/tommorris.rdf | 2267 +++++++++++++++++ test/rdf_tests/xml-literal-mixed.nt | 7 + test/rdf_tests/xml-literal-mixed.rdf | 15 + 54 files changed, 2447 insertions(+), 5712 deletions(-) delete mode 100644 doc/AboutEachException.html delete mode 100644 doc/BNode.html delete mode 100644 doc/Graph.html delete mode 100644 doc/Literal.html delete mode 100644 doc/Namespace.html delete mode 100644 doc/REXML/Element.html delete mode 100644 doc/RdfXmlParser.html delete mode 100644 doc/RdfaParser.html delete mode 100644 doc/Rena.html delete mode 100644 doc/Triple.html delete mode 100644 doc/TypedLiteral.html delete mode 100644 doc/URIRef.html delete mode 100644 doc/UriRelativeException.html delete mode 100644 doc/all-methods.html delete mode 100644 doc/all-namespaces.html delete mode 100644 doc/app.js delete mode 100644 doc/index.html delete mode 100644 doc/jquery.js delete mode 100644 doc/readme.html delete mode 100644 doc/style.css delete mode 100644 doc/syntax_highlight.css create mode 100644 lib/reddy.rb rename lib/{rena => reddy}/bnode.rb (100%) rename lib/{rena => reddy}/exceptions/about_each_exception.rb (100%) rename lib/{rena => reddy}/exceptions/uri_relative_exception.rb (100%) rename lib/{rena => reddy}/graph.rb (97%) rename lib/{rena => reddy}/libxml_hacks.rb (100%) rename lib/{rena => reddy}/literal.rb (100%) rename lib/{rena => reddy}/n3_grammar.treetop (100%) rename lib/{rena => reddy}/n3parser.rb (99%) rename lib/{rena => reddy}/namespace.rb (97%) rename lib/{rena => reddy}/rdfaparser.rb (98%) rename lib/{rena => reddy}/rdfxmlparser.rb (87%) rename lib/{rena => reddy}/rexml_hacks.rb (98%) rename lib/{rena => reddy}/triple.rb (97%) rename lib/{rena => reddy}/uriref.rb (93%) delete mode 100644 lib/rena.rb rename rena.gemspec => reddy.gemspec (61%) create mode 100644 test/perf_test/test.rb create mode 100644 test/perf_test/tommorris.rdf create mode 100644 test/rdf_tests/xml-literal-mixed.nt create mode 100644 test/rdf_tests/xml-literal-mixed.rdf diff --git a/README.txt b/README.txt index 362dc2b..845a320 100644 --- a/README.txt +++ b/README.txt @@ -1,32 +1,39 @@ -= rena += reddy -* http://github.com/tommorris/rena +* http://github.com/tommorris/reddy == DESCRIPTION: -Rena is an RDF library for Ruby. +Reddy is an RDF library for Ruby. == FEATURES/PROBLEMS: -* Features +* RDF/XML parser is beginning to parse tests. +* N3 parser +* Working on an RDFa parser - for now, please use a web service (etc.) to process +* No serializer except N-Triples == SYNOPSIS: - Synopsis +A simple RDF library for Ruby has been necessary for some time. == REQUIREMENTS: -* Addressable gem +* Addressable +* Treetop +* Whatlanguage +* libxml-ruby +* facets == INSTALL: -* (sudo gem install rena) +* (sudo gem install reddy) == LICENSE: (The MIT License) -Copyright (c) 2008 Tom Morris +Copyright (c) 2008 Tom Morris and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -45,4 +52,11 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +== FEEDBACK + +* tom@tommorris.org +* github.com/tommorris/reddy +* tommorris.lighthouseapp.com for bug reports +* public-rdf-ruby mailing list on w3.org \ No newline at end of file diff --git a/Rakefile b/Rakefile index a0a64a0..85a6bc1 100644 --- a/Rakefile +++ b/Rakefile @@ -30,15 +30,15 @@ end desc "Turns spec results into HTML and publish to web (Tom only!)" task :spec_html do - sh "spec --format html:rena_new_spec.html spec" - sh "scp rena_new_spec.html bbcityco@bbcity.co.uk:www/tom/files/rena_new_spec.html" - sh "rm rena_new_spec.html" + sh "spec --format html:reddy_new_spec.html spec" + sh "scp reddy_new_spec.html bbcityco@bbcity.co.uk:www/tom/files/rena_new_spec.html" + sh "rm reddy_new_spec.html" end desc "Turns spec results into local HTML" task :spec_local do - sh "spec --format html:rena_new_spec.html spec/" -# sh "open rena_new_spec.html" + sh "spec --format html:reddy_new_spec.html spec/" +# sh "open reddy_new_spec.html" end desc "Run specs through RCov" @@ -52,3 +52,8 @@ desc "Runs specs on JRuby" task :jspec do sh "jruby -S `whereis spec` --colour spec" end + +desc "Build gem" +task :build do + sh "gem build reddy.gemspec" +end \ No newline at end of file diff --git a/doc/AboutEachException.html b/doc/AboutEachException.html deleted file mode 100644 index 434d584..0000000 --- a/doc/AboutEachException.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - Class: AboutEachException - - -
-
-

Class: AboutEachException

-
- -
-
-
- - \ No newline at end of file diff --git a/doc/BNode.html b/doc/BNode.html deleted file mode 100644 index b61c451..0000000 --- a/doc/BNode.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - - - - - - Class: BNode - - -
-
-

Class: BNode

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - -
identifier - - [RW] - - public - -

-Sets the attribute identifier. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(identifier = nil) - - -
- -
- [View source] -
- - - - - -
-
-
-
-3
-4
-5
-6
-7
-8
-9
-
-
# File 'lib/rena/bnode.rb', line 3
-
-def initialize(identifier = nil)
-  if identifier != nil && self.valid_id?(identifier) != false
-    @identifier = identifier
-  else
-    @identifier = "bn" + self.hash.to_s
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - -
- #eql?(eql) - - - - - -
- #to_n3 - - - -

-Exports the BNode in N-Triples form. -

- - -

- Returns: - - String - -

- -
- #to_ntriples - - - -

-Exports the BNode in N-Triples form. -

- - -

- Returns: - - String - -

- -
- #to_s - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

eql?

-
-
-
- - public - - eql?(eql) - - -
- -
- [View source] -
- - - - - -
-
-
-
-11
-12
-13
-14
-15
-16
-17
-
-
# File 'lib/rena/bnode.rb', line 11
-
-def eql? (eql)
-  if self.identifier == eql.identifier
-    true
-  else
-    false
-  end
-end
-
-
-
-
-
-
- -
-
-

to_n3

-
-
-
- - public - String - to_n3 - - -
- -
-

-Exports the BNode in N-Triples form. -

-

Example

-
-  b = BNode.new; b.to_n3  # => returns a string of the BNode in n3 form
-
-

Returns

- -
-

Meta Tags

-
-

Returns:

-
- -
- - [String] - - - - -
-
-

-The BNode in n3. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-30
-31
-32
-
-
# File 'lib/rena/bnode.rb', line 30
-
-def to_n3
-  "_:" + @identifier
-end
-
-
-
-
-
-
- -
-
-

to_ntriples

-
-
-
- - public - String - to_ntriples - - -
- -
-

-Exports the BNode in N-Triples form. -

-

Example

-
-  b = BNode.new; b.to_ntriples  # => returns a string of the BNode in N-Triples form
-
-

Returns

- -
-

Meta Tags

-
-

Returns:

-
- -
- - [String] - - - - -
-
-

-The BNode in N-Triples. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-46
-47
-48
-
-
# File 'lib/rena/bnode.rb', line 46
-
-def to_ntriples
-  self.to_n3
-end
-
-
-
-
-
-
- -
-
-

to_s

-
-
-
- - public - - to_s - - -
- -
- [View source] -
- - - - - -
-
-
-
-50
-51
-52
-
-
# File 'lib/rena/bnode.rb', line 50
-
-def to_s
-  @identifier
-end  
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/Graph.html b/doc/Graph.html deleted file mode 100644 index 710a0ed..0000000 --- a/doc/Graph.html +++ /dev/null @@ -1,1143 +0,0 @@ - - - - - - - - - - Class: Graph - - -
-
-

Class: Graph

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - -
nsbinding - - [RW] - - public - -

-Sets the attribute nsbinding. -

- - -
triples - - [RW] - - public - -

-Sets the attribute triples. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize - - -
- -
- [View source] -
- - - - - -
-
-
-
-10
-11
-12
-13
-
-
# File 'lib/rena/graph.rb', line 10
-
-def initialize
-  @triples = []
-  @nsbinding = {}
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- #<<(triple) - - - -

-Adds an extant triple to a graph. -

- - -

- Returns: - - Array - -

- -
- #add_triple(s, p, o) - - - -

-Adds a triple to a graph directly from the intended subject, predicate, and -object. -

- - -

- Returns: - - Array - -

- -
- #bind(namespace) - - - - - -
- #each - - - - - -
- #each_with_subject(subject) - - - - - -
- #get_bnode_by_identifier(bnodeid) - - - - - -
- #has_bnode_identifier?(bnodeid) - - - - - -
- #namespace(uri, short) - - - -

-Creates a new namespace given a URI and the short name and binds it to the -graph. -

- - -

- Returns: - - Namespace - -

- -
- #size - - - - - -
- #to_ntriples - - - -

-Exports the graph to RDF in N-Triples form. -

- - -

- Returns: - - String - -

- -
-
-
-

Public Instance Method Details

- -
-
-

<<

-
-
-
- - public - Array - <<(triple) - - -
- -
-

-Adds an extant triple to a graph -

-

Example

-
-  g = Graph.new; t = Triple.new(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new); g << t) # => results in the triple being added to g; returns an array of g's triples
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [Triple] - - - t - -
-
-

-the triple to be added to the graph -

-
-
- -
-
-
-

Returns:

-
- -
- - [Array] - - - - -
-
-

-An array of the triples (leaky abstraction? consider returning the graph -instead) -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-65
-66
-67
-68
-
-
# File 'lib/rena/graph.rb', line 65
-
-def << (triple)
-#    self.add_triple(s, p, o)
-  @triples += [ triple ]
-end
-
-
-
-
-
-
- -
-
-

add_triple

-
-
-
- - public - Array - add_triple(s, p, o) - - -
- -
-

-Adds a triple to a graph directly from the intended subject, predicate, and -object. -

-

Example

-
-  g = Graph.new; g.add_triple(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new) # => results in the triple being added to g; returns an array of g's triples
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [URIRef, BNode] - - - s - -
-
-

-the subject of the triple -

-
-
- -
- - [URIRef] - - - p - -
-
-

-the predicate of the triple -

-
-
- -
- - [URIRef, BNode, Literal, TypedLiteral] - - - o - -
-
-

-the object of the triple -

-
-
- -
-
-
-

Returns:

-
- -
- - [Array] - - - - -
-
-

-An array of the triples (leaky abstraction? consider returning the graph -instead) -

-
-
- -
-
-
-

Raises:

-
- -
- - [Error] - - -
-
-

-Checks parameter types and raises if they are incorrect. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-47
-48
-49
-
-
# File 'lib/rena/graph.rb', line 47
-
-def add_triple(s, p, o)
-  @triples += [ Triple.new(s, p, o) ]
-end
-
-
-
-
-
-
- -
-
-

bind

-
-
-
- - public - - bind(namespace) - - -
- -
- [View source] -
- - - - - -
-
-
-
-109
-110
-111
-112
-113
-114
-115
-
-
# File 'lib/rena/graph.rb', line 109
-
-def bind(namespace)
-  if namespace.class == Namespace
-    @nsbinding["#{namespace.short}"] = namespace
-  else
-    raise
-  end
-end
-
-
-
-
-
-
- -
-
-

each

-
-
-
- - public - - each - - -
- -
- [View source] -
- - - - - -
-
-
-
-19
-20
-21
-
-
# File 'lib/rena/graph.rb', line 19
-
-def each
-  @triples.each { |value| yield value }
-end
-
-
-
-
-
-
- -
-
-

each_with_subject

-
-
-
- - public - - each_with_subject(subject) - - -
- -
- [View source] -
- - - - - -
-
-
-
-23
-24
-25
-26
-27
-28
-29
-
-
# File 'lib/rena/graph.rb', line 23
-
-def each_with_subject(subject)
-  @triples.each {|value|
-    if value.subject == subject
-      yield value
-    end
-  }
-end
-
-
-
-
-
-
- -
-
-

get_bnode_by_identifier

-
-
-
- - public - - get_bnode_by_identifier(bnodeid) - - -
- -
- [View source] -
- - - - - -
-
-
-
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-
-
# File 'lib/rena/graph.rb', line 133
-
-def get_bnode_by_identifier(bnodeid)
-  temp_bnode = BNode.new(bnodeid)
-  returnval = false
-  @triples.each { |triple|
-    if triple.subject.eql?(temp_bnode)
-      returnval = triple.subject
-      break
-    end
-    if triple.object.eql?(temp_bnode)
-      returnval = triple.object
-      break
-    end
-  }
-  return returnval
-end
-
-
-
-
-
-
- -
-
-

has_bnode_identifier?

-
-
-
- - public - - has_bnode_identifier?(bnodeid) - - -
- -
- [View source] -
- - - - - -
-
-
-
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-
-
# File 'lib/rena/graph.rb', line 117
-
-def has_bnode_identifier?(bnodeid)
-  temp_bnode = BNode.new(bnodeid)
-  returnval = false
-  @triples.each { |triple|
-    if triple.subject.eql?(temp_bnode)
-      returnval = true
-      break
-    end
-    if triple.object.eql?(temp_bnode)
-      returnval = true
-      break
-    end
-  }
-  return returnval
-end
-
-
-
-
-
-
- -
-
-

namespace

-
-
-
- - public - Namespace - namespace(uri, short) - - -
- -
-

-Creates a new namespace given a URI and the short name and binds it to the -graph. -

-

Example

-
-  g = Graph.new; g.namespace("http://xmlns.com/foaf/0.1/", "foaf") # => binds the Foaf namespace to g
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [String] - - - uri - -
-
-

-the URI of the namespace -

-
-
- -
- - [String] - - - short - -
-
-

-the short name of the namespace -

-
-
- -
-
-
-

Returns:

-
- -
- - [Namespace] - - - - -
-
-

-The newly created namespace. -

-
-
- -
-
-
-

Raises:

-
- -
- - [Error] - - -
-
-

-Checks validity of the desired shortname and raises if it is incorrect. -

-
-
- -
- - [Error] - - -
-
-

-Checks that the newly created Namespace is of type Namespace and raises if -it is incorrect. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-105
-106
-107
-
-
# File 'lib/rena/graph.rb', line 105
-
-def namespace(uri, short)
-  self.bind Namespace.new(uri, short)
-end
-
-
-
-
-
-
- -
-
-

size

-
-
-
- - public - - size - - -
- -
- [View source] -
- - - - - -
-
-
-
-15
-16
-17
-
-
# File 'lib/rena/graph.rb', line 15
-
-def size
-  @triples.size
-end
-
-
-
-
-
-
- -
-
-

to_ntriples

-
-
-
- - public - String - to_ntriples - - -
- -
-

-Exports the graph to RDF in N-Triples form. -

-

Example

-
-  g = Graph.new; g.add_triple(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new); g.to_ntriples  # => returns a string of the graph in N-Triples form
-
-

Returns

- -
-

Meta Tags

-
-

Returns:

-
- -
- - [String] - - - - -
-
-

-The graph in N-Triples. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-81
-82
-83
-84
-85
-86
-87
-
-
# File 'lib/rena/graph.rb', line 81
-
-def to_ntriples
-  str = ""
-  @triples.each do |t|
-    str << t.to_ntriples + "\n"
-  end
-  return str
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/Literal.html b/doc/Literal.html deleted file mode 100644 index 641d605..0000000 --- a/doc/Literal.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - Class: Literal - - -
-
-

Class: Literal

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - -
contents - - [RW] - - public - -

-Sets the attribute contents. -

- - -
lang - - [RW] - - public - -

-Sets the attribute lang. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(contents, lang = nil) - - -
- -
- [View source] -
- - - - - -
-
-
-
-3
-4
-5
-6
-7
-8
-
-
# File 'lib/rena/literal.rb', line 3
-
-def initialize(contents, lang = nil)
-  @contents = contents
-  if lang != nil && lang != false
-    @lang = lang.downcase
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - -
- #==(obj) - - - - - -
- #to_n3 - - - - - -
- #to_ntriples - - - - - -
- #to_trix - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

==

-
-
-
- - public - - ==(obj) - - -
- -
- [View source] -
- - - - - -
-
-
-
-10
-11
-12
-13
-14
-15
-16
-
-
# File 'lib/rena/literal.rb', line 10
-
-def == (obj)
-  if obj.class == Literal && obj.contents == @contents && (obj.lang == @lang || (obj.lang == nil && @lang == nil))
-    true
-  else
-    false
-  end
-end
-
-
-
-
-
-
- -
-
-

to_n3

-
-
-
- - public - - to_n3 - - -
- -
- [View source] -
- - - - - -
-
-
-
-18
-19
-20
-21
-22
-23
-
-
# File 'lib/rena/literal.rb', line 18
-
-def to_n3
-  out = "\"" + @contents + "\""
-  out += "@" + @lang if @lang != nil
-  out += "^^" + @encoding if @encoding != nil
-  return out
-end
-
-
-
-
-
-
- -
-
-

to_ntriples

-
-
-
- - public - - to_ntriples - - -
- -
- [View source] -
- - - - - -
-
-
-
-25
-26
-27
-
-
# File 'lib/rena/literal.rb', line 25
-
-def to_ntriples
-  return self.to_n3
-end
-
-
-
-
-
-
- -
-
-

to_trix

-
-
-
- - public - - to_trix - - -
- -
- [View source] -
- - - - - -
-
-
-
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-
-
# File 'lib/rena/literal.rb', line 29
-
-def to_trix
-  if @lang != nil && @lang != false
-    out = "<plainLiteral xml:lang=\"" + @lang + "\">"
-  else
-    out = "<plainLiteral>"
-  end
-  out += @contents
-  out += "</plainLiteral>"
-  return out
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/Namespace.html b/doc/Namespace.html deleted file mode 100644 index bc9e776..0000000 --- a/doc/Namespace.html +++ /dev/null @@ -1,507 +0,0 @@ - - - - - - - - - - Class: Namespace - - -
-
-

Class: Namespace

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - - - - - - - -
fragment - - [RW] - - public - -

-Sets the attribute fragment. -

- - -
short - - [RW] - - public - -

-Sets the attribute short. -

- - -
uri - - [RW] - - public - -

-Sets the attribute uri. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - Namespace - initialize(uri, short, fragment = false) - - -
- -
-

-Creates a new namespace given a URI and the short name. -

-

Example

-
-  Namespace.new("http://xmlns.com/foaf/0.1/", "foaf") # => returns a new Foaf namespace
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [String] - - - uri - -
-
-

-the URI of the namespace -

-
-
- -
- - [String] - - - short - -
-
-

-the short name of the namespace -

-
-
- -
- - [Boolean] - - - fragment - -
-
-

-are the identifiers on this resource fragment identifiers? (e.g. -’#’) Defaults to false. -

-
-
- -
-
-
-

Returns:

-
- -
- - [Namespace] - - - - -
-
-

-The newly created namespace. -

-
-
- -
-
-
-

Raises:

-
- -
- - [Error] - - -
-
-

-Checks validity of the desired shortname and raises if it is incorrect. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris, Pius Uzamere -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-23
-24
-25
-26
-27
-28
-29
-30
-31
-
-
# File 'lib/rena/namespace.rb', line 23
-
-def initialize(uri, short, fragment = false)
-  @uri = uri
-  @fragment = fragment
-  if shortname_valid?(short)
-    @short = short
-  else
-    raise
-  end
-end
-
-
-
-
-
-
-

Dynamic Method Handling

- -

- This class handles dynamic methods through the method_missing method - -

- -
-
-
- - public - URIRef - method_missing(methodname, *args) - - -
- -
-

-Allows the construction of arbitrary URIs on the namespace. -

-

Example

-
-  foaf = Namespace.new("http://xmlns.com/foaf/0.1/", "foaf"); foaf.knows # => returns a new URIRef with URI "http://xmlns.com/foaf/0.1/knows"
-  foaf = Namespace.new("http://xmlns.com/foaf/0.1/", "foaf", true); foaf.knows # => returns a new URIRef with URI "http://xmlns.com/foaf/0.1/#knows"
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [String] - - - uri - -
-
-

-the URI of the namespace -

-
-
- -
- - [String] - - - short - -
-
-

-the short name of the namespace -

-
-
- -
- - [Boolean] - - - fragment - -
-
-

-are the identifiers on this resource fragment identifiers? (e.g. -’#’) Defaults to false. -

-
-
- -
-
-
-

Returns:

-
- -
- - [URIRef] - - - - -
-
-

-The newly created URIRegerence. -

-
-
- -
-
-
-

Raises:

-
- -
- - [Error] - - -
-
-

-Checks validity of the desired shortname and raises if it is incorrect. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris, Pius Uzamere -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-50
-51
-52
-53
-54
-55
-56
-
-
# File 'lib/rena/namespace.rb', line 50
-
-def method_missing(methodname, *args)
-  unless fragment
-    URIRef.new(@uri + methodname.to_s)
-  else
-    URIRef.new(@uri + '#' + methodname.to_s)
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - -
- #bind(graph) - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

bind

-
-
-
- - public - - bind(graph) - - -
- -
- [View source] -
- - - - - -
-
-
-
-58
-59
-60
-61
-62
-63
-64
-
-
# File 'lib/rena/namespace.rb', line 58
-
-def bind(graph)
-  if graph.class == Graph
-    graph.bind(self)
-  else
-    raise
-  end
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/REXML/Element.html b/doc/REXML/Element.html deleted file mode 100644 index b79ae3d..0000000 --- a/doc/REXML/Element.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - Class: REXML::Element - - -
-
-

Class: REXML::Element

-
-

-def subdocument_writer(el) -

-
-  el.prefixes.each { |ns|
-    el.add_attribute('xmlns:' + ns, el.namespaces[ns].to_s)
-  }
-  return el.to_s
-
-

-end -

- -
- -
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- #base - - - - - -
- #base? - - - - - -
- #lang - - - - - -
- #lang? - - - - - -
- #write(excl=[]) - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

base

-
-
-
- - public - - base - - -
- -
- [View source] -
- - - - - -
-
-
-
-37
-38
-39
-40
-41
-42
-43
-44
-45
-
-
# File 'lib/rena/rexml_hacks.rb', line 37
-
-def base
-  if self.attributes['xml:base']
-    return self.attributes['xml:base'].to_s
-  elsif self.parent != nil
-    return self.parent.base
-  else
-    return nil
-  end
-end
-
-
-
-
-
-
- -
-
-

base?

-
-
-
- - public - - base? - - -
- -
- [View source] -
- - - - - -
-
-
-
-29
-30
-31
-32
-33
-34
-35
-
-
# File 'lib/rena/rexml_hacks.rb', line 29
-
-def base?
-  if self.base != nil
-    true
-  else
-    false
-  end
-end
-
-
-
-
-
-
- -
-
-

lang

-
-
-
- - public - - lang - - -
- -
- [View source] -
- - - - - -
-
-
-
-19
-20
-21
-22
-23
-24
-25
-26
-27
-
-
# File 'lib/rena/rexml_hacks.rb', line 19
-
-def lang
-  if self.attributes['xml:lang']
-    return self.attributes['xml:lang'].to_s
-  elsif self.parent != nil
-    return self.parent.lang
-  else
-    return nil
-  end
-end
-
-
-
-
-
-
- -
-
-

lang?

-
-
-
- - public - - lang? - - -
- -
- [View source] -
- - - - - -
-
-
-
-12
-13
-14
-15
-16
-17
-18
-
-
# File 'lib/rena/rexml_hacks.rb', line 12
-
-def lang?
-  if self.lang != nil
-    true
-  else
-    false
-  end
-end
-
-
-
-
-
-
- -
-
-

write

-
-
-
- - public - - write(excl=[]) - - -
- -
- [View source] -
- - - - - -
-
-
-
-47
-48
-49
-50
-51
-52
-53
-54
-
-
# File 'lib/rena/rexml_hacks.rb', line 47
-
-def write(excl=[])
-  # TODO: add optional list argument of excluded namespaces
-  self.prefixes.each { |ns|
-    self.add_attribute('xmlns:' + ns, self.namespaces[ns].to_s) unless excl.include? self.namespaces[ns]
-  }
-  self.support_write_recursive(self.namespaces, self)
-  return self.to_s
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/RdfXmlParser.html b/doc/RdfXmlParser.html deleted file mode 100644 index 8425e23..0000000 --- a/doc/RdfXmlParser.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - - - Class: RdfXmlParser - - -
-
-

Class: RdfXmlParser

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - -
graph - - [RW] - - public - -

-Sets the attribute graph. -

- - -
xml - - [RW] - - public - -

-Sets the attribute xml. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(xml_str, uri = nil) - - -
- -
- [View source] -
- - - - - -
-
-
-
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-
-
# File 'lib/rena/rdfxmlparser.rb', line 10
-
-def initialize (xml_str, uri = nil)
-  @excl = ["http://www.w3.org/1999/02/22-rdf-syntax-ns#resource", "http://www.w3.org/1999/02/22-rdf-syntax-ns#nodeID", "http://www.w3.org/1999/02/22-rdf-syntax-ns#about", "http://www.w3.org/1999/02/22-rdf-syntax-ns#ID"]
-  if uri != nil
-    @uri = Addressable::URI.parse(uri)
-  end
-  @xml = REXML::Document.new(xml_str)
-#    self.iterator @xml.root.children
-  if self.is_rdf?
-    @graph = Graph.new
-    @xml.root.each_element { |e|
-      self.parse_element e
-    }
-#      puts @graph.size
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - -
- #is_rdf? - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

is_rdf?

-
-
-
- - public - - is_rdf? - - -
- -
- [View source] -
- - - - - -
-
-
-
-26
-27
-28
-29
-30
-31
-32
-33
-34
-
-
# File 'lib/rena/rdfxmlparser.rb', line 26
-
-def is_rdf?
-  trigger = false
-  @xml.each_element do |e|
-    if e.namespaces.has_value? "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-      trigger = true
-    end
-  end
-  return trigger
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/RdfaParser.html b/doc/RdfaParser.html deleted file mode 100644 index d51a20e..0000000 --- a/doc/RdfaParser.html +++ /dev/null @@ -1,340 +0,0 @@ - - - - - - - - - - Class: RdfaParser - - -
-
-

Class: RdfaParser

-
-

-require ‘lib/rena’ -

- -
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - - - - - - - -
graph - - [RW] - - public - -

-Sets the attribute graph. -

- - -
uri - - [RW] - - public - -

-Sets the attribute uri. -

- - -
xml - - [RW] - - public - -

-Sets the attribute xml. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(str, uri) - - -
- -
- [View source] -
- - - - - -
-
-
-
-6
-7
-8
-9
-10
-11
-12
-
-
# File 'lib/rena/rdfaparser.rb', line 6
-
-def initialize (str, uri)
-  @doc_string = str
-  @xml = REXML::Document.new(str)
-  @uri = uri
-  @graph = Graph.new
-  self.iterate(@xml.root.elements[2].elements[1].elements[1])
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - -
- #iterate(el) - - - - - -
- #parse_ns_curie(el, attname) - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

iterate

-
-
-
- - public - - iterate(el) - - -
- -
- [View source] -
- - - - - -
-
-
-
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-
-
# File 'lib/rena/rdfaparser.rb', line 25
-
-def iterate (el)
-
-  if el.attributes['about']
-    if el.attributes['about'] =~ /^http/
-      # deal with as absolute
-      subject = el.attributes['about'].to_s
-    else
-      # time to go xml:base sneakin'
-      if xml.base?
-        subject = Addressable::URI.parse(xml.base)
-        subject = subject + el.attributes['about']
-      else
-        subject = Addressable::URI.parse(@uri)
-        subject = subject + el.attributes['about']
-      end
-    end
-  else
-    subject = @uri
-  end
-  
-  if el.attributes['property']
-    if el.attributes['property'] =~ /^http/
-      property = el.attributes['property']
-    else
-      # curie hunt!
-    property = self.parse_ns_curie(el, "property")
-    end
-  end
-  
-  if el.attributes['content']
-    value = el.attributes['content']
-  else
-    value = el.text
-  end
-
-  @graph.add_triple subject.to_s, URIRef.new(property), value
-end
-
-
-
-
-
-
- -
-
-

parse_ns_curie

-
-
-
- - public - - parse_ns_curie(el, attname) - - -
- -
- [View source] -
- - - - - -
-
-
-
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-
-
# File 'lib/rena/rdfaparser.rb', line 14
-
-def parse_ns_curie(el, attname)
-  attstring = el.attributes[attname]
-  prefix = attstring.scan(/(.+):.+/).to_s
-  if el.namespaces[prefix]
-    namespace = el.namespaces[prefix]
-  else
-    raise "Namespace used in CURIE but not declared"
-  end
-  return namespace + attstring.scan(/.+:(.+)/).to_s
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/Rena.html b/doc/Rena.html deleted file mode 100644 index c1bb9b3..0000000 --- a/doc/Rena.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - Module: Rena - - -
-
-

Module: Rena

-
- -
-
-
- - \ No newline at end of file diff --git a/doc/Triple.html b/doc/Triple.html deleted file mode 100644 index 329b584..0000000 --- a/doc/Triple.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - - - - Class: Triple - - -
-
-

Class: Triple

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - - - - - - - -
object - - [RW] - - public - -

-Sets the attribute object. -

- - -
predicate - - [RW] - - public - -

-Sets the attribute predicate. -

- - -
subject - - [RW] - - public - -

-Sets the attribute subject. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - Triple - initialize(subject, predicate, object) - - -
- -
-

-Creates a new triple directly from the intended subject, predicate, and -object. -

-

Example

-
-  Triple.new(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new) # => results in the creation of a new triple and returns it
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [URIRef, BNode] - - - s - -
-
-

-the subject of the triple -

-
-
- -
- - [URIRef] - - - p - -
-
-

-the predicate of the triple -

-
-
- -
- - [URIRef, BNode, Literal, TypedLiteral] - - - o - -
-
-

-the object of the triple -

-
-
- -
-
-
-

Returns:

-
- -
- - [Triple] - - - - -
-
-

-An array of the triples (leaky abstraction? consider returning the graph -instead) -

-
-
- -
-
-
-

Raises:

-
- -
- - [Error] - - -
-
-

-Checks parameter types and raises if they are incorrect. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-20
-21
-22
-23
-24
-
-
# File 'lib/rena/triple.rb', line 20
-
-def initialize (subject, predicate, object)
-  self.check_subject(subject)
-  self.check_predicate(predicate)
-  self.check_object(object)
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - -
- #to_ntriples - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

to_ntriples

-
-
-
- - public - - to_ntriples - - -
- -
- [View source] -
- - - - - -
-
-
-
-26
-27
-28
-
-
# File 'lib/rena/triple.rb', line 26
-
-def to_ntriples
-  @subject.to_ntriples + " " + @predicate.to_ntriples + " " + @object.to_ntriples + " ."
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/TypedLiteral.html b/doc/TypedLiteral.html deleted file mode 100644 index 7bec100..0000000 --- a/doc/TypedLiteral.html +++ /dev/null @@ -1,446 +0,0 @@ - - - - - - - - - - Class: TypedLiteral - - -
-
-

Class: TypedLiteral

-
- -
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - -
contents - - [RW] - - public - -

-Sets the attribute contents. -

- - -
encoding - - [RW] - - public - -

-Sets the attribute encoding. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(contents, encoding) - - -
- -
- [View source] -
- - - - - -
-
-
-
-44
-45
-46
-47
-48
-49
-50
-51
-52
-
-
# File 'lib/rena/literal.rb', line 44
-
-def initialize(contents, encoding)
-  @contents = contents
-  @encoding = encoding
-  if @encoding == "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"
-    @xmlliteral = true
-  else
-    @xmlliteral = false
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- #==(obj) - - - - - -
- #infer! - - - - - -
- #to_n3 - - - - - -
- #to_trix - - - - - -
- #xmlliteral? - - - - - -
- -
-

Public Instance Methods Inherited from Literal

-

to_ntriples

-
- -
-
-
-
-

Public Instance Method Details

- -
-
-

==

-
-
-
- - public - - ==(obj) - - -
- -
- [View source] -
- - - - - -
-
-
-
-54
-55
-56
-57
-58
-59
-60
-
-
# File 'lib/rena/literal.rb', line 54
-
-def == (obj)
-  if obj.class == TypedLiteral && obj.contents == @contents && obj.encoding == @encoding
-    return true
-  else
-    return false
-  end
-end
-
-
-
-
-
-
- -
-
-

infer!

-
-
-
- - public - - infer! - - -
- -
- [View source] -
- - - - - -
-
-
-
-80
-81
-82
-83
-84
-85
-86
-87
-88
-
-
# File 'lib/rena/literal.rb', line 80
-
-def infer!
-  if @contents.class == Fixnum
-    @encoding = "http://www.w3.org/2001/XMLSchema#int"
-  elsif @contents.class == Float 
-    @encoding = "http://www.w3.org/2001/XMLSchema#float"
-  else
-    @encoding = "http://www.w3.org/2001/XMLSchema#string"
-  end
-end
-
-
-
-
-
-
- -
-
-

to_n3

-
-
-
- - public - - to_n3 - - -
- -
- [View source] -
- - - - - -
-
-
-
-62
-63
-64
-65
-66
-67
-68
-69
-70
-
-
# File 'lib/rena/literal.rb', line 62
-
-def to_n3
-  if @encoding == "http://www.w3.org/2001/XMLSchema#int"
-    out = @contents.to_s
-  else
-    out = "\"" + @contents.to_s + "\""
-  end
-  out += "^^<" + @encoding + ">" if @encoding != nil
-  return out
-end
-
-
-
-
-
-
- -
-
-

to_trix

-
-
-
- - public - - to_trix - - -
- -
- [View source] -
- - - - - -
-
-
-
-72
-73
-74
-
-
# File 'lib/rena/literal.rb', line 72
-
-def to_trix
-  "<typedLiteral datatype=\"" + @encoding + "\">" + @contents + "</typedLiteral>"
-end
-
-
-
-
-
-
- -
-
-

xmlliteral?

-
-
-
- - public - - xmlliteral? - - -
- -
- [View source] -
- - - - - -
-
-
-
-76
-77
-78
-
-
# File 'lib/rena/literal.rb', line 76
-
-def xmlliteral?
-  @xmlliteral
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/URIRef.html b/doc/URIRef.html deleted file mode 100644 index 7f01dd6..0000000 --- a/doc/URIRef.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - - Class: URIRef - - -
-
-

Class: URIRef

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - -
uri - - [RW] - - public - -

-Sets the attribute uri. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(string) - - -
- -
- [View source] -
- - - - - -
-
-
-
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-
-
# File 'lib/rena/uriref.rb', line 7
-
-def initialize (string)
-  self.test_string(string)
-  @uri = Addressable::URI.parse(string)
-  if @uri.relative?
-    raise UriRelativeException, "<" + @uri.to_s + ">"
-  end
-  if !@uri.to_s.match(/^javascript/).nil?
-    raise "Javascript pseudo-URIs are not acceptable"
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - -
- #==(other) - - - - - -
- #test_string(string) - - - - - -
- #to_ntriples - - - - - -
- #to_s - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

==

-
-
-
- - public - - ==(other) - - -
- -
- [View source] -
- - - - - -
-
-
-
-18
-19
-20
-
-
# File 'lib/rena/uriref.rb', line 18
-
-def == (other)
-  return true if @uri == other.uri
-end
-
-
-
-
-
-
- -
-
-

test_string

-
-
-
- - public - - test_string(string) - - -
- -
- [View source] -
- - - - - -
-
-
-
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-
-
# File 'lib/rena/uriref.rb', line 30
-
-def test_string (string)
-  if string.class != String
-    string = string.to_s
-  end
-  
-  string.each_byte do |b|
-    if b >= 0 and b <= 31
-      raise "URI must not contain control characters"
-    end
-  end
-end
-
-
-
-
-
-
- -
-
-

to_ntriples

-
-
-
- - public - - to_ntriples - - -
- -
- [View source] -
- - - - - -
-
-
-
-26
-27
-28
-
-
# File 'lib/rena/uriref.rb', line 26
-
-def to_ntriples
-  "<" + @uri.to_s + ">"
-end
-
-
-
-
-
-
- -
-
-

to_s

-
-
-
- - public - - to_s - - -
- -
- [View source] -
- - - - - -
-
-
-
-22
-23
-24
-
-
# File 'lib/rena/uriref.rb', line 22
-
-def to_s
-  @uri.to_s
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/UriRelativeException.html b/doc/UriRelativeException.html deleted file mode 100644 index e6dd9bf..0000000 --- a/doc/UriRelativeException.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - Exception: UriRelativeException - - -
-
-

Exception: UriRelativeException

-
-
    -
  • RuntimeError
    • UriRelativeException
    • -
-
- -
-
-
- - \ No newline at end of file diff --git a/doc/all-methods.html b/doc/all-methods.html deleted file mode 100644 index 6ddb0e3..0000000 --- a/doc/all-methods.html +++ /dev/null @@ -1,772 +0,0 @@ - - - - - - - - All Modules / Classes - - - - - - \ No newline at end of file diff --git a/doc/all-namespaces.html b/doc/all-namespaces.html deleted file mode 100644 index eb06db2..0000000 --- a/doc/all-namespaces.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - All Modules / Classes - - - - - - diff --git a/doc/app.js b/doc/app.js deleted file mode 100644 index 02c311e..0000000 --- a/doc/app.js +++ /dev/null @@ -1,18 +0,0 @@ -$(document).ready(function() { - // Set the title of this page as the index title - if (parent && parent.document) { - $('html head title', parent.document).text($('html head title').text()); - } - - // Setup the view source links - $(".section.source a.source_link").toggle( - function() { - $(this).text('Hide source'); - $(this).parent().next().show(); - }, - function() { - $(this).text('View source'); - $(this).parent().next().hide(); - } - ); -}); \ No newline at end of file diff --git a/doc/index.html b/doc/index.html deleted file mode 100644 index c7e7420..0000000 --- a/doc/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - YARD Documentation - - - - - - - - - <p><a href="readme.html">Click here to go to the title page</a>.</p> - - - \ No newline at end of file diff --git a/doc/jquery.js b/doc/jquery.js deleted file mode 100644 index 95dd013..0000000 --- a/doc/jquery.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * jQuery 1.2.6 - New Wave Javascript - * - * Copyright (c) 2008 John Resig (jquery.com) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ - * $Rev: 5685 $ - */ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(H(){J w=1b.4M,3m$=1b.$;J D=1b.4M=1b.$=H(a,b){I 2B D.17.5j(a,b)};J u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/,62=/^.[^:#\\[\\.]*$/,12;D.17=D.44={5j:H(d,b){d=d||S;G(d.16){7[0]=d;7.K=1;I 7}G(1j d=="23"){J c=u.2D(d);G(c&&(c[1]||!b)){G(c[1])d=D.4h([c[1]],b);N{J a=S.61(c[3]);G(a){G(a.2v!=c[3])I D().2q(d);I D(a)}d=[]}}N I D(b).2q(d)}N G(D.1D(d))I D(S)[D.17.27?"27":"43"](d);I 7.6Y(D.2d(d))},5w:"1.2.6",8G:H(){I 7.K},K:0,3p:H(a){I a==12?D.2d(7):7[a]},2I:H(b){J a=D(b);a.5n=7;I a},6Y:H(a){7.K=0;2p.44.1p.1w(7,a);I 7},P:H(a,b){I D.P(7,a,b)},5i:H(b){J a=-1;I D.2L(b&&b.5w?b[0]:b,7)},1K:H(c,a,b){J d=c;G(c.1q==56)G(a===12)I 7[0]&&D[b||"1K"](7[0],c);N{d={};d[c]=a}I 7.P(H(i){R(c 1n d)D.1K(b?7.V:7,c,D.1i(7,d[c],b,i,c))})},1g:H(b,a){G((b==\'2h\'||b==\'1Z\')&&3d(a)<0)a=12;I 7.1K(b,a,"2a")},1r:H(b){G(1j b!="49"&&b!=U)I 7.4E().3v((7[0]&&7[0].2z||S).5F(b));J a="";D.P(b||7,H(){D.P(7.3t,H(){G(7.16!=8)a+=7.16!=1?7.76:D.17.1r([7])})});I a},5z:H(b){G(7[0])D(b,7[0].2z).5y().39(7[0]).2l(H(){J a=7;1B(a.1x)a=a.1x;I a}).3v(7);I 7},8Y:H(a){I 7.P(H(){D(7).6Q().5z(a)})},8R:H(a){I 7.P(H(){D(7).5z(a)})},3v:H(){I 7.3W(19,M,Q,H(a){G(7.16==1)7.3U(a)})},6F:H(){I 7.3W(19,M,M,H(a){G(7.16==1)7.39(a,7.1x)})},6E:H(){I 7.3W(19,Q,Q,H(a){7.1d.39(a,7)})},5q:H(){I 7.3W(19,Q,M,H(a){7.1d.39(a,7.2H)})},3l:H(){I 7.5n||D([])},2q:H(b){J c=D.2l(7,H(a){I D.2q(b,a)});I 7.2I(/[^+>] [^+>]/.11(b)||b.1h("..")>-1?D.4r(c):c)},5y:H(e){J f=7.2l(H(){G(D.14.1f&&!D.4n(7)){J a=7.6o(M),5h=S.3h("1v");5h.3U(a);I D.4h([5h.4H])[0]}N I 7.6o(M)});J d=f.2q("*").5c().P(H(){G(7[E]!=12)7[E]=U});G(e===M)7.2q("*").5c().P(H(i){G(7.16==3)I;J c=D.L(7,"3w");R(J a 1n c)R(J b 1n c[a])D.W.1e(d[i],a,c[a][b],c[a][b].L)});I f},1E:H(b){I 7.2I(D.1D(b)&&D.3C(7,H(a,i){I b.1k(a,i)})||D.3g(b,7))},4Y:H(b){G(b.1q==56)G(62.11(b))I 7.2I(D.3g(b,7,M));N b=D.3g(b,7);J a=b.K&&b[b.K-1]!==12&&!b.16;I 7.1E(H(){I a?D.2L(7,b)<0:7!=b})},1e:H(a){I 7.2I(D.4r(D.2R(7.3p(),1j a==\'23\'?D(a):D.2d(a))))},3F:H(a){I!!a&&D.3g(a,7).K>0},7T:H(a){I 7.3F("."+a)},6e:H(b){G(b==12){G(7.K){J c=7[0];G(D.Y(c,"2A")){J e=c.64,63=[],15=c.15,2V=c.O=="2A-2V";G(e<0)I U;R(J i=2V?e:0,2f=2V?e+1:15.K;i<2f;i++){J d=15[i];G(d.2W){b=D.14.1f&&!d.at.2x.an?d.1r:d.2x;G(2V)I b;63.1p(b)}}I 63}N I(7[0].2x||"").1o(/\\r/g,"")}I 12}G(b.1q==4L)b+=\'\';I 7.P(H(){G(7.16!=1)I;G(b.1q==2p&&/5O|5L/.11(7.O))7.4J=(D.2L(7.2x,b)>=0||D.2L(7.34,b)>=0);N G(D.Y(7,"2A")){J a=D.2d(b);D("9R",7).P(H(){7.2W=(D.2L(7.2x,a)>=0||D.2L(7.1r,a)>=0)});G(!a.K)7.64=-1}N 7.2x=b})},2K:H(a){I a==12?(7[0]?7[0].4H:U):7.4E().3v(a)},7b:H(a){I 7.5q(a).21()},79:H(i){I 7.3s(i,i+1)},3s:H(){I 7.2I(2p.44.3s.1w(7,19))},2l:H(b){I 7.2I(D.2l(7,H(a,i){I b.1k(a,i,a)}))},5c:H(){I 7.1e(7.5n)},L:H(d,b){J a=d.1R(".");a[1]=a[1]?"."+a[1]:"";G(b===12){J c=7.5C("9z"+a[1]+"!",[a[0]]);G(c===12&&7.K)c=D.L(7[0],d);I c===12&&a[1]?7.L(a[0]):c}N I 7.1P("9u"+a[1]+"!",[a[0],b]).P(H(){D.L(7,d,b)})},3b:H(a){I 7.P(H(){D.3b(7,a)})},3W:H(g,f,h,d){J e=7.K>1,3x;I 7.P(H(){G(!3x){3x=D.4h(g,7.2z);G(h)3x.9o()}J b=7;G(f&&D.Y(7,"1T")&&D.Y(3x[0],"4F"))b=7.3H("22")[0]||7.3U(7.2z.3h("22"));J c=D([]);D.P(3x,H(){J a=e?D(7).5y(M)[0]:7;G(D.Y(a,"1m"))c=c.1e(a);N{G(a.16==1)c=c.1e(D("1m",a).21());d.1k(b,a)}});c.P(6T)})}};D.17.5j.44=D.17;H 6T(i,a){G(a.4d)D.3Y({1a:a.4d,31:Q,1O:"1m"});N D.5u(a.1r||a.6O||a.4H||"");G(a.1d)a.1d.37(a)}H 1z(){I+2B 8J}D.1l=D.17.1l=H(){J b=19[0]||{},i=1,K=19.K,4x=Q,15;G(b.1q==8I){4x=b;b=19[1]||{};i=2}G(1j b!="49"&&1j b!="H")b={};G(K==i){b=7;--i}R(;i-1}},6q:H(b,c,a){J e={};R(J d 1n c){e[d]=b.V[d];b.V[d]=c[d]}a.1k(b);R(J d 1n c)b.V[d]=e[d]},1g:H(d,e,c){G(e=="2h"||e=="1Z"){J b,3X={30:"5x",5g:"1G",18:"3I"},35=e=="2h"?["5e","6k"]:["5G","6i"];H 5b(){b=e=="2h"?d.8f:d.8c;J a=0,2C=0;D.P(35,H(){a+=3d(D.2a(d,"57"+7,M))||0;2C+=3d(D.2a(d,"2C"+7+"4b",M))||0});b-=29.83(a+2C)}G(D(d).3F(":4j"))5b();N D.6q(d,3X,5b);I 29.2f(0,b)}I D.2a(d,e,c)},2a:H(f,l,k){J e,V=f.V;H 3E(b){G(!D.14.2k)I Q;J a=3P.54(b,U);I!a||a.52("3E")==""}G(l=="1y"&&D.14.1f){e=D.1K(V,"1y");I e==""?"1":e}G(D.14.2G&&l=="18"){J d=V.50;V.50="0 7Y 7W";V.50=d}G(l.1I(/4i/i))l=y;G(!k&&V&&V[l])e=V[l];N G(3P.54){G(l.1I(/4i/i))l="4i";l=l.1o(/([A-Z])/g,"-$1").3y();J c=3P.54(f,U);G(c&&!3E(f))e=c.52(l);N{J g=[],2E=[],a=f,i=0;R(;a&&3E(a);a=a.1d)2E.6h(a);R(;i<2E.K;i++)G(3E(2E[i])){g[i]=2E[i].V.18;2E[i].V.18="3I"}e=l=="18"&&g[2E.K-1]!=U?"2F":(c&&c.52(l))||"";R(i=0;i]*?)\\/>/g,H(b,a,c){I c.1I(/^(aK|4f|7E|aG|4T|7A|aB|3n|az|ay|av)$/i)?b:a+">"});J f=D.3k(d).3y(),1v=h.3h("1v");J e=!f.1h("",""]||!f.1h("",""]||f.1I(/^<(aq|22|am|ak|ai)/)&&[1,"<1T>",""]||!f.1h("<4F")&&[2,"<1T><22>",""]||(!f.1h("<22><4F>",""]||!f.1h("<7E")&&[2,"<1T><22><7q>",""]||D.14.1f&&[1,"1v<1v>",""]||[0,"",""];1v.4H=e[1]+d+e[2];1B(e[0]--)1v=1v.5T;G(D.14.1f){J g=!f.1h("<1T")&&f.1h("<22")<0?1v.1x&&1v.1x.3t:e[1]=="<1T>"&&f.1h("<22")<0?1v.3t:[];R(J j=g.K-1;j>=0;--j)G(D.Y(g[j],"22")&&!g[j].3t.K)g[j].1d.37(g[j]);G(/^\\s/.11(d))1v.39(h.5F(d.1I(/^\\s*/)[0]),1v.1x)}d=D.2d(1v.3t)}G(d.K===0&&(!D.Y(d,"3V")&&!D.Y(d,"2A")))I;G(d[0]==12||D.Y(d,"3V")||d.15)k.1p(d);N k=D.2R(k,d)});I k},1K:H(d,f,c){G(!d||d.16==3||d.16==8)I 12;J e=!D.4n(d),40=c!==12,1f=D.14.1f;f=e&&D.3X[f]||f;G(d.2j){J g=/5Q|4d|V/.11(f);G(f=="2W"&&D.14.2k)d.1d.64;G(f 1n d&&e&&!g){G(40){G(f=="O"&&D.Y(d,"4T")&&d.1d)7p"O a3 a1\'t 9V 9U";d[f]=c}G(D.Y(d,"3V")&&d.7i(f))I d.7i(f).76;I d[f]}G(1f&&e&&f=="V")I D.1K(d.V,"9T",c);G(40)d.9Q(f,""+c);J h=1f&&e&&g?d.4G(f,2):d.4G(f);I h===U?12:h}G(1f&&f=="1y"){G(40){d.6B=1;d.1E=(d.1E||"").1o(/7f\\([^)]*\\)/,"")+(3r(c)+\'\'=="9L"?"":"7f(1y="+c*7a+")")}I d.1E&&d.1E.1h("1y=")>=0?(3d(d.1E.1I(/1y=([^)]*)/)[1])/7a)+\'\':""}f=f.1o(/-([a-z])/9H,H(a,b){I b.2r()});G(40)d[f]=c;I d[f]},3k:H(a){I(a||"").1o(/^\\s+|\\s+$/g,"")},2d:H(b){J a=[];G(b!=U){J i=b.K;G(i==U||b.1R||b.4I||b.1k)a[0]=b;N 1B(i)a[--i]=b[i]}I a},2L:H(b,a){R(J i=0,K=a.K;i*",7).21();1B(7.1x)7.37(7.1x)}},H(a,b){D.17[a]=H(){I 7.P(b,19)}});D.P(["6N","4b"],H(i,c){J b=c.3y();D.17[b]=H(a){I 7[0]==1b?D.14.2G&&S.1c["5t"+c]||D.14.2k&&1b["5s"+c]||S.70=="6Z"&&S.1C["5t"+c]||S.1c["5t"+c]:7[0]==S?29.2f(29.2f(S.1c["4y"+c],S.1C["4y"+c]),29.2f(S.1c["2i"+c],S.1C["2i"+c])):a==12?(7.K?D.1g(7[0],b):U):7.1g(b,a.1q==56?a:a+"2X")}});H 25(a,b){I a[0]&&3r(D.2a(a[0],b,M),10)||0}J C=D.14.2k&&3r(D.14.5B)<8H?"(?:[\\\\w*3m-]|\\\\\\\\.)":"(?:[\\\\w\\8F-\\8E*3m-]|\\\\\\\\.)",6L=2B 4v("^>\\\\s*("+C+"+)"),6J=2B 4v("^("+C+"+)(#)("+C+"+)"),6I=2B 4v("^([#.]?)("+C+"*)");D.1l({6H:{"":H(a,i,m){I m[2]=="*"||D.Y(a,m[2])},"#":H(a,i,m){I a.4G("2v")==m[2]},":":{8D:H(a,i,m){I im[3]-0},3a:H(a,i,m){I m[3]-0==i},79:H(a,i,m){I m[3]-0==i},3o:H(a,i){I i==0},3S:H(a,i,m,r){I i==r.K-1},6D:H(a,i){I i%2==0},6C:H(a,i){I i%2},"3o-4u":H(a){I a.1d.3H("*")[0]==a},"3S-4u":H(a){I D.3a(a.1d.5T,1,"4l")==a},"8z-4u":H(a){I!D.3a(a.1d.5T,2,"4l")},6W:H(a){I a.1x},4E:H(a){I!a.1x},8y:H(a,i,m){I(a.6O||a.8x||D(a).1r()||"").1h(m[3])>=0},4j:H(a){I"1G"!=a.O&&D.1g(a,"18")!="2F"&&D.1g(a,"5g")!="1G"},1G:H(a){I"1G"==a.O||D.1g(a,"18")=="2F"||D.1g(a,"5g")=="1G"},8w:H(a){I!a.3R},3R:H(a){I a.3R},4J:H(a){I a.4J},2W:H(a){I a.2W||D.1K(a,"2W")},1r:H(a){I"1r"==a.O},5O:H(a){I"5O"==a.O},5L:H(a){I"5L"==a.O},5p:H(a){I"5p"==a.O},3Q:H(a){I"3Q"==a.O},5o:H(a){I"5o"==a.O},6A:H(a){I"6A"==a.O},6z:H(a){I"6z"==a.O},2s:H(a){I"2s"==a.O||D.Y(a,"2s")},4T:H(a){I/4T|2A|6y|2s/i.11(a.Y)},3T:H(a,i,m){I D.2q(m[3],a).K},8t:H(a){I/h\\d/i.11(a.Y)},8s:H(a){I D.3C(D.3O,H(b){I a==b.T}).K}}},6x:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,2B 4v("^([:.#]*)("+C+"+)")],3g:H(a,c,b){J d,1t=[];1B(a&&a!=d){d=a;J f=D.1E(a,c,b);a=f.t.1o(/^\\s*,\\s*/,"");1t=b?c=f.r:D.2R(1t,f.r)}I 1t},2q:H(t,o){G(1j t!="23")I[t];G(o&&o.16!=1&&o.16!=9)I[];o=o||S;J d=[o],2o=[],3S,Y;1B(t&&3S!=t){J r=[];3S=t;t=D.3k(t);J l=Q,3j=6L,m=3j.2D(t);G(m){Y=m[1].2r();R(J i=0;d[i];i++)R(J c=d[i].1x;c;c=c.2H)G(c.16==1&&(Y=="*"||c.Y.2r()==Y))r.1p(c);d=r;t=t.1o(3j,"");G(t.1h(" ")==0)6M;l=M}N{3j=/^([>+~])\\s*(\\w*)/i;G((m=3j.2D(t))!=U){r=[];J k={};Y=m[2].2r();m=m[1];R(J j=0,3i=d.K;j<3i;j++){J n=m=="~"||m=="+"?d[j].2H:d[j].1x;R(;n;n=n.2H)G(n.16==1){J g=D.L(n);G(m=="~"&&k[g])1X;G(!Y||n.Y.2r()==Y){G(m=="~")k[g]=M;r.1p(n)}G(m=="+")1X}}d=r;t=D.3k(t.1o(3j,""));l=M}}G(t&&!l){G(!t.1h(",")){G(o==d[0])d.4s();2o=D.2R(2o,d);r=d=[o];t=" "+t.6v(1,t.K)}N{J h=6J;J m=h.2D(t);G(m){m=[0,m[2],m[3],m[1]]}N{h=6I;m=h.2D(t)}m[2]=m[2].1o(/\\\\/g,"");J f=d[d.K-1];G(m[1]=="#"&&f&&f.61&&!D.4n(f)){J p=f.61(m[2]);G((D.14.1f||D.14.2G)&&p&&1j p.2v=="23"&&p.2v!=m[2])p=D(\'[@2v="\'+m[2]+\'"]\',f)[0];d=r=p&&(!m[3]||D.Y(p,m[3]))?[p]:[]}N{R(J i=0;d[i];i++){J a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];G(a=="*"&&d[i].Y.3y()=="49")a="3n";r=D.2R(r,d[i].3H(a))}G(m[1]==".")r=D.5m(r,m[2]);G(m[1]=="#"){J e=[];R(J i=0;r[i];i++)G(r[i].4G("2v")==m[2]){e=[r[i]];1X}r=e}d=r}t=t.1o(h,"")}}G(t){J b=D.1E(t,r);d=r=b.r;t=D.3k(b.t)}}G(t)d=[];G(d&&o==d[0])d.4s();2o=D.2R(2o,d);I 2o},5m:H(r,m,a){m=" "+m+" ";J c=[];R(J i=0;r[i];i++){J b=(" "+r[i].1F+" ").1h(m)>=0;G(!a&&b||a&&!b)c.1p(r[i])}I c},1E:H(t,r,h){J d;1B(t&&t!=d){d=t;J p=D.6x,m;R(J i=0;p[i];i++){m=p[i].2D(t);G(m){t=t.8r(m[0].K);m[2]=m[2].1o(/\\\\/g,"");1X}}G(!m)1X;G(m[1]==":"&&m[2]=="4Y")r=62.11(m[3])?D.1E(m[3],r,M).r:D(r).4Y(m[3]);N G(m[1]==".")r=D.5m(r,m[2],h);N G(m[1]=="["){J g=[],O=m[3];R(J i=0,3i=r.K;i<3i;i++){J a=r[i],z=a[D.3X[m[2]]||m[2]];G(z==U||/5Q|4d|2W/.11(m[2]))z=D.1K(a,m[2])||\'\';G((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1h(m[5])||O=="$="&&z.6v(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1h(m[5])>=0)^h)g.1p(a)}r=g}N G(m[1]==":"&&m[2]=="3a-4u"){J e={},g=[],11=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2D(m[3]=="6D"&&"2n"||m[3]=="6C"&&"2n+1"||!/\\D/.11(m[3])&&"8q+"+m[3]||m[3]),3o=(11[1]+(11[2]||1))-0,d=11[3]-0;R(J i=0,3i=r.K;i<3i;i++){J j=r[i],1d=j.1d,2v=D.L(1d);G(!e[2v]){J c=1;R(J n=1d.1x;n;n=n.2H)G(n.16==1)n.4q=c++;e[2v]=M}J b=Q;G(3o==0){G(j.4q==d)b=M}N G((j.4q-d)%3o==0&&(j.4q-d)/3o>=0)b=M;G(b^h)g.1p(j)}r=g}N{J f=D.6H[m[1]];G(1j f=="49")f=f[m[2]];G(1j f=="23")f=6u("Q||H(a,i){I "+f+";}");r=D.3C(r,H(a,i){I f(a,i,m,r)},h)}}I{r:r,t:t}},4S:H(b,c){J a=[],1t=b[c];1B(1t&&1t!=S){G(1t.16==1)a.1p(1t);1t=1t[c]}I a},3a:H(a,e,c,b){e=e||1;J d=0;R(;a;a=a[c])G(a.16==1&&++d==e)1X;I a},5v:H(n,a){J r=[];R(;n;n=n.2H){G(n.16==1&&n!=a)r.1p(n)}I r}});D.W={1e:H(f,i,g,e){G(f.16==3||f.16==8)I;G(D.14.1f&&f.4I)f=1b;G(!g.24)g.24=7.24++;G(e!=12){J h=g;g=7.3M(h,H(){I h.1w(7,19)});g.L=e}J j=D.L(f,"3w")||D.L(f,"3w",{}),1H=D.L(f,"1H")||D.L(f,"1H",H(){G(1j D!="12"&&!D.W.5k)I D.W.1H.1w(19.3L.T,19)});1H.T=f;D.P(i.1R(/\\s+/),H(c,b){J a=b.1R(".");b=a[0];g.O=a[1];J d=j[b];G(!d){d=j[b]={};G(!D.W.2t[b]||D.W.2t[b].4p.1k(f)===Q){G(f.3K)f.3K(b,1H,Q);N G(f.6t)f.6t("4o"+b,1H)}}d[g.24]=g;D.W.26[b]=M});f=U},24:1,26:{},21:H(e,h,f){G(e.16==3||e.16==8)I;J i=D.L(e,"3w"),1L,5i;G(i){G(h==12||(1j h=="23"&&h.8p(0)=="."))R(J g 1n i)7.21(e,g+(h||""));N{G(h.O){f=h.2y;h=h.O}D.P(h.1R(/\\s+/),H(b,a){J c=a.1R(".");a=c[0];G(i[a]){G(f)2U i[a][f.24];N R(f 1n i[a])G(!c[1]||i[a][f].O==c[1])2U i[a][f];R(1L 1n i[a])1X;G(!1L){G(!D.W.2t[a]||D.W.2t[a].4A.1k(e)===Q){G(e.6p)e.6p(a,D.L(e,"1H"),Q);N G(e.6n)e.6n("4o"+a,D.L(e,"1H"))}1L=U;2U i[a]}}})}R(1L 1n i)1X;G(!1L){J d=D.L(e,"1H");G(d)d.T=U;D.3b(e,"3w");D.3b(e,"1H")}}},1P:H(h,c,f,g,i){c=D.2d(c);G(h.1h("!")>=0){h=h.3s(0,-1);J a=M}G(!f){G(7.26[h])D("*").1e([1b,S]).1P(h,c)}N{G(f.16==3||f.16==8)I 12;J b,1L,17=D.1D(f[h]||U),W=!c[0]||!c[0].32;G(W){c.6h({O:h,2J:f,32:H(){},3J:H(){},4C:1z()});c[0][E]=M}c[0].O=h;G(a)c[0].6m=M;J d=D.L(f,"1H");G(d)b=d.1w(f,c);G((!17||(D.Y(f,\'a\')&&h=="4V"))&&f["4o"+h]&&f["4o"+h].1w(f,c)===Q)b=Q;G(W)c.4s();G(i&&D.1D(i)){1L=i.1w(f,b==U?c:c.7d(b));G(1L!==12)b=1L}G(17&&g!==Q&&b!==Q&&!(D.Y(f,\'a\')&&h=="4V")){7.5k=M;1U{f[h]()}1V(e){}}7.5k=Q}I b},1H:H(b){J a,1L,38,5f,4m;b=19[0]=D.W.6l(b||1b.W);38=b.O.1R(".");b.O=38[0];38=38[1];5f=!38&&!b.6m;4m=(D.L(7,"3w")||{})[b.O];R(J j 1n 4m){J c=4m[j];G(5f||c.O==38){b.2y=c;b.L=c.L;1L=c.1w(7,19);G(a!==Q)a=1L;G(1L===Q){b.32();b.3J()}}}I a},6l:H(b){G(b[E]==M)I b;J d=b;b={8o:d};J c="8n 8m 8l 8k 2s 8j 47 5d 6j 5E 8i L 8h 8g 4K 2y 5a 59 8e 8b 58 6f 8a 88 4k 87 86 84 6d 2J 4C 6c O 82 81 35".1R(" ");R(J i=c.K;i;i--)b[c[i]]=d[c[i]];b[E]=M;b.32=H(){G(d.32)d.32();d.80=Q};b.3J=H(){G(d.3J)d.3J();d.7Z=M};b.4C=b.4C||1z();G(!b.2J)b.2J=b.6d||S;G(b.2J.16==3)b.2J=b.2J.1d;G(!b.4k&&b.4K)b.4k=b.4K==b.2J?b.6c:b.4K;G(b.58==U&&b.5d!=U){J a=S.1C,1c=S.1c;b.58=b.5d+(a&&a.2e||1c&&1c.2e||0)-(a.6b||0);b.6f=b.6j+(a&&a.2c||1c&&1c.2c||0)-(a.6a||0)}G(!b.35&&((b.47||b.47===0)?b.47:b.5a))b.35=b.47||b.5a;G(!b.59&&b.5E)b.59=b.5E;G(!b.35&&b.2s)b.35=(b.2s&1?1:(b.2s&2?3:(b.2s&4?2:0)));I b},3M:H(a,b){b.24=a.24=a.24||b.24||7.24++;I b},2t:{27:{4p:H(){55();I},4A:H(){I}},3D:{4p:H(){G(D.14.1f)I Q;D(7).2O("53",D.W.2t.3D.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("53",D.W.2t.3D.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3D";I D.W.1H.1w(7,19)}},3N:{4p:H(){G(D.14.1f)I Q;D(7).2O("51",D.W.2t.3N.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("51",D.W.2t.3N.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3N";I D.W.1H.1w(7,19)}}}};D.17.1l({2O:H(c,a,b){I c=="4X"?7.2V(c,a,b):7.P(H(){D.W.1e(7,c,b||a,b&&a)})},2V:H(d,b,c){J e=D.W.3M(c||b,H(a){D(7).4e(a,e);I(c||b).1w(7,19)});I 7.P(H(){D.W.1e(7,d,e,c&&b)})},4e:H(a,b){I 7.P(H(){D.W.21(7,a,b)})},1P:H(c,a,b){I 7.P(H(){D.W.1P(c,a,7,M,b)})},5C:H(c,a,b){I 7[0]&&D.W.1P(c,a,7[0],Q,b)},2m:H(b){J c=19,i=1;1B(i=0){J i=g.3s(e,g.K);g=g.3s(0,e)}c=c||H(){};J f="2P";G(d)G(D.1D(d)){c=d;d=U}N{d=D.3n(d);f="6g"}J h=7;D.3Y({1a:g,O:f,1O:"2K",L:d,1J:H(a,b){G(b=="1W"||b=="7J")h.2K(i?D("<1v/>").3v(a.4U.1o(/<1m(.|\\s)*?\\/1m>/g,"")).2q(i):a.4U);h.P(c,[a.4U,b,a])}});I 7},aL:H(){I D.3n(7.7I())},7I:H(){I 7.2l(H(){I D.Y(7,"3V")?D.2d(7.aH):7}).1E(H(){I 7.34&&!7.3R&&(7.4J||/2A|6y/i.11(7.Y)||/1r|1G|3Q/i.11(7.O))}).2l(H(i,c){J b=D(7).6e();I b==U?U:b.1q==2p?D.2l(b,H(a,i){I{34:c.34,2x:a}}):{34:c.34,2x:b}}).3p()}});D.P("7H,7G,7F,7D,7C,7B".1R(","),H(i,o){D.17[o]=H(f){I 7.2O(o,f)}});J B=1z();D.1l({3p:H(d,b,a,c){G(D.1D(b)){a=b;b=U}I D.3Y({O:"2P",1a:d,L:b,1W:a,1O:c})},aE:H(b,a){I D.3p(b,U,a,"1m")},aD:H(c,b,a){I D.3p(c,b,a,"3z")},aC:H(d,b,a,c){G(D.1D(b)){a=b;b={}}I D.3Y({O:"6g",1a:d,L:b,1W:a,1O:c})},aA:H(a){D.1l(D.60,a)},60:{1a:5Z.5Q,26:M,O:"2P",2T:0,7z:"4R/x-ax-3V-aw",7x:M,31:M,L:U,5Y:U,3Q:U,4Q:{2N:"4R/2N, 1r/2N",2K:"1r/2K",1m:"1r/4t, 4R/4t",3z:"4R/3z, 1r/4t",1r:"1r/as",4w:"*/*"}},4z:{},3Y:H(s){s=D.1l(M,s,D.1l(M,{},D.60,s));J g,2Z=/=\\?(&|$)/g,1u,L,O=s.O.2r();G(s.L&&s.7x&&1j s.L!="23")s.L=D.3n(s.L);G(s.1O=="4P"){G(O=="2P"){G(!s.1a.1I(2Z))s.1a+=(s.1a.1I(/\\?/)?"&":"?")+(s.4P||"7u")+"=?"}N G(!s.L||!s.L.1I(2Z))s.L=(s.L?s.L+"&":"")+(s.4P||"7u")+"=?";s.1O="3z"}G(s.1O=="3z"&&(s.L&&s.L.1I(2Z)||s.1a.1I(2Z))){g="4P"+B++;G(s.L)s.L=(s.L+"").1o(2Z,"="+g+"$1");s.1a=s.1a.1o(2Z,"="+g+"$1");s.1O="1m";1b[g]=H(a){L=a;1W();1J();1b[g]=12;1U{2U 1b[g]}1V(e){}G(i)i.37(h)}}G(s.1O=="1m"&&s.1Y==U)s.1Y=Q;G(s.1Y===Q&&O=="2P"){J j=1z();J k=s.1a.1o(/(\\?|&)3m=.*?(&|$)/,"$ap="+j+"$2");s.1a=k+((k==s.1a)?(s.1a.1I(/\\?/)?"&":"?")+"3m="+j:"")}G(s.L&&O=="2P"){s.1a+=(s.1a.1I(/\\?/)?"&":"?")+s.L;s.L=U}G(s.26&&!D.4O++)D.W.1P("7H");J n=/^(?:\\w+:)?\\/\\/([^\\/?#]+)/;G(s.1O=="1m"&&O=="2P"&&n.11(s.1a)&&n.2D(s.1a)[1]!=5Z.al){J i=S.3H("6w")[0];J h=S.3h("1m");h.4d=s.1a;G(s.7t)h.aj=s.7t;G(!g){J l=Q;h.ah=h.ag=H(){G(!l&&(!7.3f||7.3f=="68"||7.3f=="1J")){l=M;1W();1J();i.37(h)}}}i.3U(h);I 12}J m=Q;J c=1b.7s?2B 7s("ae.ac"):2B 7r();G(s.5Y)c.6R(O,s.1a,s.31,s.5Y,s.3Q);N c.6R(O,s.1a,s.31);1U{G(s.L)c.4B("ab-aa",s.7z);G(s.5S)c.4B("a9-5R-a8",D.4z[s.1a]||"a7, a6 a5 a4 5N:5N:5N a2");c.4B("X-9Z-9Y","7r");c.4B("9W",s.1O&&s.4Q[s.1O]?s.4Q[s.1O]+", */*":s.4Q.4w)}1V(e){}G(s.7m&&s.7m(c,s)===Q){s.26&&D.4O--;c.7l();I Q}G(s.26)D.W.1P("7B",[c,s]);J d=H(a){G(!m&&c&&(c.3f==4||a=="2T")){m=M;G(f){7k(f);f=U}1u=a=="2T"&&"2T"||!D.7j(c)&&"3e"||s.5S&&D.7h(c,s.1a)&&"7J"||"1W";G(1u=="1W"){1U{L=D.6X(c,s.1O,s.9S)}1V(e){1u="5J"}}G(1u=="1W"){J b;1U{b=c.5I("7g-5R")}1V(e){}G(s.5S&&b)D.4z[s.1a]=b;G(!g)1W()}N D.5H(s,c,1u);1J();G(s.31)c=U}};G(s.31){J f=4I(d,13);G(s.2T>0)3B(H(){G(c){c.7l();G(!m)d("2T")}},s.2T)}1U{c.9P(s.L)}1V(e){D.5H(s,c,U,e)}G(!s.31)d();H 1W(){G(s.1W)s.1W(L,1u);G(s.26)D.W.1P("7C",[c,s])}H 1J(){G(s.1J)s.1J(c,1u);G(s.26)D.W.1P("7F",[c,s]);G(s.26&&!--D.4O)D.W.1P("7G")}I c},5H:H(s,a,b,e){G(s.3e)s.3e(a,b,e);G(s.26)D.W.1P("7D",[a,s,e])},4O:0,7j:H(a){1U{I!a.1u&&5Z.9O=="5p:"||(a.1u>=7e&&a.1u<9N)||a.1u==7c||a.1u==9K||D.14.2k&&a.1u==12}1V(e){}I Q},7h:H(a,c){1U{J b=a.5I("7g-5R");I a.1u==7c||b==D.4z[c]||D.14.2k&&a.1u==12}1V(e){}I Q},6X:H(a,c,b){J d=a.5I("9J-O"),2N=c=="2N"||!c&&d&&d.1h("2N")>=0,L=2N?a.9I:a.4U;G(2N&&L.1C.2j=="5J")7p"5J";G(b)L=b(L,c);G(c=="1m")D.5u(L);G(c=="3z")L=6u("("+L+")");I L},3n:H(a){J s=[];G(a.1q==2p||a.5w)D.P(a,H(){s.1p(3u(7.34)+"="+3u(7.2x))});N R(J j 1n a)G(a[j]&&a[j].1q==2p)D.P(a[j],H(){s.1p(3u(j)+"="+3u(7))});N s.1p(3u(j)+"="+3u(D.1D(a[j])?a[j]():a[j]));I s.6s("&").1o(/%20/g,"+")}});D.17.1l({1N:H(c,b){I c?7.2g({1Z:"1N",2h:"1N",1y:"1N"},c,b):7.1E(":1G").P(H(){7.V.18=7.5D||"";G(D.1g(7,"18")=="2F"){J a=D("<"+7.2j+" />").6P("1c");7.V.18=a.1g("18");G(7.V.18=="2F")7.V.18="3I";a.21()}}).3l()},1M:H(b,a){I b?7.2g({1Z:"1M",2h:"1M",1y:"1M"},b,a):7.1E(":4j").P(H(){7.5D=7.5D||D.1g(7,"18");7.V.18="2F"}).3l()},78:D.17.2m,2m:H(a,b){I D.1D(a)&&D.1D(b)?7.78.1w(7,19):a?7.2g({1Z:"2m",2h:"2m",1y:"2m"},a,b):7.P(H(){D(7)[D(7).3F(":1G")?"1N":"1M"]()})},9G:H(b,a){I 7.2g({1Z:"1N"},b,a)},9F:H(b,a){I 7.2g({1Z:"1M"},b,a)},9E:H(b,a){I 7.2g({1Z:"2m"},b,a)},9D:H(b,a){I 7.2g({1y:"1N"},b,a)},9M:H(b,a){I 7.2g({1y:"1M"},b,a)},9C:H(c,a,b){I 7.2g({1y:a},c,b)},2g:H(k,j,i,g){J h=D.77(j,i,g);I 7[h.36===Q?"P":"36"](H(){G(7.16!=1)I Q;J f=D.1l({},h),p,1G=D(7).3F(":1G"),46=7;R(p 1n k){G(k[p]=="1M"&&1G||k[p]=="1N"&&!1G)I f.1J.1k(7);G(p=="1Z"||p=="2h"){f.18=D.1g(7,"18");f.33=7.V.33}}G(f.33!=U)7.V.33="1G";f.45=D.1l({},k);D.P(k,H(c,a){J e=2B D.28(46,f,c);G(/2m|1N|1M/.11(a))e[a=="2m"?1G?"1N":"1M":a](k);N{J b=a.6r().1I(/^([+-]=)?([\\d+-.]+)(.*)$/),2b=e.1t(M)||0;G(b){J d=3d(b[2]),2M=b[3]||"2X";G(2M!="2X"){46.V[c]=(d||1)+2M;2b=((d||1)/e.1t(M))*2b;46.V[c]=2b+2M}G(b[1])d=((b[1]=="-="?-1:1)*d)+2b;e.3G(2b,d,2M)}N e.3G(2b,a,"")}});I M})},36:H(a,b){G(D.1D(a)||(a&&a.1q==2p)){b=a;a="28"}G(!a||(1j a=="23"&&!b))I A(7[0],a);I 7.P(H(){G(b.1q==2p)A(7,a,b);N{A(7,a).1p(b);G(A(7,a).K==1)b.1k(7)}})},9X:H(b,c){J a=D.3O;G(b)7.36([]);7.P(H(){R(J i=a.K-1;i>=0;i--)G(a[i].T==7){G(c)a[i](M);a.7n(i,1)}});G(!c)7.5A();I 7}});J A=H(b,c,a){G(b){c=c||"28";J q=D.L(b,c+"36");G(!q||a)q=D.L(b,c+"36",D.2d(a))}I q};D.17.5A=H(a){a=a||"28";I 7.P(H(){J q=A(7,a);q.4s();G(q.K)q[0].1k(7)})};D.1l({77:H(b,a,c){J d=b&&b.1q==a0?b:{1J:c||!c&&a||D.1D(b)&&b,2u:b,41:c&&a||a&&a.1q!=9t&&a};d.2u=(d.2u&&d.2u.1q==4L?d.2u:D.28.5K[d.2u])||D.28.5K.74;d.5M=d.1J;d.1J=H(){G(d.36!==Q)D(7).5A();G(D.1D(d.5M))d.5M.1k(7)};I d},41:{73:H(p,n,b,a){I b+a*p},5P:H(p,n,b,a){I((-29.9r(p*29.9q)/2)+0.5)*a+b}},3O:[],48:U,28:H(b,c,a){7.15=c;7.T=b;7.1i=a;G(!c.3Z)c.3Z={}}});D.28.44={4D:H(){G(7.15.2Y)7.15.2Y.1k(7.T,7.1z,7);(D.28.2Y[7.1i]||D.28.2Y.4w)(7);G(7.1i=="1Z"||7.1i=="2h")7.T.V.18="3I"},1t:H(a){G(7.T[7.1i]!=U&&7.T.V[7.1i]==U)I 7.T[7.1i];J r=3d(D.1g(7.T,7.1i,a));I r&&r>-9p?r:3d(D.2a(7.T,7.1i))||0},3G:H(c,b,d){7.5V=1z();7.2b=c;7.3l=b;7.2M=d||7.2M||"2X";7.1z=7.2b;7.2S=7.4N=0;7.4D();J e=7;H t(a){I e.2Y(a)}t.T=7.T;D.3O.1p(t);G(D.48==U){D.48=4I(H(){J a=D.3O;R(J i=0;i7.15.2u+7.5V){7.1z=7.3l;7.2S=7.4N=1;7.4D();7.15.45[7.1i]=M;J b=M;R(J i 1n 7.15.45)G(7.15.45[i]!==M)b=Q;G(b){G(7.15.18!=U){7.T.V.33=7.15.33;7.T.V.18=7.15.18;G(D.1g(7.T,"18")=="2F")7.T.V.18="3I"}G(7.15.1M)7.T.V.18="2F";G(7.15.1M||7.15.1N)R(J p 1n 7.15.45)D.1K(7.T.V,p,7.15.3Z[p])}G(b)7.15.1J.1k(7.T);I Q}N{J n=t-7.5V;7.4N=n/7.15.2u;7.2S=D.41[7.15.41||(D.41.5P?"5P":"73")](7.4N,n,0,1,7.15.2u);7.1z=7.2b+((7.3l-7.2b)*7.2S);7.4D()}I M}};D.1l(D.28,{5K:{9l:9j,9i:7e,74:9g},2Y:{2e:H(a){a.T.2e=a.1z},2c:H(a){a.T.2c=a.1z},1y:H(a){D.1K(a.T.V,"1y",a.1z)},4w:H(a){a.T.V[a.1i]=a.1z+a.2M}}});D.17.2i=H(){J b=0,1S=0,T=7[0],3q;G(T)ao(D.14){J d=T.1d,4a=T,1s=T.1s,1Q=T.2z,5U=2k&&3r(5B)<9c&&!/9a/i.11(v),1g=D.2a,3c=1g(T,"30")=="3c";G(T.7y){J c=T.7y();1e(c.1A+29.2f(1Q.1C.2e,1Q.1c.2e),c.1S+29.2f(1Q.1C.2c,1Q.1c.2c));1e(-1Q.1C.6b,-1Q.1C.6a)}N{1e(T.5X,T.5W);1B(1s){1e(1s.5X,1s.5W);G(42&&!/^t(98|d|h)$/i.11(1s.2j)||2k&&!5U)2C(1s);G(!3c&&1g(1s,"30")=="3c")3c=M;4a=/^1c$/i.11(1s.2j)?4a:1s;1s=1s.1s}1B(d&&d.2j&&!/^1c|2K$/i.11(d.2j)){G(!/^96|1T.*$/i.11(1g(d,"18")))1e(-d.2e,-d.2c);G(42&&1g(d,"33")!="4j")2C(d);d=d.1d}G((5U&&(3c||1g(4a,"30")=="5x"))||(42&&1g(4a,"30")!="5x"))1e(-1Q.1c.5X,-1Q.1c.5W);G(3c)1e(29.2f(1Q.1C.2e,1Q.1c.2e),29.2f(1Q.1C.2c,1Q.1c.2c))}3q={1S:1S,1A:b}}H 2C(a){1e(D.2a(a,"6V",M),D.2a(a,"6U",M))}H 1e(l,t){b+=3r(l,10)||0;1S+=3r(t,10)||0}I 3q};D.17.1l({30:H(){J a=0,1S=0,3q;G(7[0]){J b=7.1s(),2i=7.2i(),4c=/^1c|2K$/i.11(b[0].2j)?{1S:0,1A:0}:b.2i();2i.1S-=25(7,\'94\');2i.1A-=25(7,\'aF\');4c.1S+=25(b,\'6U\');4c.1A+=25(b,\'6V\');3q={1S:2i.1S-4c.1S,1A:2i.1A-4c.1A}}I 3q},1s:H(){J a=7[0].1s;1B(a&&(!/^1c|2K$/i.11(a.2j)&&D.1g(a,\'30\')==\'93\'))a=a.1s;I D(a)}});D.P([\'5e\',\'5G\'],H(i,b){J c=\'4y\'+b;D.17[c]=H(a){G(!7[0])I;I a!=12?7.P(H(){7==1b||7==S?1b.92(!i?a:D(1b).2e(),i?a:D(1b).2c()):7[c]=a}):7[0]==1b||7[0]==S?46[i?\'aI\':\'aJ\']||D.71&&S.1C[c]||S.1c[c]:7[0][c]}});D.P(["6N","4b"],H(i,b){J c=i?"5e":"5G",4f=i?"6k":"6i";D.17["5s"+b]=H(){I 7[b.3y()]()+25(7,"57"+c)+25(7,"57"+4f)};D.17["90"+b]=H(a){I 7["5s"+b]()+25(7,"2C"+c+"4b")+25(7,"2C"+4f+"4b")+(a?25(7,"6S"+c)+25(7,"6S"+4f):0)}})})();',62,669,'|||||||this|||||||||||||||||||||||||||||||||||if|function|return|var|length|data|true|else|type|each|false|for|document|elem|null|style|event||nodeName|||test|undefined||browser|options|nodeType|fn|display|arguments|url|window|body|parentNode|add|msie|css|indexOf|prop|typeof|call|extend|script|in|replace|push|constructor|text|offsetParent|cur|status|div|apply|firstChild|opacity|now|left|while|documentElement|isFunction|filter|className|hidden|handle|match|complete|attr|ret|hide|show|dataType|trigger|doc|split|top|table|try|catch|success|break|cache|height||remove|tbody|string|guid|num|global|ready|fx|Math|curCSS|start|scrollTop|makeArray|scrollLeft|max|animate|width|offset|tagName|safari|map|toggle||done|Array|find|toUpperCase|button|special|duration|id|copy|value|handler|ownerDocument|select|new|border|exec|stack|none|opera|nextSibling|pushStack|target|html|inArray|unit|xml|bind|GET|isReady|merge|pos|timeout|delete|one|selected|px|step|jsre|position|async|preventDefault|overflow|name|which|queue|removeChild|namespace|insertBefore|nth|removeData|fixed|parseFloat|error|readyState|multiFilter|createElement|rl|re|trim|end|_|param|first|get|results|parseInt|slice|childNodes|encodeURIComponent|append|events|elems|toLowerCase|json|readyList|setTimeout|grep|mouseenter|color|is|custom|getElementsByTagName|block|stopPropagation|addEventListener|callee|proxy|mouseleave|timers|defaultView|password|disabled|last|has|appendChild|form|domManip|props|ajax|orig|set|easing|mozilla|load|prototype|curAnim|self|charCode|timerId|object|offsetChild|Width|parentOffset|src|unbind|br|currentStyle|clean|float|visible|relatedTarget|previousSibling|handlers|isXMLDoc|on|setup|nodeIndex|unique|shift|javascript|child|RegExp|_default|deep|scroll|lastModified|teardown|setRequestHeader|timeStamp|update|empty|tr|getAttribute|innerHTML|setInterval|checked|fromElement|Number|jQuery|state|active|jsonp|accepts|application|dir|input|responseText|click|styleSheets|unload|not|lastToggle|outline|mouseout|getPropertyValue|mouseover|getComputedStyle|bindReady|String|padding|pageX|metaKey|keyCode|getWH|andSelf|clientX|Left|all|visibility|container|index|init|triggered|removeAttribute|classFilter|prevObject|submit|file|after|windowData|inner|client|globalEval|sibling|jquery|absolute|clone|wrapAll|dequeue|version|triggerHandler|oldblock|ctrlKey|createTextNode|Top|handleError|getResponseHeader|parsererror|speeds|checkbox|old|00|radio|swing|href|Modified|ifModified|lastChild|safari2|startTime|offsetTop|offsetLeft|username|location|ajaxSettings|getElementById|isSimple|values|selectedIndex|runtimeStyle|rsLeft|_load|loaded|DOMContentLoaded|clientTop|clientLeft|toElement|srcElement|val|pageY|POST|unshift|Bottom|clientY|Right|fix|exclusive|detachEvent|cloneNode|removeEventListener|swap|toString|join|attachEvent|eval|substr|head|parse|textarea|reset|image|zoom|odd|even|before|prepend|exclude|expr|quickClass|quickID|uuid|quickChild|continue|Height|textContent|appendTo|contents|open|margin|evalScript|borderTopWidth|borderLeftWidth|parent|httpData|setArray|CSS1Compat|compatMode|boxModel|cssFloat|linear|def|webkit|nodeValue|speed|_toggle|eq|100|replaceWith|304|concat|200|alpha|Last|httpNotModified|getAttributeNode|httpSuccess|clearInterval|abort|beforeSend|splice|styleFloat|throw|colgroup|XMLHttpRequest|ActiveXObject|scriptCharset|callback|fieldset|multiple|processData|getBoundingClientRect|contentType|link|ajaxSend|ajaxSuccess|ajaxError|col|ajaxComplete|ajaxStop|ajaxStart|serializeArray|notmodified|keypress|keydown|change|mouseup|mousedown|dblclick|focus|blur|stylesheet|hasClass|rel|doScroll|black|hover|solid|cancelBubble|returnValue|wheelDelta|view|round|shiftKey|resize|screenY|screenX|relatedNode|mousemove|prevValue|originalTarget|offsetHeight|keyup|newValue|offsetWidth|eventPhase|detail|currentTarget|cancelable|bubbles|attrName|attrChange|altKey|originalEvent|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|font|gt|lt|uFFFF|u0128|size|417|Boolean|Date|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|wrap|contentWindow|contentDocument|iframe|children|siblings|prevAll|wrapInner|nextAll|outer|prev|scrollTo|static|marginTop|next|inline|parents|able|cellSpacing|adobeair|cellspacing|522|maxLength|maxlength|readOnly|400|readonly|fast|600|class|slow|1px|htmlFor|reverse|10000|PI|cos|compatible|Function|setData|ie|ra|it|rv|getData|userAgent|navigator|fadeTo|fadeIn|slideToggle|slideUp|slideDown|ig|responseXML|content|1223|NaN|fadeOut|300|protocol|send|setAttribute|option|dataFilter|cssText|changed|be|Accept|stop|With|Requested|Object|can|GMT|property|1970|Jan|01|Thu|Since|If|Type|Content|XMLHTTP|th|Microsoft|td|onreadystatechange|onload|cap|charset|colg|host|tfoot|specified|with|1_|thead|leg|plain|attributes|opt|embed|urlencoded|www|area|hr|ajaxSetup|meta|post|getJSON|getScript|marginLeft|img|elements|pageYOffset|pageXOffset|abbr|serialize|pixelLeft'.split('|'),0,{})) \ No newline at end of file diff --git a/doc/readme.html b/doc/readme.html deleted file mode 100644 index e38d071..0000000 --- a/doc/readme.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - README - - -
-
-

rena

-
    -
  • http://github.com/tommorris/rena - -
  • -
-

DESCRIPTION:

-

-Rena is an RDF library for Ruby. -

-

FEATURES/PROBLEMS:

-
    -
  • Features - -
  • -
-

SYNOPSIS:

-
-  Synopsis
-
-

REQUIREMENTS:

-
    -
  • Addressable gem - -
  • -
-

INSTALL:

-
    -
  • (sudo gem install rena) - -
  • -
-

LICENSE:

-

-(The MIT License) -

-

-Copyright © 2008 Tom Morris -

-

-Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -‘Software’), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to the -following conditions: -

-

-The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -

-

-THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -

- -
-
- - \ No newline at end of file diff --git a/doc/style.css b/doc/style.css deleted file mode 100644 index a13d216..0000000 --- a/doc/style.css +++ /dev/null @@ -1,65 +0,0 @@ -body { font-family: Myriad, Helvetica, Arial, Verdana, sans-serif; font-size: 10pt; } -#nav ul { list-style: none; padding: 0; margin: 0; } -#nav ul li { white-space: nowrap; } -#nav li em { font-size: 0.9em; color: #999; } -#nav h1 { font-size: 1.2em; } -h1 { font-size: 1.5em; background: #eee; color: #000; padding: 3px; text-decoration: none; } -h2 { font-size: 1.2em; background: #eef; color: #000; padding: 3px; text-decoration: none; } -h3 { font-size: 1.0em; } -.clear { clear: both; } -.section.module h1.title, .section.class h1.title, .section.readme h1 { color: #000; background: #ddd; border: 1px solid #ccc; padding: 7px; margin: 0; margin-bottom: 7px; } -.section.class h1.title { border-bottom: 0; margin-bottom: 0; } -.section.class > .section.docstring, .section.module > .section.docstring { padding: 0; } -#initialize-instance_method .methodsignature .return_types { display: none; } -.methodsignature .visibility { display: none; } -.methodsignature .name { font-weight: bold; } -.methoddetails .method_header h3 { display: none; } -.section.method { background: #eee; margin-bottom: 0.8em; } -.section.tags,.section.docstring,.section.source { padding: 5px 12px; } -.section.method .details_title { font-size: 1.1em; background: #dde; padding: 7px; } -.section.method .details_title p.aliases { padding: 0; margin: 0; font-style: italic; font-size: 0.9em; } -.section.method .details_title p.aliases tt { font-weight: bold; font-style: normal; font-size: 1.1em; } -.section.constants dl { font-family: monospace; } -.section.constants dt { font-weight: bold; font-size: 1.1em; } -.section.constants dt:after { content: " = "; } -.section.constants dd { margin-bottom: 1em; } -.section.source .source_link { font-size: 0.9em; } -.section.source .source_code { display: none; } -/*.section.source .source_code pre { float: left; }*/ -.section.attributes table { padding: 0; width: 100%; } -.section.attributes .readwrite { width: 5%; } -.section.attributes .name { font-weight: bold; width: 10%; } -.section.attributes .visibility { font-style: italic; color: #666; width: 5%; } -.section.attributes td, .section.attributes th { vertical-align: top; padding: 5px; } -.section.attributes th { padding-left: 0; text-align: left; } -.section.attributes .docstring p.returns { color: #555; font-style: italic; } -.section.attributes .docstring .return_types { font-style: normal; } -.section.attributes .docstring { width: 80%; } -.section.attributes .docstring * { display: inline; } -.section.inheritance { background: #ddd; padding: 5px; border: 1px solid #ccc; border-top: 0; } -.section.inheritance ul { list-style: none; padding-left: 2.2em; margin: 0; } -.section.inheritance ul li { line-height: 1.2em; } -.section.inheritance ul li:before { content: "↳ "; } -.section.inheritance > ul { padding-left: 5px; } -.section.inheritance > ul > li:before { content: ""; } -.section.inheritance > ul > ul { padding-left: 1em; } -.section.methodsummary table { width: 100%; } -.section.methodsummary td, .section.methodsummary th { background: #eee; vertical-align: top; padding: 5px; } -.section.methodsummary th { background: #dde; text-align: left; white-space: nowrap; padding-right: 12px; } -.section.methodsummary .signature { font-family: monospace; font-weight: normal; } -.section.methodsummary .signature .name { font-weight: bold; } -.section.methodsummary .signature .alias { display: block; } -.section.methodsummary .docstring { width: 80%; } -.section.methodsummary .docstring * { display: inline; } -.section.methodsummary .docstring p.returns { color: #555; font-style: italic; } -.section.methodsummary .docstring .return_types { font-style: normal; } -.section.tags div { clear: both; } -.section.tags h2 { display: none; } -.section.tags h3 { font-size: 1.0em; margin-top: 3px; } -.section.tags dl { margin-left: 2em; } -.section.methodmissing p.note { font-style: italic; } -.section.constructor p.inherited_msg { font-style: italic; } -.included h1, .inherited h1 { font-size: 1em !important; border: 0; margin: 0; padding: 5px; border-bottom: 1px solid #ccc; } -.included div, .inherited div { color: #444; margin: 1.5em 0; width: 47%; border: 1px solid #ccc; float: left; margin-right: 12px; } -.included p .name, .inherited p .name { font-family: monospace; } -.included p, .inherited p { margin: 5px; } diff --git a/doc/syntax_highlight.css b/doc/syntax_highlight.css deleted file mode 100644 index 22f9e1d..0000000 --- a/doc/syntax_highlight.css +++ /dev/null @@ -1,21 +0,0 @@ -/* Canvas */ -.docstring pre, .source_code { background: #222; padding: 0 12px; margin-top: 8px; border: 1px dashed #ccc; font-size: 0.9em; overflow-x: auto; } -.source_code pre.lines { margin-right: 20px; text-align: right; color: #888; } -.docstring pre { padding: 12px; padding-left: 0; } - -/* Token colours. Borrowed from pastie.org's "Blackboard" theme */ -pre.code, pre.lines { font-family: Monaco, Courier, monospace; } -pre.code { color: #fff; } -pre.code .info.file { color: #888; } -pre.code .val { color: #61CE3C; } -pre.code .dstring { color: #61DE3C; } -pre.code .fid, pre.code .id.new, pre.code .id.to_s, -pre.code .id.to_sym, pre.code .id.to_f, -pre.code .dot + pre.code .id, -pre.code .id.to_i pre.code .id.each { color: #FF6400; } -pre.code .comment { color: #AEAEAE; } -pre.code .constant, pre.code .symbol { color: #D8FA3C; } -pre.code .kw { color: #FBDE2D; } -pre.code .ivar { color: #AACEFB; } -pre.code .gvar, pre.code .id.nth_ref { color: #BADEFF; } -pre.code .regexp, .dregexp { color: #EA5EFB; } \ No newline at end of file diff --git a/lib/reddy.rb b/lib/reddy.rb new file mode 100644 index 0000000..b9ae1f0 --- /dev/null +++ b/lib/reddy.rb @@ -0,0 +1,5 @@ +$:.unshift File.dirname(__FILE__) +Dir.glob(File.join(File.dirname(__FILE__), 'reddy/**.rb')).each { |f| require f } + +module Reddy +end diff --git a/lib/rena/bnode.rb b/lib/reddy/bnode.rb similarity index 100% rename from lib/rena/bnode.rb rename to lib/reddy/bnode.rb diff --git a/lib/rena/exceptions/about_each_exception.rb b/lib/reddy/exceptions/about_each_exception.rb similarity index 100% rename from lib/rena/exceptions/about_each_exception.rb rename to lib/reddy/exceptions/about_each_exception.rb diff --git a/lib/rena/exceptions/uri_relative_exception.rb b/lib/reddy/exceptions/uri_relative_exception.rb similarity index 100% rename from lib/rena/exceptions/uri_relative_exception.rb rename to lib/reddy/exceptions/uri_relative_exception.rb diff --git a/lib/rena/graph.rb b/lib/reddy/graph.rb similarity index 97% rename from lib/rena/graph.rb rename to lib/reddy/graph.rb index b991cb0..3bdc066 100644 --- a/lib/rena/graph.rb +++ b/lib/reddy/graph.rb @@ -1,8 +1,8 @@ -require 'rena/namespace' -require 'rena/bnode' -require 'rena/uriref' -require 'rena/literal' -require 'rena/triple' +require 'reddy/namespace' +require 'reddy/bnode' +require 'reddy/uriref' +require 'reddy/literal' +require 'reddy/triple' module Rena class Graph diff --git a/lib/rena/libxml_hacks.rb b/lib/reddy/libxml_hacks.rb similarity index 100% rename from lib/rena/libxml_hacks.rb rename to lib/reddy/libxml_hacks.rb diff --git a/lib/rena/literal.rb b/lib/reddy/literal.rb similarity index 100% rename from lib/rena/literal.rb rename to lib/reddy/literal.rb diff --git a/lib/rena/n3_grammar.treetop b/lib/reddy/n3_grammar.treetop similarity index 100% rename from lib/rena/n3_grammar.treetop rename to lib/reddy/n3_grammar.treetop diff --git a/lib/rena/n3parser.rb b/lib/reddy/n3parser.rb similarity index 99% rename from lib/rena/n3parser.rb rename to lib/reddy/n3parser.rb index 533f5e6..96aec38 100644 --- a/lib/rena/n3parser.rb +++ b/lib/reddy/n3parser.rb @@ -1,4 +1,4 @@ -require 'rena/graph' +require 'reddy/graph' require 'treetop' Treetop.load(File.join(File.dirname(__FILE__), "n3_grammar")) diff --git a/lib/rena/namespace.rb b/lib/reddy/namespace.rb similarity index 97% rename from lib/rena/namespace.rb rename to lib/reddy/namespace.rb index 36ede7f..915522e 100644 --- a/lib/rena/namespace.rb +++ b/lib/reddy/namespace.rb @@ -1,5 +1,5 @@ -require 'rena/uriref' -require 'rena/graph' +require 'reddy/uriref' +require 'reddy/graph' module Rena class Namespace diff --git a/lib/rena/rdfaparser.rb b/lib/reddy/rdfaparser.rb similarity index 98% rename from lib/rena/rdfaparser.rb rename to lib/reddy/rdfaparser.rb index 09686df..0679e31 100644 --- a/lib/rena/rdfaparser.rb +++ b/lib/reddy/rdfaparser.rb @@ -1,4 +1,4 @@ -# require 'lib/rena' +# require 'lib/reddy' module Rena class Rena::RdfaParser diff --git a/lib/rena/rdfxmlparser.rb b/lib/reddy/rdfxmlparser.rb similarity index 87% rename from lib/rena/rdfxmlparser.rb rename to lib/reddy/rdfxmlparser.rb index 7db51d2..67e3926 100644 --- a/lib/rena/rdfxmlparser.rb +++ b/lib/reddy/rdfxmlparser.rb @@ -1,4 +1,4 @@ -require 'lib/rena' +require 'lib/reddy' require 'ruby-debug' require 'xml' include Rena @@ -38,8 +38,11 @@ def initialize(xml_str, uri = nil) private def is_rdf_root? (node) - if node.namespace_node.href == SYNTAX_BASE && node.name == "RDF" - return true + #TODO: clean this method up to make it more like Ruby and less like retarded Java + if node.name == "RDF" + if !node.namespace.nil? && node.namespace_node.href == SYNTAX_BASE + return true + end else return false end @@ -211,54 +214,8 @@ def forge_bnode_from_string(value) def id_check?(id) !(!(id =~ /^[a-zA-Z_]\w*$/)) end - - def parse_object_atts (el) - if el.attributes.get_attribute_ns(SYNTAX_BASE, "resource") - return URIRef.new(base_helper(el.attributes.get_attribute_ns(SYNTAX_BASE, "resource").value, el.base).to_s) - end - end - - - - def levels_to_root (el, num = 0) - if el.parent == @xml.root - return num - else - levels_to_root el.parent, num + 1 - end - end protected - - def parse_element (element, subject = nil, resource = false) - if subject == nil - # figure out subject - subject = self.get_uri_from_atts(element, true) - end - - # type parsing - if (resource == true or element.attributes.has_key? 'about') - type = URIRef.new(element.namespace + element.name) - unless type.to_s == RDF_TYPE - @graph.add_triple(subject, RDF_DESCRIPTION, type) - end - end - - # attribute parsing - element.attributes.each_attribute { |att| - uri = att.namespace + att.name - value = att.to_s - - unless @excl.member? uri - @graph.add_triple(subject, uri, Literal.untyped(value)) - end - } - - # element parsing - element.each_element { |e| - self.parse_resource_element e, subject - } - end def smells_like_xml?(str) !(!(str =~ /xmlns/)) diff --git a/lib/rena/rexml_hacks.rb b/lib/reddy/rexml_hacks.rb similarity index 98% rename from lib/rena/rexml_hacks.rb rename to lib/reddy/rexml_hacks.rb index c65c098..c069322 100644 --- a/lib/rena/rexml_hacks.rb +++ b/lib/reddy/rexml_hacks.rb @@ -72,7 +72,7 @@ def base # @return [String] The XML of the element and it's children. # # @author Tom Morris - def write_rena(excl=[]) + def write_reddy(excl=[]) # TODO: add optional list argument of excluded namespaces self.prefixes.each { |ns| self.add_attribute('xmlns:' + ns, self.namespaces[ns].to_s) unless excl.include? self.namespaces[ns] diff --git a/lib/rena/triple.rb b/lib/reddy/triple.rb similarity index 97% rename from lib/rena/triple.rb rename to lib/reddy/triple.rb index e429a57..4c6b545 100644 --- a/lib/rena/triple.rb +++ b/lib/reddy/triple.rb @@ -50,7 +50,7 @@ def is_type? def self.coerce_subject(subject) case subject when Addressable::URI - URIRef.new subject.to_s + URIRef.new(subject.to_s) when URIRef, BNode subject when String @@ -80,7 +80,7 @@ def self.coerce_predicate(uri_or_string) def self.coerce_object(object) case object when Addressable::URI - URIRef.new subject.to_s + URIRef.new(object.to_s) when String, Integer, Float Literal.untyped(object) # when URIRef, BNode, Literal, TypedLiteral diff --git a/lib/rena/uriref.rb b/lib/reddy/uriref.rb similarity index 93% rename from lib/rena/uriref.rb rename to lib/reddy/uriref.rb index 196449c..592fd6f 100644 --- a/lib/rena/uriref.rb +++ b/lib/reddy/uriref.rb @@ -1,6 +1,6 @@ require 'rubygems' require 'addressable/uri' -require 'rena/exceptions/uri_relative_exception' +require 'reddy/exceptions/uri_relative_exception' require 'net/http' module Rena @@ -23,7 +23,7 @@ def + (input) else input_uri = Addressable::URI.parse(input.to_s) end - @uri += str_uri + return URIRef.new((@uri + input_uri).to_s) end def short_name diff --git a/lib/rena.rb b/lib/rena.rb deleted file mode 100644 index 9f945e9..0000000 --- a/lib/rena.rb +++ /dev/null @@ -1,5 +0,0 @@ -$:.unshift File.dirname(__FILE__) -Dir.glob(File.join(File.dirname(__FILE__), 'rena/**.rb')).each { |f| require f } - -module Rena -end diff --git a/rena.gemspec b/reddy.gemspec similarity index 61% rename from rena.gemspec rename to reddy.gemspec index 1b4c338..f66ffe5 100644 --- a/rena.gemspec +++ b/reddy.gemspec @@ -1,14 +1,14 @@ Gem::Specification.new do |s| - s.name = "rena" + s.name = "" s.version = "0.0.2" s.date = "2008-10-5" s.summary = "Ruby RDF library." s.email = "tom@tommorris.org" - s.homepage = "http://github.com/tommorris/rena" + s.homepage = "http://github.com/tommorris/" s.description = "Rena is a Ruby library for manipulating RDF files." s.has_rdoc = true s.authors = ['Tom Morris', 'Pius Uzamere', 'Patrick Sinclair'] - s.files = ["README.txt", "Rakefile", "rena.gemspec", "lib/rena.rb", "lib/rena/bnode.rb", "lib/rena/graph.rb", "lib/rena/literal.rb", "lib/rena/n3parser.rb", "lib/rena/n3_grammar.treetop", "lib/rena/namespace.rb", "lib/rena/rdfxmlparser.rb", "lib/rena/rexml_hacks.rb", "lib/rena/triple.rb", "lib/rena/uriref.rb", "lib/rena/exceptions/about_each_exception.rb", "lib/rena/exceptions/uri_relative_exception.rb"] + s.files = ["README.txt", "Rakefile", ".gemspec", "lib/.rb", "lib//bnode.rb", "lib//graph.rb", "lib//literal.rb", "lib//n3parser.rb", "lib//n3_grammar.treetop", "lib//namespace.rb", "lib//rdfxmlparser.rb", "lib//rexml_hacks.rb", "lib//triple.rb", "lib//uriref.rb", "lib//exceptions/about_each_exception.rb", "lib//exceptions/uri_relative_exception.rb"] s.test_files = ["test/test_uris.rb", "test/xml.rdf", "spec/bnode_spec.rb", "spec/graph_spec.rb", "spec/literal_spec.rb", "spec/namespaces_spec.rb", "spec/parser_spec.rb", "spec/rexml_hacks_spec.rb", "spec/triple_spec.rb", "spec/uriref_spec.rb"] #s.rdoc_options = ["--main", "README.txt"] #s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"] diff --git a/spec/bnode_spec.rb b/spec/bnode_spec.rb index 24bab29..90cc639 100644 --- a/spec/bnode_spec.rb +++ b/spec/bnode_spec.rb @@ -1,4 +1,4 @@ -require 'lib/rena' +require 'lib/reddy' describe "Blank nodes" do it "should accept a custom identifier" do b = BNode.new('foo') diff --git a/spec/graph_spec.rb b/spec/graph_spec.rb index aa221f6..42004ee 100644 --- a/spec/graph_spec.rb +++ b/spec/graph_spec.rb @@ -1,4 +1,4 @@ -require 'lib/rena' +require 'lib/reddy' describe "Graphs" do it "should allow you to add one or more triples" do diff --git a/spec/literal_spec.rb b/spec/literal_spec.rb index 14b807c..9c72274 100644 --- a/spec/literal_spec.rb +++ b/spec/literal_spec.rb @@ -1,4 +1,4 @@ -require 'lib/rena' +require 'lib/reddy' describe "Literals" do it "accept a language tag" do diff --git a/spec/n3parser_spec.rb b/spec/n3parser_spec.rb index ded85f8..b1f77a5 100644 --- a/spec/n3parser_spec.rb +++ b/spec/n3parser_spec.rb @@ -1,4 +1,4 @@ -require 'lib/rena' +require 'lib/reddy' include Rena describe "N3 parser" do diff --git a/spec/namespaces_spec.rb b/spec/namespaces_spec.rb index 1b9c135..996cb73 100644 --- a/spec/namespaces_spec.rb +++ b/spec/namespaces_spec.rb @@ -1,4 +1,4 @@ -require 'lib/rena' +require 'lib/reddy' describe "Namespaces" do it "should use method_missing to create URIRefs on the fly" do diff --git a/spec/parser_spec.rb b/spec/parser_spec.rb index da9c663..0216407 100644 --- a/spec/parser_spec.rb +++ b/spec/parser_spec.rb @@ -1,10 +1,40 @@ -require 'lib/rena' +require 'lib/reddy' require 'ruby-debug' include Rena # w3c test suite: http://www.w3.org/TR/rdf-testcases/ describe "RDF/XML Parser" do + it "should recognise and do nothing for an RDF-less document" do + sampledoc = <<-EOF; + + +EOF + graph = RdfXmlParser.new(sampledoc) + graph.graph.size.should == 0 + end + + it "should trigger parsing on XMl documents with multiple RDF nodes" do + sampledoc = <<-EOF; + + + + + Foo + + + + + + Bar + + + + EOF + graph = RdfXmlParser.new(sampledoc) + [graph.graph[0].object.to_s, graph.graph[1].object.to_s].sort.should == ["Bar", "Foo"].sort + end + it "should be able to parse a simple single-triple document" do sampledoc = <<-EOF; @@ -358,4 +388,4 @@ def test_file(filepath, uri = nil) # test_file(file) # end end -end +end \ No newline at end of file diff --git a/spec/rdfa_parser_spec.rb b/spec/rdfa_parser_spec.rb index f137247..bc28645 100644 --- a/spec/rdfa_parser_spec.rb +++ b/spec/rdfa_parser_spec.rb @@ -1,4 +1,4 @@ -require 'lib/rena' +require 'lib/reddy' # Specification: http://www.w3.org/TR/rdfa-syntax/ # docs: diff --git a/spec/rexml_hacks_spec.rb b/spec/rexml_hacks_spec.rb index 61e5b57..47b844b 100644 --- a/spec/rexml_hacks_spec.rb +++ b/spec/rexml_hacks_spec.rb @@ -1,11 +1,11 @@ -require 'lib/rena' +require 'lib/reddy' require 'rexml/document' #require 'lib/rexml_hacks' describe "REXML" do before do string = <<-EOF; - + bar @@ -16,16 +16,32 @@ EOF @doc = REXML::Document.new(string) + + string2 = <<-EOF; + + + + bar + foo + fap + + + EOF + @doc2 = REXML::Document.new(string2) end it "should have support for xml:base" do @doc.root.elements[1].base?.should == true @doc.root.elements[1].base.should == "http://example.org/" + @doc2.root.elements[1].base?.should_not == true + @doc2.root.elements[1].base.should == nil end it "should have support for xml:lang" do @doc.root.elements[1].lang?.should == true @doc.root.elements[1].lang.should == "en" + @doc2.root.elements[1].lang?.should_not == true + @doc2.root.elements[1].lang.should == nil end it "should allow individual writing-out of XML" do @@ -70,6 +86,14 @@ doc2 = REXML::Document.new(sampledoc) expectedoutput_str = "\n John\n " expectedout = REXML::Document.new(expectedoutput_str) - doc2.root.elements[1].elements[1].elements[1] == expectedout.root + doc2.root.elements[1].elements[1].elements[1].write_reddy == expectedout.root + + sampledoc3 = <<-EOF; + + EOF + + doc3 = REXML::Document.new(sampledoc3) + out3 = REXML::Document.new(doc3.root.elements[1].write_reddy) + out3.root.class == REXML::Element end end diff --git a/spec/triple_spec.rb b/spec/triple_spec.rb index ddbe6fe..34e7ef9 100644 --- a/spec/triple_spec.rb +++ b/spec/triple_spec.rb @@ -1,4 +1,4 @@ -require 'lib/rena' +require 'lib/reddy' describe "Triples" do it "should have a subject" do @@ -48,7 +48,11 @@ it "should accept a uri string and make URIRef" do Triple.coerce_subject('http://localhost/').should == URIRef.new('http://localhost/') end - + + it "should accept an Addressable::URI object and make URIRef" do + Triple.coerce_subject(Addressable::URI.parse("http://localhost/")).should == URIRef.new("http://localhost/") + end + it "should turn an other string into a BNode" do Triple.coerce_subject('foo').should == BNode.new('foo') end @@ -62,7 +66,7 @@ describe "#coerce_predicate" do it "should make a string into a URI ref" do - Triple.coerce_predicate("http://localhost/").should == URIRef.new('http://localhost') + Triple.coerce_predicate("http://localhost/").should == URIRef.new('http://localhost/') end it "should leave a URIRef alone" do @@ -83,6 +87,10 @@ Triple.coerce_object(ref).should == ref end + it "should accept an Addressable::URI object and make URIRef" do + Triple.coerce_object(Addressable::URI.parse("http://localhost/")).should == URIRef.new("http://localhost/") + end + it "should leave BNodes alone" do ref = BNode.new() Triple.coerce_object(ref).should == ref diff --git a/spec/uriref_spec.rb b/spec/uriref_spec.rb index 48a45a6..55805ee 100644 --- a/spec/uriref_spec.rb +++ b/spec/uriref_spec.rb @@ -1,6 +1,6 @@ require 'webrick' include WEBrick -require 'lib/rena' +require 'lib/reddy' #require 'lib/uriref' describe "URI References" do @@ -57,6 +57,15 @@ it "should discourage use of %-escaped characters" do pending "TODO: figure out a way to discourage %-escaped character usage" end + + it "should allow another URIRef to be added" do + uri = URIRef.new("http://example.org/") + "foo#bar" + uri.to_s.should == "http://example.org/foo#bar" + uri.class.should == URIRef + + uri2 = URIRef.new("http://example.org/") + Addressable::URI.parse("foo#bar") + uri2.to_s.should == "http://example.org/foo#bar" + end # TEST turned off until parser is working. # it "should allow the programmer to Follow His Nose" do diff --git a/test/perf_test/test.rb b/test/perf_test/test.rb new file mode 100644 index 0000000..1941654 --- /dev/null +++ b/test/perf_test/test.rb @@ -0,0 +1,11 @@ +require "test/unit" +require "lib/" + +class TestRenaPerf < Test::Unit::TestCase + def test_tom_foaf + foaf = File.new("test/perf_test/tommorris.rdf", "r").readlines.join + 50.times do + Rena::RdfXmlParser.new(foaf, "http://tommorris.org/foaf") + end + end +end \ No newline at end of file diff --git a/test/perf_test/tommorris.rdf b/test/perf_test/tommorris.rdf new file mode 100644 index 0000000..22aad55 --- /dev/null +++ b/test/perf_test/tommorris.rdf @@ -0,0 +1,2267 @@ + + + + + + + + + + + + + + + + + en + Adactio + + + + + + + + en + BBC Backstage + + + + de + beissholz.de + + + + + en + Licence to Roam + + + + + + + + + en + Marc's Voice + + + + + + + + en + Grazr Blog + + + + + + + + + en + Lee Wilkins + + + + + en + OPML, a book + + + + + + + + RSS + + + + en + KOZ - Kosso 2.0 + + + + en + + + + + + en + Richard Bluestein's Weblog + + + + + + + + en + Chocolate and Vodka + + + + en + Conversation Base Blog + + + + + + + + + en + cruel to be kind + + + + + en + Eirepreneur + + + + + + Friedrich Nietzsche + + + + Podcasting + + + + Søren Kierkegaard + + + + United States of America + + + + en + Epeus' epigone + + + + + + + + + en + Feedonomics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + en + GigaOm + + + + en + About Om + + + + en + No Double Standards + + + + + en + kosso's braingarden + + + + + + en + Boing Boing Boing + + + + + + + + RELAX NG + + + + en + Pharyngula + + + + + en + Scobleizer - Tech Geek Blogger + + + + + + + + + en + Scripting News Annex + + + + + + + + + Share Your OPML + + + + Simon Willison's Weblog + + + + + en + Strange Attractor + + + + en + Tantek's Thoughts + + + + + + + + + + + + + + Alaric Snell-Pym + + + 737108A + + + + + + + + + male + 85ddadbdffb134fc6d7926a6a1a2cd1c9bbec9bd + Keith Baker + + + + + + male + Ian Bernard + + + + + + + + + + male + Richard Bluestein + + + + + male + Dan Bowring + + + + + Dan Brickley + + + + + + + + Andy Budd + + + + + + + + + + + + + male + Marc Canter + + + + + + + + + male + + Matthew Cashmore + + + + + + + + + male + Tantek Çelik + + + + + + female + + 37196d1d683d0d85e3d003cfbfcbfb84b32689e1 + Suw Charman + + + + + + + + + female + c4e35d2154d238d1fb59e8b1a805231fa57a487c + Rachel Clarke + + + + + + + + + + male + + + da1cb73754e6703c6bb179ee73d818ecafb9c6fa + James Corbett + + + + + + + + + male + 90e44e19687abfba6cbf36246a21c0848ff7f2a1 + Cory Doctorow + + + + + + + + + female + + + + Natalie Downe + Natbat + + + + + + Paul Downey + + + + + + + + + + + + + + + male + 4c068062c1aff081e20f1d7faf6beea4d2949f94 + Ian Forrester + + + + + + + + female + d9bdfd7bb7fd740ab50321aed2db680d82fd0954 + Sarah Forrester + + + + + male + Martin Freedman + + + + + + + + male + + 18fe2726550129b0704c00abcb929f0d3776083a + Adam Green + + + + + + + male + + + Walter Higgins + + + + female + + Becky Hogge + + + + + + + male + a9895a027c6a1923e23819070fe20aa4b4e05c26 + Critt Jarvis + + + + + + + + + + + male + + + Jeremy Keith + + + + + + + + + + + male + 812028b4795cbd8f24bba8750031f4e7f98a4cd9 + Jon Kossman + Kosso + Koz + + + + + + + + + + male + + a9bb37c548a287683aa72dfa4e06b6ad0c0f3af5 + Mike Kowalchik + + + + + + + + Alan Lai + + + + + + 1993 + 2008-08-01 + Rough Colly + long-haired + Male + true + + brown + black + white + + + Leo + + + + + + Daniel Lewis + + + + + + + + Madge Wenstein + + + + + male + + + Om Malik + + + + + + + male + + + Kevin Marks + + + + + + + + + + + + + + + + + + 2007-05 + + + + Heythrop College, University of London + + 2004-09 + Philosophy, Religion and Ethics + + + + en + + + + + + 391cfd47eba7934ef8faf4f0b690cacf4316cad3 + + + + + + + + + + + Morris + male + Tom + + + 271900013 + + + + + + tommorris + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Howes + Phil + + + 11513437 + + + Phil Howes + + + + + Mitchell + Andy + + + 61210614 + + + Andy Mitchell + + + + + Hardy + Georgina + + + 193106198 + + + Georgina Hardy + + + + + Mitchell + David + + + 197806225 + + + David Mitchell + + + + + Westbury + Rachel + + + 271900002 + + + Rachel Westbury + + + + + Langstone + Emma + + + 271900003 + + + Emma Langstone + + + + + Taliadoros + Alexandra + + + 271900004 + + + Alexandra Taliadoros + + + + + Roussel + Alex + + + 271900007 + + + Alex Roussel + + + + + Randall + Victoria + + + 271900020 + + + Victoria Randall + + + + + Hussey + Charlotte + + + 271900025 + + + Charlotte Hussey + + + + + Pike + Alistair + + + 271900026 + + + Alistair Pike + + + + + Williams + Hannah + + + 271900041 + + + Hannah Williams + + + + + Morgan + Karl + + + 271900046 + + + Karl Morgan + + + + + Hart + Stephen + + + 271900056 + + + Stephen Hart + + + + + Penny + Gemma + + + 271900077 + + + Gemma Penny + + + + + Towli + Freya + + + 271900079 + + + Freya Towli + + + + + Tye + Laura + + + 278100237 + + + Laura Tye + + + + + Campbell + Joe + + + 286106931 + + + Joe Campbell + + + + + Wright + Huw + + + 500759021 + + + Huw Wright + + + + + Winer + Dave + + + 500857454 + + + Dave Winer + + + + + Foster + John + + + 500987582 + + + John Foster + + + + + Kothari + Amit + + + 501087631 + + + Amit Kothari + + + + + Papafloratos + Sokratis + + + 501135811 + + + Sokratis Papafloratos + + + + + Scoble + Robert + + + 501319654 + + + Robert Scoble + + + + + Watts + Donovan + + + 501567614 + + + Donovan Watts + + + + + Terenzio + Matt + + + 501596161 + + + Matt Terenzio + + + + + Brickley + Dan + + + 501730978 + + + Dan Brickley + + + + + Duffy + Steven + + + 502475506 + + + Steven Duffy + + + + + Lawton + Todd + + + 502683848 + + + Todd Lawton + + + + + Davies + Timothy + + + 502974984 + + + Timothy Paul Stewart Davies + + + + + Weinstein + Madge + + + 503325462 + + + Madge Weinstein + + + + + Pettit + Mark + + + 504027156 + + + Mark Pettit + + + + + Patel + Neesh + + + 504565108 + + + Neesh Patel + + + + + Calacanis + Jason + + + 504598293 + + + Jason McCabe Calacanis + + + + + Wisdom + Wanda + + + 504966280 + + + Wanda Wisdom + + + + + Hillocks + Stephen + + + 507814848 + + + Stephen Hillocks + + + + + Hurry + Rachel + + + 507997291 + + + Rachel Hurry + + + + + Verwer + Dave + + + 510143354 + + + Dave Verwer + + + + + Stirland + Stuart + + + 510519130 + + + Stuart Stirland + + + + + Rahman + Mohammed + + + 515657266 + + + Mohammed Shahinur Rahman + + + + + Wilson + Alex + + + 517924264 + + + Alex Wilson + + + + + Cunningham + Camille + + + 519560580 + + + Camille A Cunningham + + + + + Barker + Hannah + + + 519565580 + + + Hannah Barker + + + + + Summers + Tom + + + 540980006 + + + Tom Summers + + + + + Green + Adam + + + 542749457 + + + Adam Green + + + + + Lingard + Alex + + + 547636115 + + + Alex Lingard + + + + + Baker + Keith + + + 548631968 + + + Keith J. Baker + + + + + Bojārs + Uldis + + + 554812929 + + + Uldis Bojārs + + + + + Ly + Jenny + + + 557410572 + + + Jenny Ly + + + + + Haskell + Lyn + + + 559950534 + + + Lyn Haskell + + + + + Forrester + Ian + + + 560622844 + + + Ian Forrester + + + + + Wilson + John + + + 568846289 + + + John Wilson + + + + + Napier + Sophie + + + 569343372 + + + Sophie Napier + + + + + Pawson + Dave + + + 581274611 + + + Dave Pawson + + + + + Balkan + Aral + + + 581291541 + + + Aral Balkan + + + + + Simon + Nicole + + + 583286302 + + + Nicole Simon + + + + + Carol + Aunt + + + 591017316 + + + Aunt Carol + + + + + Waigl + Chris + + + 593707475 + + + Chris F Waigl + + + + + Robertson + Alison + + + 599981268 + + + Alison Robertson + + + + + Ibrahim + Mecca + + + 602322501 + + + Mecca Ibrahim + + + + + Idehen + Kingsley + + + 605980750 + + + Kingsley Idehen + + + + + Johnson + J. Scott + + + 607051415 + + + J. Scott Johnson + + + + + Pullar + Nick + + + 615300136 + + + Nick Pullar + + + + + Freedman + Martin + + + 625380245 + + + Martin Freedman + + + + + Hansen + Norman + + + 645246253 + + + Norman Hansen + + + + + Cashmore + Matthew + + + 657852061 + + + Matthew Cashmore + + + + + Grammatica + Daniella + + + 660782493 + + + Daniella Grammatica + + + + + Hughson + Dean + + + 661086801 + + + Dean Hughson + + + + + Hinchcliffe + Robert + + + 664283486 + + + Robert Hinchcliffe + + + + + Rawlings + Dan + + + 688415356 + + + Dan Rawlings + + + + + Lee-Cann + Robert + + + 690736533 + + + Robert Lee-Cann + + + + + Rushgrove + Gareth + + + 695341580 + + + Gareth Rushgrove + + + + + Molloy + Deirdre + + + 695716690 + + + Deirdre Molloy + + + + + Ford + Neil + + + 696551884 + + + Neil Ford + + + + + Higgins + Walter + + + 697107470 + + + Walter Higgins + + + + + Smyth + Garret + + + 700837639 + + + Garret Smyth + + + + + Kowalchik + Michael + + + 705606289 + + + Michael Kowalchik + + + + + Jobling + Martin + + + 721545991 + + + Martin Jobling + + + + + Taylor + Jeffrey + + + 729800602 + + + Jeffrey Taylor + + + + + Barrass + Gavin + + + 735455251 + + + Gavin Barrass + + + + + Thomson + Sheila + + + 736320224 + + + Sheila Thomson + + + + + Harriyott + Simon + + + 740045703 + + + Simon Harriyott + + + + + Corbett + James + + + 751047456 + + + James Corbett + + + + + Green + David + + + 808455513 + + + David Green + + + + + Reynolds + Tom + + + 809930304 + + + Tom Reynolds + + + + + Furniss + Charlotte + + + 830275789 + + + Charlotte Furniss + + + + + Michel + Sam + + + 860005407 + + + Sam Michel + + + + + Spence + Ewan + + + 877515150 + + + Ewan Spence + + + + + Kendall + Tessa + + + 885495303 + + + Tessa Kendall + + + + + Penn + Christopher + + + 890555121 + + + Christopher Penn + + + + + Ross + Hanni + + + 1612050075 + + + Hanni Ross + + + 802c68123e12bf69d99a25a87cef360f18813fe4 + bd9f81a05283ed85e699175ed057b4a497f20b77 + Tom Morris + tommorris + + + + + + + + + + + + + + + + + + + Mr + + + + + A41E1EC9E4CE8DF774B6 3E5F9B1B1938A6A4F54E + A6A4F54E + + + + Tom Morris + + + 1024 + + + + + + + male + bafdaa20bfcbb1746c8ac60a3e57d8a087e49964 + Jim Moore + + + + + + + + + + + + 391cfd47eba7934ef8faf4f0b690cacf4316cad3 + female + Quilting + Robert Rauschenberg + Textile Art + b70c1a18f42340dcb8daa85a5f33d3dd3bd2f629 + Mary Morris + + + + + + + + male + Evolution + Invertebrates + Science + + Paul Z. Myers + + + + + + + + male + + + + Tom Raftery + + + + + + + male + 1f6e614b57c9bbde559840b3c002022991c97063 + Robert Scoble + + + + + + + + male + + Sam Sethi + + + + + + + + + + + female + Nicole Simon + + + + + + + + + male + Ewan Spence + + + + + + + male + Brian Suda + + + + + + female + be723a3f238ac889e6657d587d4cb2e2ea644f42 + Indigio Tabor + + + + + + + long-haired + Female + true + + white + brown + + 391cfd47eba7934ef8faf4f0b690cacf4316cad3 + Tessa + + + + male + + Lee Wilkins + + + + + + + male + Django + Python + + + Simon Willison + + + + + + + + + male + 278666686905827bfa44b81b5202370dac0d7e5d + Dave Winer + + + + + + + + + + + + + + + + + + + + + + + + en + Boing Boing + + + + + Broadband Mechanics + + + + en + cubicgarden.com + + + + en + Slightly Outraged + + + + + + en + East Berkshire University College + + + + en + Ewan's Musings + + + + + + + + Free State Project + + + + en + Free Talk Live + + + + Grazr + + + + Heythrop College + + + + en + Open Rights Group + + + + OPML + + + + PHP + + + + en + Podcast.com + + + + en + Podtech.net + + + + Python + + + + Ruby + + + + Ruby on Rails + + + + en + Scripting News + + + + + + + + + en + Technorati + + + + + + + en + + + + en + Top Ten Sources + + + + Semantic Web + + + + RDF + + + + XML + + + + en + Yeast Radio + + diff --git a/test/rdf_tests/xml-literal-mixed.nt b/test/rdf_tests/xml-literal-mixed.nt new file mode 100644 index 0000000..8d4ca2a --- /dev/null +++ b/test/rdf_tests/xml-literal-mixed.nt @@ -0,0 +1,7 @@ + """ + Foo + barhere + baz + more + """^^rdf:XMLLiteral . \ No newline at end of file diff --git a/test/rdf_tests/xml-literal-mixed.rdf b/test/rdf_tests/xml-literal-mixed.rdf new file mode 100644 index 0000000..2a0cb5c --- /dev/null +++ b/test/rdf_tests/xml-literal-mixed.rdf @@ -0,0 +1,15 @@ + + + + + + Foo + <html:b xmlns:html="http://www.w3.org/1999/xhtml" html:a="b">bar<rdf:Thing xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><a:b xmlns:a="foo:"></a:b>here<a:c xmlns:a="foo:"></a:c></rdf:Thing></html:b> + baz + <html:i xmlns:html="http://www.w3.org/1999/xhtml">more</html:i> + + + + \ No newline at end of file