lightrdf 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ === 0.2.2 2011-03-10
2
+
3
+ * Removed dependency open3 for Windows compatibility
4
+
1
5
  === 0.2.1 2011-03-07
2
6
 
3
7
  * Corrected bug when building a graph out of triples.
@@ -20,28 +20,23 @@ module RDF
20
20
  serialize_yarf(nodes, ns)
21
21
  end
22
22
  when :ejson
23
- stdin, stdout, stderr = Open3.popen3("python -mjson.tool")
24
- stdin.puts ActiveSupport::JSON.encode(serialize_ejson(nodes))
25
- stdin.close
26
- stdout.read
23
+ RDF::Parser.run "python -mjson.tool", ActiveSupport::JSON.encode(serialize_ejson(nodes))
27
24
  when :png
28
25
  dot = serialize(:dot)
29
26
  ns = respond_to?(:ns) ? ID.ns.merge(self.ns) : ID.ns
30
27
  ns.each { |k,v| dot.gsub!(v, "#{k}:") }
31
28
  dot.gsub!(/label=\"\\n\\nModel:.*\)\";/, '')
32
- stdin, stdout, stderr = Open3.popen3("dot -o/dev/stdout -Tpng")
33
- stdin.puts dot
34
- stdin.close
35
- stdout.read
29
+
30
+ RDF::Parser.run "dot -o/dev/stdout -Tpng", dot
36
31
  when :rdf
37
32
  serialize(:'rdfxml-abbrev')
38
33
  else
39
34
  namespaces = if [:rdfxml, :'rdfxml-abbrev'].include?(format)
40
35
  ID.ns.map {|k,v| "-f 'xmlns:#{k}=#{v.inspect}'" } * " "
41
36
  end
42
- tmpfile = File.join(Dir.tmpdir, "rapper#{$$}#{Thread.current.object_id}")
43
- File.open(tmpfile, 'w') { |f| f.write(serialize(:ntriples)) }
44
- %x[rapper -q -i ntriples #{namespaces} -o #{format} #{tmpfile} 2> /dev/null]
37
+ tempfile = RDF::Parser.new_tempfile
38
+ File.open(tempfile, 'w') { |f| f.write(serialize(:ntriples)) }
39
+ %x[rapper -q -i ntriples #{namespaces} -o #{format} #{tempfile} 2> /dev/null]
45
40
  end
46
41
  end
47
42
 
@@ -75,9 +70,9 @@ module RDF
75
70
  when :ejson
76
71
  raise Exception, "eJSON format cannot be parsed (yet)"
77
72
  else
78
- tmpfile = File.join(Dir.tmpdir, "rapper#{$$}#{Thread.current.object_id}")
79
- File.open(tmpfile, 'w') { |f| f.write text }
80
- parse :ntriples, %x[rapper -q -i #{format} -o ntriples #{tmpfile} 2> /dev/null]
73
+ tempfile = new_tempfile
74
+ File.open(tempfile, 'w') { |f| f.write text }
75
+ parse :ntriples, %x[rapper -q -i #{format} -o ntriples #{tempfile} 2> /dev/null]
81
76
  end
82
77
  end
83
78
 
@@ -219,5 +214,17 @@ module RDF
219
214
  raise Exception, "Parsing error: #{c}"
220
215
  end
221
216
  end
217
+
218
+ def self.run program, input
219
+ tempfile = new_tempfile
220
+ File.open(tempfile, 'w') { |f| f.write(input) }
221
+ %x[#{program} < #{tempfile}]
222
+ end
223
+
224
+ def self.new_tempfile
225
+ @num_tempfile ||= 0
226
+ @num_tempfile += 1
227
+ File.join(Dir.tmpdir, "lightrdf-#{@num_tempfile}-#{$$}#{Thread.current.object_id}")
228
+ end
222
229
  end
223
230
  end
data/lib/lightrdf.rb CHANGED
@@ -2,13 +2,12 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module RDF
5
- VERSION = '0.2.1'
5
+ VERSION = '0.2.2'
6
6
  end
7
7
 
8
8
  require 'rubygems'
9
9
  require 'active_support'
10
10
  require 'uri'
11
- require 'open3'
12
11
  require 'open-uri'
13
12
  require 'tmpdir'
14
13
  require 'rest-client'
data/lightrdf.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{lightrdf}
5
- s.version = "0.2.1"
5
+ s.version = "0.2.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Jose Ignacio"]
9
- s.date = %q{2011-03-07}
9
+ s.date = %q{2011-03-10}
10
10
  s.default_executable = %q{yarfp}
11
11
  s.description = %q{RDF library}
12
12
  s.email = %q{joseignacio.fernandez@gmail.com}
@@ -94,7 +94,6 @@ class TestLightRDF < Test::Unit::TestCase
94
94
  a = Node('ex:bob')
95
95
  a.foaf::weblog = Node('http://www.awesomeweblogfordummies.com')
96
96
  g = RDF::Graph.new a.triples
97
- p a.foaf::weblog
98
97
  assert g[Node('ex:bob')].foaf::weblog?(Node('http://www.awesomeweblogfordummies.com'))
99
98
  end
100
99
 
@@ -159,6 +158,7 @@ foaf: http://xmlns.com/foaf/0.1/
159
158
  g = RDF::Graph.new
160
159
  g << a
161
160
 
161
+ g.serialize(:ejson) # Just check that parsing doesn't crash
162
162
  assert_equal 3, RDF::Parser.parse(:yarf, g.serialize(:yarf) ).triples.size
163
163
  assert_equal 3, RDF::Parser.parse(:rdfxml, g.serialize(:rdfxml)).triples.size
164
164
  assert_equal 3, RDF::Parser.parse(:rdf, g.serialize(:rdf) ).triples.size
@@ -166,9 +166,9 @@ foaf: http://xmlns.com/foaf/0.1/
166
166
 
167
167
  def test_repository
168
168
  repository = RDF::Repository.new
169
- triple = [Node("http://testuri.org"), Node('rdf:type'), Node('rdf:Class')]
169
+ triple = [ID("http://testuri.org"), ID('rdf:type'), ID('rdf:Class')]
170
170
  graph = RDF::Graph.new [triple]
171
- context = "http://test_repository.org"
171
+ context = "http://test_context.org"
172
172
  repository.data = graph, context
173
173
 
174
174
  # Check if the added data is there
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 1
9
- version: 0.2.1
8
+ - 2
9
+ version: 0.2.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Jose Ignacio
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-03-07 00:00:00 +01:00
17
+ date: 2011-03-10 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency