pjstadig-rubyrdf 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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