iq_rdf 0.0.15 → 0.1.0

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.
data/README.md ADDED
@@ -0,0 +1,92 @@
1
+ # IqRdf - RDF Renderering for Ruby and Rails
2
+ IqRdf is a RDF renderer for Ruby and Rails. You can use it in any Ruby
3
+ environment to render Trurtle-, N-Triple- (not implemented jet) or XML-RDF.
4
+
5
+ IqRdf underlays a [Builder](http://builder.rubyforge.org/)-like approach to specify
6
+ the RDF-Data by using a internal Ruby DSL. The basic Idea for specifing a triple
7
+ (subject, predicate, object) is that the predicate is a method call on the
8
+ subject with the object as parameters:
9
+
10
+ ```ruby
11
+ IqRdf::some_subject.some_predicate(IqRdf::some_object)
12
+ ```
13
+
14
+ The IqRdf namespaces are needed not to mess up the rest of your project due to
15
+ the heavy use of method_missing in the IqRdf-Library. See the IqRdf::use method
16
+ for Ruby 1.9 to omit the `IqRdf::` prefix.
17
+
18
+ ## Ruby example
19
+ You can use IqRdf in pure Ruby to produce Strings in a certain RDF Syntax like
20
+ Turtle or XML:
21
+
22
+ ```ruby
23
+ require 'IqRdf'
24
+ document = IqRdf::Document.new('http://www.test.de/')
25
+
26
+ document.namespaces :skos => 'http://www.w3.org/2008/05/skos#',
27
+ :foaf => 'http://xmlns.com/foaf/0.1/' # A :rdf namespace is added automatically
28
+
29
+ document << IqRdf::john_doe.myCustomNote("This is an example", :lang => :en)
30
+ # Turtle: :john_doe :myCustomNote "This is an example"@en.
31
+
32
+ document << IqRdf::john_doe(IqRdf::Foaf::build_uri("Person")).Foaf::name("John Doe")
33
+ # Turtle: :john_doe a foaf:Person; foaf:name "John Doe".
34
+
35
+ document << IqRdf::john_doe.Foaf::knows(IqRdf::jane_doe)
36
+ # Turtle: :john_doe foaf:knows :jane_doe.
37
+
38
+ document.to_turtle
39
+ # => "@prefix : <http://www.test.de/>. ..."
40
+ ```
41
+
42
+ ## Rails example
43
+ Include IqRdf to your Ruby on Rails project by adding the following line to your
44
+ Gemfile (or with Rails 2.x in your config/environment.rb):
45
+
46
+ ```ruby
47
+ gem "iq_rdf"
48
+ ```
49
+
50
+ Add the mime types you want to support to your config/initializers/mime_types.rb
51
+ file:
52
+
53
+ ```ruby
54
+ Mime::Type.register "application/rdf+xml", :rdf
55
+ Mime::Type.register "text/turtle", :ttl
56
+ Mime::Type.register "application/n-triples", :nt
57
+ ```
58
+
59
+ Now you can define views in you application. Use the extension *.iqrdf*
60
+ for the view files. You can use the extensions *.ttl* or
61
+ *.rdf* in the URL of your request, to force the output to be
62
+ in Turtle or XML/RDF.
63
+
64
+ ### Views
65
+ In your views IqRdf gives you a *document* object you can add your triples
66
+ to. But first you will have to define your namespaces and the global language if
67
+ you want to label all String literals in a certain language (as long as there is
68
+ no other language or `:none` given).
69
+
70
+ ```ruby
71
+ document.namespaces :default => 'http://data.example.com/', :foaf => 'http://xmlns.com/foaf/0.1/'
72
+ document.lang = :en
73
+
74
+ document << IqRdf::test_subject.test_predicate("test")
75
+ # Turtle: :test_subject :test_predicate "test"@en.
76
+
77
+ document << IqRdf::test_subject.test_predicate("test", :lang => :de)
78
+ # Turtle: :test_subject :test_predicate "test"@de.
79
+
80
+ document << IqRdf::test_subject.test_predicate("test", :lang => :none)
81
+ # Turtle: :test_subject :test_predicate "test".
82
+
83
+ # ...
84
+ ```
85
+
86
+ Use the namespace token `:default` to mark the default namespace. This has the
87
+ same effect as specifing the default namespace in `IqRdf::Document.new`.
88
+
89
+ ## Complex RDF definitions
90
+ TODO
91
+
92
+ Copyright (c) 2011 innoQ Deutschland GmbH, released under the Apache License 2.0
data/iq_rdf.gemspec CHANGED
@@ -25,12 +25,12 @@ Gem::Specification.new do |s|
25
25
  s.homepage = "http://github.com/innoq/iq_rdf"
26
26
  s.summary = "IqRdf - A builder like rdf library for ruby and rails"
27
27
  s.description = s.summary
28
- s.extra_rdoc_files = ['README.rdoc', 'LICENSE']
28
+ s.extra_rdoc_files = ['README.md', 'LICENSE']
29
29
 
30
30
  s.add_dependency "bundler"
31
31
  s.add_dependency "builder"
32
32
 
33
- s.files = %w(LICENSE README.rdoc Rakefile iq_rdf.gemspec) + Dir.glob("{lib,rails,test}/**/*")
33
+ s.files = %w(LICENSE README.md Rakefile iq_rdf.gemspec) + Dir.glob("{lib,rails,test}/**/*")
34
34
  s.test_files = Dir.glob("{test}/**/*")
35
35
  s.executables = Dir.glob("{bin}/**/*")
36
36
  s.require_paths = ["lib"]
@@ -12,31 +12,32 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- module ActionView::TemplateHandlers
15
+ module ActionView
16
+ module Template::Handlers
16
17
 
17
- class IqRdf < ActionView::TemplateHandler
18
- include ActionView::TemplateHandlers::Compilable
18
+ class IqRdf
19
19
 
20
- def compile(template)
21
- <<-EOV
20
+ def self.call(template)
21
+ <<-EOV
22
22
 
23
- document = IqRdf::Document.new()
24
- #{template.source}
25
- if params[:format].to_s == "ttl"
26
- controller.response.headers["Content-Type"] ||= 'text/turtle'
27
- document.to_turtle
28
- elsif params[:format].to_s == "nt"
29
- controller.response.headers["Content-Type"] ||= 'text/plain'
30
- document.to_ntriples
31
- elsif params[:format].to_s == "rdf"
32
- controller.response.headers["Content-Type"] ||= 'application/xml+rdf'
33
- document.to_xml
34
- else # Default => turtle
35
- controller.response.headers["Content-Type"] ||= 'text/turtle'
36
- document.to_turtle
23
+ document = IqRdf::Document.new()
24
+ #{template.source}
25
+ if params[:format].to_s == "ttl"
26
+ controller.response.headers["Content-Type"] ||= 'text/turtle'
27
+ document.to_turtle
28
+ elsif params[:format].to_s == "nt"
29
+ controller.response.headers["Content-Type"] ||= 'text/plain'
30
+ document.to_ntriples
31
+ elsif params[:format].to_s == "rdf"
32
+ controller.response.headers["Content-Type"] ||= 'application/xml+rdf'
33
+ document.to_xml
34
+ else # Default => turtle
35
+ controller.response.headers["Content-Type"] ||= 'text/turtle'
36
+ document.to_turtle
37
+ end
38
+ EOV
37
39
  end
38
- EOV
39
40
  end
41
+
40
42
  end
41
-
42
43
  end
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module IqRdf
16
- VERSION = "0.0.15"
16
+ VERSION = "0.1.0"
17
17
  end
metadata CHANGED
@@ -1,64 +1,49 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: iq_rdf
3
- version: !ruby/object:Gem::Version
4
- hash: 1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 15
10
- version: 0.0.15
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Till Schulte-Coerne
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-05-26 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-01-10 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: bundler
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2154052080 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: builder
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2154052080
25
+ - !ruby/object:Gem::Dependency
26
+ name: builder
27
+ requirement: &2154050800 !ruby/object:Gem::Requirement
39
28
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
47
33
  type: :runtime
48
- version_requirements: *id002
34
+ prerelease: false
35
+ version_requirements: *2154050800
49
36
  description: IqRdf - A builder like rdf library for ruby and rails
50
- email:
37
+ email:
51
38
  - till.schulte-coerne@innoq.com
52
39
  executables: []
53
-
54
40
  extensions: []
55
-
56
- extra_rdoc_files:
57
- - README.rdoc
41
+ extra_rdoc_files:
42
+ - README.md
58
43
  - LICENSE
59
- files:
44
+ files:
60
45
  - LICENSE
61
- - README.rdoc
46
+ - README.md
62
47
  - Rakefile
63
48
  - iq_rdf.gemspec
64
49
  - lib/iq_rdf/blank_node.rb
@@ -79,41 +64,37 @@ files:
79
64
  - test/test_helper.rb
80
65
  - test/turtle_test.rb
81
66
  - test/xml_test.rb
82
- has_rdoc: true
83
67
  homepage: http://github.com/innoq/iq_rdf
84
68
  licenses: []
85
-
86
69
  post_install_message:
87
70
  rdoc_options: []
88
-
89
- require_paths:
71
+ require_paths:
90
72
  - lib
91
- required_ruby_version: !ruby/object:Gem::Requirement
73
+ required_ruby_version: !ruby/object:Gem::Requirement
92
74
  none: false
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- hash: 3
97
- segments:
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ segments:
98
80
  - 0
99
- version: "0"
100
- required_rubygems_version: !ruby/object:Gem::Requirement
81
+ hash: -3269158319309008120
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
83
  none: false
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- hash: 3
106
- segments:
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ segments:
107
89
  - 0
108
- version: "0"
90
+ hash: -3269158319309008120
109
91
  requirements: []
110
-
111
92
  rubyforge_project:
112
- rubygems_version: 1.5.2
93
+ rubygems_version: 1.8.10
113
94
  signing_key:
114
95
  specification_version: 3
115
96
  summary: IqRdf - A builder like rdf library for ruby and rails
116
- test_files:
97
+ test_files:
117
98
  - test/iq_rdf_test.rb
118
99
  - test/test_helper.rb
119
100
  - test/turtle_test.rb
data/README.rdoc DELETED
@@ -1,77 +0,0 @@
1
- == IqRdf
2
- IqRdf is a RDF renderer for Ruby and Rails. You can use it in any Ruby
3
- environment to render Trurtle-, N-Triple- (not implemented jet) or XML-RDF.
4
-
5
- IqRdf underlays a Builder-like (http://builder.rubyforge.org/) approach to specify
6
- the RDF-Data by using a internal Ruby DSL. The basic Idea for specifing a triple
7
- (subject, predicate, object) is that the predicate is a method call on the
8
- subject with the object as parameters:
9
-
10
- IqRdf::some_subject.some_predicate(IqRdf::some_object)
11
-
12
- The IqRdf namespaces are needed not to mess up the rest of your project due to
13
- the heavy use of method_missing in the IqRdf-Library. See the IqRdf::use method
14
- for Ruby 1.9 to omit the "IqRdf::" prefix.
15
-
16
- === Ruby example
17
- You can use IqRdf in pure Ruby to produce Strings in a certain RDF Syntax like
18
- Turtle or XML:
19
- require 'IqRdf'
20
- document = IqRdf::Document.new('http://www.test.de/')
21
-
22
- document.namespaces :skos => 'http://www.w3.org/2008/05/skos#',
23
- :foaf => 'http://xmlns.com/foaf/0.1/' # A :rdf namespace is added automatically
24
-
25
- document << IqRdf::john_doe.myCustomNote("This is an example", :lang => :en)
26
- # Turtle: :john_doe :myCustomNote "This is an example"@en.
27
-
28
- document << IqRdf::john_doe(IqRdf::Foaf::build_uri("Person")).Foaf::name("John Doe")
29
- # Turtle: :john_doe a foaf:Person; foaf:name "John Doe".
30
-
31
- document << IqRdf::john_doe.Foaf::knows(IqRdf::jane_doe)
32
- # Turtle: :john_doe foaf:knows :jane_doe.
33
-
34
- document.to_turtle
35
- # => "@prefix : <http://www.test.de/>. ..."
36
-
37
- === Rails example
38
- Include IqRdf to your Ruby on Rails project by adding the following line to your
39
- Gemfile (or with Rails 2.x in your config/environment.rb):
40
- gem "iq_rdf"
41
- Add the mime types you want to support to your config/initializers/mime_types.rb
42
- file:
43
- Mime::Type.register "application/rdf+xml", :rdf
44
- Mime::Type.register "text/turtle", :ttl
45
- Mime::Type.register "application/n-triples", :nt
46
- Now you can define views in you application. Use the extension <em>.iqrdf</em>
47
- for the view files. You can use the extensions <em>.ttl</em> or
48
- <em>.rdf</em> in the URL of your request, to force the output to be
49
- in Turtle or XML/RDF.
50
-
51
- ==== The views
52
- In your views IqRdf gives you a <em>document</em> object you can add your triples
53
- to. But first you will have to define your namespaces and the global language if
54
- you want to label all String literals in a certain language (as long as there is
55
- no other language or <em>:none</em> given).
56
- document.namespaces :default => 'http://data.example.com/', :foaf => 'http://xmlns.com/foaf/0.1/'
57
- document.lang = :en
58
-
59
- document << IqRdf::test_subject.test_predicate("test")
60
- # Turtle: :test_subject :test_predicate "test"@en.
61
-
62
- document << IqRdf::test_subject.test_predicate("test", :lang => :de)
63
- # Turtle: :test_subject :test_predicate "test"@de.
64
-
65
-
66
- document << IqRdf::test_subject.test_predicate("test", :lang => :none)
67
- # Turtle: :test_subject :test_predicate "test".
68
-
69
- ...
70
-
71
- Use the namespace token <em>:default</em> to mark the default namespace. This has the
72
- same effect as specifing the default namespace in IqRdf::Document.new.
73
-
74
- === Complex RDF definitions
75
- ...
76
-
77
- Copyright (c) 2011 innoQ Deutschland GmbH, released under the Apache License 2.0