grom 0.6.1 → 1.0.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: cceeada1e9885598150562453d3c93da7a061b58
4
- data.tar.gz: dec6f529f5eae70233dc0775972580ce07212911
3
+ metadata.gz: dbf2858155b7cc3f38c1b76cc2f4b07cb5ec3bed
4
+ data.tar.gz: 5a37dacf7ef16733c5ee2080a82bc2f0bb6f2e58
5
5
  SHA512:
6
- metadata.gz: a36a8158a6acaee6cdd322307a00a4b27b7952b6851b3637d1bf9cb7765303815de85e912bcb000f4be652900cc2e4c01c822007eab81b2be39251bfeefe733b
7
- data.tar.gz: bfc0f2db03ceb12b860d9600c1fce9d1465e9d8458fddc4f489826e2553a2a74fce6772e286021a65275bd5b79e31d0dfc1175dd4bd08b30d82615804e50af84
6
+ metadata.gz: 868b419c8e808d8ab0fab118e7275af1e0c3033212ef52401eece385044e7b375a4d50e0d514a062bc84a6498b22d64505a68c21018ef85f62f4e9d9ac9c9e0b
7
+ data.tar.gz: '0457895235f090e5433e19494fe3b80b1621016f45995bbe2353de2339b04030541d8f51e16b720fa3479f531f6d4472e4011572f4b8a0a2aff5694674d49752'
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.4.1
1
+ 2.5.1
data/grom.gemspec CHANGED
@@ -21,9 +21,9 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ['lib']
23
23
 
24
- spec.add_dependency 'rdf', '2.2.3'
24
+ spec.add_dependency 'rdf', '~> 3'
25
25
  # Defines RDF vocabularies
26
- spec.add_dependency 'rdf-vocab', '~> 2.2'
26
+ spec.add_dependency 'rdf-vocab', '~> 3'
27
27
  spec.add_dependency 'activesupport', '>= 5.0.0.1'
28
28
 
29
29
  # the below are test dependencies
@@ -32,4 +32,5 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency 'rspec', '~> 3.0'
33
33
  spec.add_development_dependency 'rubocop', '~> 0.51'
34
34
  spec.add_development_dependency 'simplecov', '~> 0.13'
35
+ spec.add_development_dependency 'parliament-grom-decorators', '~> 0.31'
35
36
  end
data/lib/grom/builder.rb CHANGED
@@ -7,8 +7,10 @@ module Grom
7
7
  attr_reader :objects
8
8
 
9
9
  # @param [Grom::Reader] reader a Grom::Reader instance populated with data.
10
- def initialize(reader)
10
+ # @param [Module] decorators a Module that answers to #decorate_with_type(node, type)
11
+ def initialize(reader, decorators = nil)
11
12
  @reader = reader
13
+ @decorators = decorators
12
14
 
13
15
  build_objects
14
16
  end
@@ -31,7 +33,7 @@ module Grom
31
33
  @objects_by_subject = {}
32
34
 
33
35
  @reader.statements_by_subject.each do |subject, statements|
34
- object = Grom::Node.new(statements)
36
+ object = Grom::Node.new(statements, @decorators)
35
37
  @objects_by_subject[subject] = object
36
38
  @objects << object
37
39
  end
data/lib/grom/node.rb CHANGED
@@ -9,10 +9,10 @@ module Grom
9
9
  attr_reader :statements
10
10
 
11
11
  # @param [Array] statements an array of n-triple statements.
12
- def initialize(statements)
12
+ def initialize(statements, decorators = nil)
13
13
  @statements = statements
14
14
 
15
- populate
15
+ populate(decorators)
16
16
  end
17
17
 
18
18
  # Allows the user to access instance variables as methods or raise an error if the variable is not defined.
@@ -78,7 +78,7 @@ module Grom
78
78
  instance_variable_set('@graph_id'.to_sym, graph_id)
79
79
  end
80
80
 
81
- def populate
81
+ def populate(decorators)
82
82
  set_graph_id
83
83
  @statements.each do |statement|
84
84
  predicate = Grom::Helper.get_id(statement.predicate).to_sym
@@ -93,6 +93,8 @@ module Grom
93
93
  else
94
94
  instance_variable_set("@#{predicate}", object)
95
95
  end
96
+
97
+ decorators&.decorate_with_type(self, object) if statement.predicate == RDF.type && decorators
96
98
  end
97
99
  end
98
100
  end
data/lib/grom/reader.rb CHANGED
@@ -10,12 +10,13 @@ module Grom
10
10
  attr_reader :data, :statements_by_subject, :edges_by_subject, :objects
11
11
 
12
12
  # @param [String] data n-triple data.
13
- def initialize(data)
13
+ # @param [Module] decorators decorators to use when building Grom::Node objects.
14
+ def initialize(data, decorators = nil)
14
15
  @data = data
15
16
 
16
17
  read_data
17
18
 
18
- @objects = Grom::Builder.new(self).objects
19
+ @objects = Grom::Builder.new(self, decorators).objects
19
20
  end
20
21
 
21
22
  # Reads the n-triple data and separates the statements by subject.
data/lib/grom/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Grom
2
- VERSION = '0.6.1'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
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.6.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rebecca Appleyard
@@ -10,36 +10,36 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2018-04-27 00:00:00.000000000 Z
13
+ date: 2018-09-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rdf
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - '='
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: 2.2.3
21
+ version: '3'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - '='
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: 2.2.3
28
+ version: '3'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rdf-vocab
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: '2.2'
35
+ version: '3'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '2.2'
42
+ version: '3'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: activesupport
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -124,6 +124,20 @@ dependencies:
124
124
  - - "~>"
125
125
  - !ruby/object:Gem::Version
126
126
  version: '0.13'
127
+ - !ruby/object:Gem::Dependency
128
+ name: parliament-grom-decorators
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '0.31'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: '0.31'
127
141
  description: Grom is a Graph Object Mapper
128
142
  email:
129
143
  - rklappleyard@gmail.com