pjstadig-rubyrdf 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,34 @@
1
+ desc 'Release the website and new gem version'
2
+ task :deploy => [:check_version, :website, :release] do
3
+ puts "Remember to create SVN tag:"
4
+ puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
5
+ "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
6
+ puts "Suggested comment:"
7
+ puts "Tagging release #{CHANGES}"
8
+ end
9
+
10
+ desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
+ task :local_deploy => [:website_generate, :install_gem]
12
+
13
+ task :check_version do
14
+ unless ENV['VERSION']
15
+ puts 'Must pass a VERSION=x.y.z release version'
16
+ exit
17
+ end
18
+ unless ENV['VERSION'] == VERS
19
+ puts "Please update your version.rb to match the release version, currently #{VERS}"
20
+ exit
21
+ end
22
+ end
23
+
24
+ desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
+ task :install_gem_no_doc => [:clean, :package] do
26
+ sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
+ end
28
+
29
+ namespace :manifest do
30
+ desc 'Recreate Manifest.txt to include ALL files'
31
+ task :refresh do
32
+ `rake check_manifest | patch -p0 > Manifest.txt`
33
+ end
34
+ end
@@ -0,0 +1,7 @@
1
+ task :ruby_env do
2
+ RUBY_APP = if RUBY_PLATFORM =~ /java/
3
+ "jruby"
4
+ else
5
+ "ruby"
6
+ end unless defined? RUBY_APP
7
+ end
@@ -0,0 +1,4 @@
1
+ desc 'Generate gemspec file'
2
+ task :gemspec do
3
+ sh %{ rake debug_gem > rubyrdf.gemspec }
4
+ end
@@ -0,0 +1,155 @@
1
+ require File.dirname(__FILE__) + '/../test_helper.rb'
2
+
3
+ class RDF::SesameTest < Test::Unit::TestCase
4
+ def setup
5
+ @graph = RDF::Sesame.new('http://localhost:8180/openrdf-sesame', 'test')
6
+ @graph.delete_all
7
+ RDF::unregister_all!
8
+ RDF::register(:ex => 'http://example.org/')
9
+ end
10
+
11
+ def test_should_initialize_address_port_path_and_repository
12
+ assert_equal 'localhost', @graph.address
13
+ assert_equal 8180, @graph.port
14
+ assert_equal '/openrdf-sesame', @graph.path
15
+ assert_equal 'test', @graph.repository
16
+ end
17
+
18
+ def test_should_be_empty
19
+ assert @graph.empty?
20
+ end
21
+
22
+ def test_should_add_statement
23
+ @graph.add(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
24
+ assert_equal 1, @graph.size
25
+ end
26
+
27
+ def test_should_import_data
28
+ @graph.import(<<-ENDL, :ntriples)
29
+ #{[RDF[:ex]::a, RDF[:ex]::b, RDF[:ex]::c].to_statement.to_ntriples}
30
+ #{[RDF[:ex]::d, RDF[:ex]::b, RDF[:ex]::e].to_statement.to_ntriples}
31
+ ENDL
32
+ assert_equal 2, @graph.size
33
+ assert @graph.include?([RDF[:ex]::a, RDF[:ex]::b, RDF[:ex]::c])
34
+ assert @graph.include?([RDF[:ex]::d, RDF[:ex]::b, RDF[:ex]::e])
35
+ end
36
+
37
+ def test_should_delete_statement
38
+ @graph.add(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
39
+ @graph.delete(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
40
+ assert @graph.empty?
41
+ end
42
+
43
+ def test_should_execute_select_query
44
+ assert @graph.select("SELECT ?x WHERE {?x #{RDF[:ex]::nothing} _:bn2 . }").empty?
45
+
46
+ @graph.add(RDF[:ex]::a, RDF[:ex]::b, RDF::PlainLiteralNode.new('test'))
47
+ @graph.add(RDF[:ex]::d, RDF[:ex]::b, RDF::PlainLiteralNode.new('test', 'en'))
48
+ @graph.add(RDF[:ex]::d, RDF[:ex]::b, RDF::TypedLiteralNode.new('test', RDF[:ex]::a.uri))
49
+ @graph.add(RDF[:ex]::d, RDF[:ex]::b, RDF[:ex]::e)
50
+ @graph.add(RDF[:ex]::d, RDF[:ex]::b, RDF::BlankNode.new)
51
+ result = @graph.select("SELECT ?y WHERE {?x #{RDF[:ex]::b} ?y . }")
52
+ assert_equal 5, result.size
53
+ assert result.any?{|r| r['y'] == RDF::PlainLiteralNode.new('test')}
54
+ assert result.any?{|r| r['y'] == RDF::PlainLiteralNode.new('test', 'en')}
55
+ assert result.any?{|r| r['y'] == RDF::TypedLiteralNode.new('test', RDF[:ex]::a.uri)}
56
+ assert result.any?{|r| r['y'] == RDF[:ex]::e}
57
+ assert result.any?{|r| r['y'].blank_node?}
58
+ end
59
+
60
+ def test_should_execute_ask_query
61
+ @graph.add(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
62
+ assert @graph.ask("ask { #{[RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj].to_statement.to_ntriples} }")
63
+ end
64
+
65
+ def test_should_include_statement
66
+ @graph.add(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
67
+ assert @graph.include?(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
68
+ end
69
+
70
+ def test_should_clear_graph
71
+ @graph.add(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
72
+ @graph.delete_all
73
+
74
+ assert @graph.empty?
75
+ end
76
+
77
+ def test_should_commit_transaction
78
+ stmt1 = RDF::Statement.new(RDF[:ex]::sub, RDF[:ex]::pred1, RDF::PlainLiteralNode.new('plainLiteral', 'en'))
79
+ stmt2 = RDF::Statement.new(RDF::BlankNode.new("test2"), RDF[:ex]::pred2, RDF::TypedLiteralNode.new('plainLiteral', RDF[:ex]::datatype))
80
+ @graph.add(stmt1)
81
+ @graph.transaction do |t|
82
+ t.add(stmt2)
83
+ t.delete(stmt1)
84
+ end
85
+
86
+ assert @graph.include?(stmt2)
87
+ assert !@graph.include?(stmt1)
88
+ end
89
+
90
+ def test_should_commit_in_middle_of_transaction
91
+ stmt1 = RDF::Statement.new(RDF[:ex]::sub, RDF[:ex]::pred1, RDF::PlainLiteralNode.new('plainLiteral', 'en'))
92
+ stmt2 = RDF::Statement.new(RDF::BlankNode.new("test2"), RDF[:ex]::pred2, RDF::TypedLiteralNode.new('plainLiteral', RDF[:ex]::datatype))
93
+ @graph.add(stmt1)
94
+ @graph.transaction do |t|
95
+ t.add(stmt2)
96
+ t.commit
97
+ t.delete(stmt1)
98
+ t.rollback
99
+ end
100
+
101
+ assert @graph.include?(stmt1)
102
+ assert @graph.include?(stmt2)
103
+ end
104
+
105
+ def test_should_accept_empty_transaction
106
+ @graph.transaction do |t|
107
+ end
108
+ end
109
+
110
+ def test_should_rollback_transaction
111
+ stmt1 = RDF::Statement.new(RDF[:ex]::sub, RDF[:ex]::pred1, RDF::PlainLiteralNode.new('plainLiteral', 'en'))
112
+ stmt2 = RDF::Statement.new(RDF::BlankNode.new("test2"), RDF[:ex]::pred2, RDF::TypedLiteralNode.new('plainLiteral', RDF[:ex]::datatype))
113
+ @graph.add(stmt1)
114
+ @graph.transaction do |t|
115
+ t.add(stmt2)
116
+ t.delete(stmt1)
117
+ t.rollback
118
+ end
119
+
120
+ assert @graph.include?(stmt1)
121
+ assert !@graph.include?(stmt2)
122
+ end
123
+
124
+ def test_should_rollback_transaction_on_exception
125
+ stmt1 = RDF::Statement.new(RDF[:ex]::sub, RDF[:ex]::pred1, RDF::PlainLiteralNode.new('plainLiteral', 'en'))
126
+ stmt2 = RDF::Statement.new(RDF::BlankNode.new("test2"), RDF[:ex]::pred2, RDF::TypedLiteralNode.new('plainLiteral', RDF[:ex]::datatype))
127
+ @graph.add(stmt1)
128
+ begin
129
+ @graph.transaction do |t|
130
+ t.add(stmt2)
131
+ t.delete(stmt1)
132
+ throw "test"
133
+ end
134
+ fail "Should rethrow exception"
135
+ rescue
136
+ end
137
+
138
+ assert @graph.include?(stmt1)
139
+ assert !@graph.include?(stmt2)
140
+ end
141
+
142
+ def test_should_rollback_in_middle_of_transaction
143
+ stmt1 = RDF::Statement.new(RDF[:ex]::sub, RDF[:ex]::pred1, RDF::PlainLiteralNode.new('plainLiteral', 'en'))
144
+ stmt2 = RDF::Statement.new(RDF::BlankNode.new("test2"), RDF[:ex]::pred2, RDF::TypedLiteralNode.new('plainLiteral', RDF[:ex]::datatype))
145
+ @graph.add(stmt1)
146
+ @graph.transaction do |t|
147
+ t.add(stmt2)
148
+ t.rollback
149
+ t.delete(stmt1)
150
+ end
151
+
152
+ assert !@graph.include?(stmt1)
153
+ assert !@graph.include?(stmt2)
154
+ end
155
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pjstadig-rubyrdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Stadig
@@ -9,10 +9,27 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-07-14 00:00:00 -07:00
12
+ date: 2008-11-21 00:00:00 -08:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activesupport
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.3.1
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: hoe
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.8.0
32
+ version:
16
33
  description: A Resource Description Framework (RDF) library for Ruby.
17
34
  email:
18
35
  - paul@stadig.name
@@ -35,21 +52,31 @@ files:
35
52
  - README.txt
36
53
  - Rakefile
37
54
  - TODO.txt
55
+ - config/hoe.rb
56
+ - config/requirements.rb
38
57
  - lib/rdf.rb
39
58
  - lib/rdf/blank_node.rb
40
59
  - lib/rdf/error.rb
41
60
  - lib/rdf/node.rb
42
61
  - lib/rdf/plain_literal_node.rb
43
- - lib/rdf/sesame/base.rb
62
+ - lib/rdf/sesame.rb
44
63
  - lib/rdf/sparql_result.rb
45
64
  - lib/rdf/statement.rb
46
65
  - lib/rdf/typed_literal_node.rb
47
66
  - lib/rdf/uri_node.rb
48
67
  - lib/rdf/version.rb
49
68
  - lib/rubyrdf.rb
69
+ - script/console
70
+ - script/destroy
71
+ - script/generate
72
+ - script/txt2html
73
+ - setup.rb
74
+ - tasks/deployment.rake
75
+ - tasks/environment.rake
76
+ - tasks/gemspec.rake
50
77
  - test/rdf/blank_node_test.rb
51
78
  - test/rdf/plain_literal_node_test.rb
52
- - test/rdf/sesame/base_test.rb
79
+ - test/rdf/sesame_test.rb
53
80
  - test/rdf/sparql_result_test.rb
54
81
  - test/rdf/statement_test.rb
55
82
  - test/rdf/typed_literal_node_test.rb
@@ -91,11 +118,11 @@ signing_key:
91
118
  specification_version: 2
92
119
  summary: A Resource Description Framework (RDF) library for Ruby.
93
120
  test_files:
94
- - test/rdf/blank_node_test.rb
95
- - test/rdf/statement_test.rb
96
- - test/rdf/plain_literal_node_test.rb
97
- - test/rdf/sparql_result_test.rb
121
+ - test/rdf_test.rb
98
122
  - test/rdf/typed_literal_node_test.rb
123
+ - test/rdf/plain_literal_node_test.rb
124
+ - test/rdf/statement_test.rb
125
+ - test/rdf/sesame_test.rb
99
126
  - test/rdf/uri_node_test.rb
100
- - test/rdf/sesame/base_test.rb
101
- - test/rdf_test.rb
127
+ - test/rdf/blank_node_test.rb
128
+ - test/rdf/sparql_result_test.rb
@@ -1,109 +0,0 @@
1
- require 'uri'
2
- require 'net/http'
3
- require 'rexml/document'
4
-
5
- module RDF
6
- module Sesame
7
- class Base
8
- attr_reader :address, :port, :path, :repository
9
-
10
- def initialize(uri, repository)
11
- uri = URI.parse(uri)
12
- @address = uri.host
13
- @port = uri.port
14
- @path = uri.path
15
- @repository = repository
16
- end
17
-
18
- def size
19
- get_request(repo_path('size')).to_i
20
- end
21
-
22
- def empty?
23
- size == 0
24
- end
25
-
26
- def add(*statement)
27
- post_request(repo_path('statements'), statement.to_statement.to_ntriples, {}, 'Content-Type' => 'text/plain')
28
- end
29
-
30
- def import(data, format = :ntriples)
31
- headers = case format
32
- when :ntriples
33
- {'Content-Type' => 'text/plain; charset=utf-8'}
34
- when :rdfxml
35
- {'Content-Type' => 'application/rdf+xml; charset=utf-8'}
36
- end
37
-
38
- result = post_request(repo_path("statements"), data, {}, headers)
39
- result
40
- end
41
-
42
- def delete(*statement)
43
- delete_request(repo_path('statements'), to_param_hash(statement.to_statement))
44
- end
45
-
46
- def delete_all
47
- delete_request(repo_path("statements"))
48
- end
49
-
50
- def select(query)
51
- SparqlResult.new(get_request(repo_path, {"query" => query}, "Accept" => "application/sparql-results+xml"))
52
- end
53
-
54
- def ask(query)
55
- get_request(repo_path, {"query" => query}, "Accept" => "text/boolean") == "true"
56
- end
57
-
58
- def include?(*statement)
59
- ask("ASK { #{statement.to_statement.to_ntriples} }")
60
- end
61
-
62
- private
63
- def repo_path(path = nil)
64
- parts = [@path, "repositories", @repository]
65
- if path.to_s.strip != ""
66
- parts << path
67
- end
68
-
69
- File.join(*parts)
70
- end
71
-
72
- def to_param_hash(statement)
73
- {:subj => statement.subject.to_ntriples,
74
- :pred => statement.predicate.to_ntriples,
75
- :obj => statement.object.to_ntriples}
76
- end
77
-
78
- def get_request(path, params = {}, headers = {})
79
- Net::HTTP.start(@address, @port) do |http|
80
- http.get(
81
- format_uri(path, params),
82
- headers).body
83
- end
84
- end
85
-
86
- def post_request(path, data, params = {}, headers = {})
87
- Net::HTTP.start(@address, @port) do |http|
88
- http.open_timeout = 6000
89
- http.read_timeout = 6000
90
- http.post(format_uri(path, params), data, headers).body
91
- end
92
- end
93
-
94
- def delete_request(path, params = {}, headers = {})
95
- Net::HTTP.start(@address, @port) do |http|
96
- http.delete(format_uri(path, params), headers).body
97
- end
98
- end
99
-
100
- def format_uri(path, params = {})
101
- if params.empty?
102
- path
103
- else
104
- path + "?" + params.map{|k, v| "#{k}=#{URI.escape(v)}"}.join("&")
105
- end
106
- end
107
- end
108
- end
109
- end
@@ -1,76 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../test_helper.rb'
2
-
3
- class RDF::Sesame::BaseTest < Test::Unit::TestCase
4
- def setup
5
- @graph = RDF::Sesame::Base.new('http://localhost:8180/openrdf-sesame', 'test')
6
- @graph.delete_all
7
- RDF::unregister_all!
8
- RDF::register(:ex => 'http://example.org/')
9
- end
10
-
11
- def test_should_initialize_address_port_path_and_repository
12
- assert_equal 'localhost', @graph.address
13
- assert_equal 8180, @graph.port
14
- assert_equal '/openrdf-sesame', @graph.path
15
- assert_equal 'test', @graph.repository
16
- end
17
-
18
- def test_should_be_empty
19
- assert @graph.empty?
20
- end
21
-
22
- def test_should_add_statement
23
- @graph.add(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
24
- assert_equal 1, @graph.size
25
- end
26
-
27
- def test_should_import_data
28
- @graph.import(<<-ENDL, :ntriples)
29
- #{[RDF[:ex]::a, RDF[:ex]::b, RDF[:ex]::c].to_statement.to_ntriples}
30
- #{[RDF[:ex]::d, RDF[:ex]::b, RDF[:ex]::e].to_statement.to_ntriples}
31
- ENDL
32
- assert_equal 2, @graph.size
33
- assert @graph.include?([RDF[:ex]::a, RDF[:ex]::b, RDF[:ex]::c])
34
- assert @graph.include?([RDF[:ex]::d, RDF[:ex]::b, RDF[:ex]::e])
35
- end
36
-
37
- def test_should_delete_statement
38
- @graph.add(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
39
- @graph.delete(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
40
- assert @graph.empty?
41
- end
42
-
43
- def test_should_execute_select_query
44
- assert @graph.select("SELECT ?x WHERE {?x #{RDF[:ex]::nothing} _:bn2 . }").empty?
45
-
46
- @graph.add(RDF[:ex]::a, RDF[:ex]::b, RDF::PlainLiteralNode.new('test'))
47
- @graph.add(RDF[:ex]::d, RDF[:ex]::b, RDF::PlainLiteralNode.new('test', 'en'))
48
- @graph.add(RDF[:ex]::d, RDF[:ex]::b, RDF::TypedLiteralNode.new('test', RDF[:ex]::a.uri))
49
- @graph.add(RDF[:ex]::d, RDF[:ex]::b, RDF[:ex]::e)
50
- @graph.add(RDF[:ex]::d, RDF[:ex]::b, RDF::BlankNode.new)
51
- result = @graph.select("SELECT ?y WHERE {?x #{RDF[:ex]::b} ?y . }")
52
- assert_equal 5, result.size
53
- assert result.any?{|r| r['y'] == RDF::PlainLiteralNode.new('test')}
54
- assert result.any?{|r| r['y'] == RDF::PlainLiteralNode.new('test', 'en')}
55
- assert result.any?{|r| r['y'] == RDF::TypedLiteralNode.new('test', RDF[:ex]::a.uri)}
56
- assert result.any?{|r| r['y'] == RDF[:ex]::e}
57
- assert result.any?{|r| r['y'].blank_node?}
58
- end
59
-
60
- def test_should_execute_ask_query
61
- @graph.add(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
62
- assert @graph.ask("ask { #{[RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj].to_statement.to_ntriples} }")
63
- end
64
-
65
- def test_should_include_statement
66
- @graph.add(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
67
- assert @graph.include?(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
68
- end
69
-
70
- def test_should_clear_graph
71
- @graph.add(RDF[:ex]::sub, RDF[:ex]::pred, RDF[:ex]::obj)
72
- @graph.delete_all
73
-
74
- assert @graph.empty?
75
- end
76
- end