grom 0.5.1 → 0.6.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.
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