grom 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 30c388721c484a79b60eadfee103c5d6165836e2
4
- data.tar.gz: dd3b117d015318b54ddd678463caeeef560f2c0e
3
+ metadata.gz: 52542b678b2915e8fc5e830f489ee9699b999948
4
+ data.tar.gz: e6b56e67dda74ebbe2a11d52ae3e744a2772ccd3
5
5
  SHA512:
6
- metadata.gz: 388145c3654b9a45275dfb3df2f81056a644fa553e4134690e8eaf40a8c35bde544287b04a5263b44db2e2b5ecc380bff869db71ebf66b28dda138cc3e2d5f6b
7
- data.tar.gz: 52fe1a7b76230d2ed316d7a2856ff6fa586be6a225225ed8cea75a5a2aaaa813dcb173f30737688ebe13d7bebdd547d00e7e2c9c60cae87b5b03eeb2e799eb95
6
+ metadata.gz: a183be498fafefe24b5df922287f13e68f773d051f21ab6054b77560a75a1f9324b66cbf0951ef04fa15a963d8d5bd74a5bbeddc9d35ec44ef8c1f9d26e7d494
7
+ data.tar.gz: f0d08051824f1bb73fbabaa089f3379a15c9470958f598f668c011ae0843cc023f8682b069482f23df1136d2b54da630a31ef2c3e2908ec25878b0288abb23f4
data/README.md CHANGED
@@ -43,6 +43,7 @@ data_stream = StringIO.new(file)
43
43
  objects = Grom::Reader.new(data_stream).objects #=> [<#Grom::Node ...>, <#Grom::Node ...>, ...]
44
44
  ```
45
45
 
46
+ Note that [ntriple][ntriple] data streams cannot contain a predicate named 'type', as this word is reserved for RDF types.
46
47
 
47
48
  ## Getting Started with Development
48
49
  To clone the repository and set up the dependencies, run the following:
@@ -77,7 +78,7 @@ Logo design by [Anna Vámos][anna-vamos].
77
78
 
78
79
  [ruby]: https://www.ruby-lang.org/en/
79
80
  [bundler]: http://bundler.io
80
- [rspec]: http://rspec.info
81
+ [rspec]: http://rspec.info
81
82
  [grom-logo]: https://cdn.rawgit.com/ukparliament/grom/85df4d355313358930cea8aa2fbfc53dd3e4f8d3/docs/logo.svg
82
83
  [grom]: https://github.com/ukparliament/grom
83
84
  [pds]: https://www.parliament.uk/mps-lords-and-offices/offices/bicameral/parliamentary-digital-service/
data/lib/grom/builder.rb CHANGED
@@ -45,6 +45,8 @@ module Grom
45
45
  def link_objects
46
46
  @reader.edges_by_subject.each do |subject, predicates|
47
47
  predicates.each do |predicate, object_uris|
48
+ raise NamingError if predicate == 'type'
49
+
48
50
  current_node = @objects_by_subject[subject]
49
51
  next if current_node.nil?
50
52
 
data/lib/grom/helper.rb CHANGED
@@ -47,9 +47,10 @@ module Grom
47
47
  elsif uri == RDF.type.to_s
48
48
  return 'type'
49
49
  else
50
- uri.to_s.split('/').last
51
- end
50
+ uri_object = URI(uri)
52
51
 
52
+ return uri_object.fragment ? uri_object.fragment : uri_object.path.split('/').last
53
+ end
53
54
  end
54
55
  end
55
56
  end
@@ -0,0 +1,8 @@
1
+ module Grom
2
+ # Namespace for errors.
3
+ class NamingError < StandardError
4
+ def initialize
5
+ super("'type' is reserved for RDF type and cannot be used as a predicate name.")
6
+ end
7
+ end
8
+ end
data/lib/grom/reader.rb CHANGED
@@ -34,7 +34,10 @@ module Grom
34
34
 
35
35
  predicate = statement.predicate.to_s
36
36
 
37
- if statement.object.uri? && predicate != RDF.type.to_s
37
+ object_is_possible_link = statement.object.uri? || statement.object.is_a?(RDF::Node)
38
+ predicate_is_not_a_type_definition = predicate != RDF.type.to_s
39
+
40
+ if object_is_possible_link && predicate_is_not_a_type_definition
38
41
  predicate = Grom::Helper.get_id(predicate)
39
42
  @edges_by_subject[subject] ||= {}
40
43
  @edges_by_subject[subject][predicate] ||= []
data/lib/grom/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Grom
2
- VERSION = '0.5.1'.freeze
2
+ VERSION = '0.6.0'.freeze
3
3
  end
data/lib/grom.rb CHANGED
@@ -8,6 +8,8 @@ require_relative 'grom/node'
8
8
  require_relative 'grom/helper'
9
9
  require_relative 'grom/builder'
10
10
 
11
+ require 'grom/naming_error'
12
+
11
13
  # Namespace for graph object mapper that converts n-triple data to Ruby objects.
12
14
  # @since 0.1.0
13
15
  module Grom
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rebecca Appleyard
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2017-12-08 00:00:00.000000000 Z
13
+ date: 2018-04-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rdf
@@ -152,6 +152,7 @@ files:
152
152
  - lib/grom.rb
153
153
  - lib/grom/builder.rb
154
154
  - lib/grom/helper.rb
155
+ - lib/grom/naming_error.rb
155
156
  - lib/grom/node.rb
156
157
  - lib/grom/reader.rb
157
158
  - lib/grom/version.rb